Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
SYSCALL_MODULE(9)	 BSD Kernel Developer's	Manual	     SYSCALL_MODULE(9)

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() ex-
     pands 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 im-
		 plementing the	syscall	and the	number of arguments this func-
		 tion 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 infor-
		 mation.

     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 boiler-
     plate 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>.

BSD			       January 24, 2015				   BSD

NAME | SYNOPSIS | DESCRIPTION | EXAMPLES | SEE ALSO | AUTHORS

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=SYSCALL_MODULE&sektion=9&manpath=FreeBSD+12.0-RELEASE+and+Ports>

home | help