lkml.org 
[lkml]   [2007]   [Feb]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [patch 06/11] syslets: core, documentation
    On Tue, Feb 13, 2007 at 03:20:42PM +0100, Ingo Molnar wrote:
    > +Arguments to the system call are implemented via pointers to arguments.
    > +This not only increases the flexibility of syslet atoms (multiple syslets
    > +can share the same variable for example), but is also an optimization:
    > +copy_uatom() will only fetch syscall parameters up until the point it
    > +meets the first NULL pointer. 50% of all syscalls have 2 or less
    > +parameters (and 90% of all syscalls have 4 or less parameters).
    > +
    > + [ Note: since the argument array is at the end of the atom, and the
    > + kernel will not touch any argument beyond the final NULL one, atoms
    > + might be packed more tightly. (the only special case exception to
    > + this rule would be SKIP_TO_NEXT_ON_STOP atoms, where the kernel will
    > + jump a full syslet_uatom number of bytes.) ]

    What if you need to increase the number of arguments passed to a system
    call later? That would be an API change since the size of syslet_uatom
    would change?

    Also, what if you have an ABI such that:

    sys_foo(int fd, long long a)

    where:
    arg[0] <= fd
    arg[1] <= unused
    arg[2] <= low 32-bits a
    arg[3] <= high 32-bits a

    it seems you need to point arg[1] to some valid but dummy variable.

    How do you propose syslet users know about these kinds of ABI issues
    (including the endian-ness of 64-bit arguments) ?

    --
    Russell King
    Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
    maintainer of:
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2007-02-14 11:39    [W:4.100 / U:0.768 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site