Re: [PATCH] LinuxPPS (with new syscalls API)

Rodolfo Giometti
2007-06-26T18:12:08Z

On Tue, Jun 26, 2007 at 06:38:40PM +0100, David Woodhouse wrote:

> That sounds like you're scared of using goto. Don't be :)

But it's not wrong... should I change it or not?

> I don't see this timepps.h of which you speak. If it's a _userspace_
> file, it cannot include <linux/pps.h> unless you actually add
> <linux/pps.h> to the list of files which are exported.
>
> Run 'make headers_install' and observe that there is no file
> usr/include/linux/pps.h -- so there would be no /usr/include/linux/pps.h
> generated from your kernel tree. You need to add 'unifdef-y += pps.h' to
> include/linux/Kbuild for that to happen.

Is this right?

diff --git a/include/linux/Kbuild b/include/linux/Kbuild
index 94cc04a..87f1e2c 100644
--- a/include/linux/Kbuild
+++ b/include/linux/Kbuild
@@ -290,6 +290,7 @@ unifdef-y += pmu.h
unifdef-y += poll.h
unifdef-y += ppp_defs.h
unifdef-y += ppp-comp.h
+unifdef-y += pps.h
unifdef-y += ptrace.h
unifdef-y += qnx4_fs.h
unifdef-y += quota.h

> 64-bit kernels can run 32-bit userspace programs. But some structures
> come out _differently_ between 32-bit and 64-bit compilation, so the
> system call needs a special 'compat' handler instead of just running the
> normal 64-bit system call.
>
> The 'struct timespec' is one structure which is sometimes different for
> 32-bit vs. 64-bit, so any system call taking a 'struct timespec' must
> have a separate compat_sys_xxxx() to handle that. See something like
> compat_sys_clock_settime() in kernel/compat.c for an example (but don't
> use set_fs() like it does; just see how it handles the compat_timespec).

Ok, I'll take a look at it.

Thanks a lot,

Rodolfo