On 04/20/2011 11:09 AM, Lennart Poettering wrote:
On Wed, 20.04.11 10:36, David Daney ([email protected]) wrote:

You would have to do something like this (untested):

int foo_fanotify_mark(int fanotify_fd, unsigned int flags, u64 mask,
int dfd, const char  __user * pathname)
{
        u32 mask_low = (u32)mask;
        u32 mask_high = (u32)(mask>>  32);

        return syscall(4337, fanotify_fd, flags, mask_low, mask_high, dfd,
pathname);

}

The order of mask_low, mask_high in the syscall argument list
depends on the endianness.  Figuring out the correct order is left
as an exercise for the reader.

That's basically the same patch as this one, right?

http://lists.freedesktop.org/archives/systemd-devel/attachments/20110420/be2d393b/attachment.obj


It looks like it might do the same thing. Someone should try it on an o32 MIPS userland running on a mips64 kernel.

I think the behavior of the union thing is undefined, but should work on GCC.

David Daney


It has been suggested that this patch would also work fine on other
32bit CPUs, is that correct? More specifically, will this break x86?

Lennart


_______________________________________________
systemd-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to