logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

SYSCALL_MODULE — syscall kernel module declaration macro

Authors

       This manual page was written by Alexander Langer <alex@FreeBSD.org>.

Debian                                          January 24, 2015                               SYSCALL_MODULE(9)

Description

       The  SYSCALL_MODULE()  macro  declares  a  new  syscall.   SYSCALL_MODULE()  expands into a kernel module
       declaration with name ‘sys/name’.

       The rest of the arguments expected by this macro are:

       offset      A pointer to an int which saves the offset in structsysent where the syscall  is  allocated.
                   If the location pointed to by offset holds a non 0 number it will be used if possible.  If it
                   holds 0 then one will be assigned.

       new_sysent  is  a  pointer  to  a  structure that specifies the function implementing the syscall and the
                   number of arguments this function needs (see <sys/sysent.h>).

       evh         A pointer to the kernel module event handler function with the argument arg.  Please refer to
                   module(9) for more information.

       arg         The argument passed to the callback functions of the evh event handler when it is called.

       The syscall number assigned to the module can be retrieved using the modstat(3)  and  modfind(3)  library
       functions  in  libc.   The  MACRO  SYSCALL_MODULE_HELPER()  includes  SYSCALL_MODULE()  and  much  of its
       boilerplate code.

Examples

       A minimal example for a syscall module can be found in /usr/share/examples/kld/syscall/module/syscall.c.

Name

       SYSCALL_MODULE — syscall kernel module declaration macro

See Also

module(9)

       /usr/share/examples/kld/syscall/module/syscall.c

Synopsis

#include<sys/param.h>#include<sys/kernel.h>#include<sys/proc.h>#include<sys/module.h>#include<sys/sysent.h>SYSCALL_MODULE(name, int*offset, structsysent*new_sysent, modeventhand_tevh, void*arg);

See Also