Provided by: freebsd-manpages_12.2-1_all bug

NAME

       SYSCALL_MODULE — syscall kernel module declaration macro

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, struct sysent *new_sysent, modeventhand_t evh, void *arg);

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 struct sysent 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.

SEE ALSO

       module(9)

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

AUTHORS

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

Debian                                          January 24, 2015                               SYSCALL_MODULE(9)