---
name: "SYSCALL_MODULE"
section: "9"
platform: "linux"
package: "freebsd-manpages"
version: "6.0-5"
release: "Debian 4.0 (Etch)"
platforms: ["linux", "freebsd"]
url: "https://new.carta.tech/SYSCALL_MODULE"
---

# SYSCALL\_MODULE(9)

syscall kernel module declaration macro

## 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 named as *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.

- *new\_sysent*

  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)](/module/9.md) for more information.

- *arg*

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

## EXAMPLES

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

## SEE ALSO

[module(9)](/module/9.md)

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

## AUTHORS

This manual page was written by Alexander Langer ⟨alex@FreeBSD.org⟩.
