lkml.org 
[lkml]   [2018]   [Mar]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: [RFC] new SYSCALL_DEFINE/COMPAT_SYSCALL_DEFINE wrappers
    On Sun, Mar 25, 2018 at 5:47 PM, Al Viro <viro@zeniv.linux.org.uk> wrote:
    >
    > Linus, Dominik - how do you plan dealing with that fun?

    Secretly, I was hoping to kill x32, because it's not being used afaik.

    More realistically, I was thinking we'd just use a separate table or
    system calls, and generate different versions.

    In fact, you can see exactly that in my WIP branch, except it uses the
    wrong name.

    So see the "WIP-syscall" branch in my normal git kernel repo, and in
    particular the patch to <linux/syscalls.h>, which generates
    "sys_x64##name" and "sys_i86##name()" inline functions that do that
    mapping correcty for native x86-64, and for the (misnamed) x32 cases.

    So there are three different cases:

    - native: sys_x64_name() generated by SYSCALL_DEFINEx()

    - compat -bit: compat_sys_i86_name() generated by COMPAT_SYSCALL_DEFINEx()

    - x32: sys_i86_name() generated by SYSCALL_DEFINEx().

    and then I actually changed the names in the tables (ie in
    arch/x86/entry/syscalls/syscall_64.tbl etc).

    HOWEVER.

    I didn't actually test any of the compat or x32 ones, and the way I
    did it there also was no type-checking or other automated catching of
    getting it wrong. So it's almost certainly completely buggy, but the
    _intent_ is there and there is a remote possibility that it might even
    work.

    Linus

    \
     
     \ /
      Last update: 2018-03-26 08:16    [W:4.150 / U:0.028 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site