lkml.org 
[lkml]   [2000]   [Sep]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [RFC] Wine speedup through kernel module
    Hi David,

    > I'm also interested in finding a better way of getting to kernel space from
    > user space... Currently, this involves the client process opening a proc file
    > and doing ioctl's on it to request Win32 operations (easy to do from a kernel
    > module).

    how about the classical standard way of "getting to kernel space", i.e.
    plain system calls? Unless you really need a huge number of new system
    calls, what you can do is in the module, scan for sys_ni_syscall entries
    in the sys_call_table[] table (see entry.S) and replace them with pointers
    to functions in your module's address space. Then you need to communicate
    the slot numbers thus occupied back to userspace, e.g. via /proc file
    which then can invoke them in a standard int 0x80 manner. Or you can
    hardcode the slots but that is not flexible because unoccupied slots may
    become occupied at any time in the future.

    Also, if you do this - don't forget to inc/dec module refcount in each of
    your new syscalls, for obvious reasons - if the syscall sleeps and the
    module is unloaded, it will return to "nowhere".

    Regards,
    Tigran

    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 12:38    [W:0.023 / U:29.704 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site