public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [RFC] PPS: Implementing LinuxPPS API with new syscalls
@ 2007-06-05  7:25 Rodolfo Giometti
  2007-06-06 20:29 ` Andrew Morton
  0 siblings, 1 reply; 4+ messages in thread
From: Rodolfo Giometti @ 2007-06-05  7:25 UTC (permalink / raw)
  To: linux-kernel; +Cc: linuxpps, akpm

Hello,

after a little studing on new generic netlink interface and some
letters with Andrew Morton I decided to drop using the netlink API at
all and start using new specific syscalls.

Looking at current LinuxPPS API and at RFC2783 I think we need the
following syscalls:

   asmlinkage long sys_time_pps_find(int cmd, int __user *source,
                                          char __user *name, int namelen,
                                          char __user *path, int pathlen);
   asmlinkage long sys_time_pps_getparams(int source,
                                          struct pps_params __user *params);
   asmlinkage long sys_time_pps_setparams(int source,
                                          const struct pps_params __user *params);
   asmlinkage long sys_time_pps_getcap(int source, int __user *mode);
   asmlinkage long sys_time_pps_fetch(int source, const int tsformat,
                                          struct pps_info __user *info,
                                          const struct timespec __user *timeout);

In fact:

* the two LinuxPPS functions time_pps_findsource() and
time_pps_findpath() can be implemented with sys_time_pps_find()
specifying proper finding command into "cmd",

* the RFC2783 time_pps_create() and time_pps_destroy() are not needed
since no PPS sources are created or destryed from userspace. The former
can be simply implemented as follow:

   static int time_pps_create(int source, pps_handle_t *handle)
   {
           /* In LinuxPPS there are no differences between a PPS source and
            * a PPS handle so we return the same value. */
           *handle = source;
    
           return 0;
   }

while the latter is just a "return 0".

* the RFC2783 time_pps_kcbind() is not implemented into Linux so it is
just a "return -EOPNOTSUPP".

Also using syscalls the problem regarding the pps_handle_t type
disappears, even if the needed of using time_pps_findsource() or
time_pps_findpath() still remains.

Regarding the file timepps.h I think I should reintroduce it into the
kernel header files since it's needed to define new PPS types and new
syscalls wrappers for RFC2783 compatibility.

Comments? Suggestions? :)

Thanks a lot,

Rodolfo

-- 

GNU/Linux Solutions                  e-mail:    giometti@enneenne.com
Linux Device Driver                             giometti@gnudd.com
Embedded Systems                     		giometti@linux.it
UNIX programming                     phone:     +39 349 2432127

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2007-06-07 10:12 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-06-05  7:25 [RFC] PPS: Implementing LinuxPPS API with new syscalls Rodolfo Giometti
2007-06-06 20:29 ` Andrew Morton
2007-06-06 21:24   ` Rodolfo Giometti
2007-06-07 10:14     ` Rodolfo Giometti

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox