GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
SYSCALL_HELPER_REGISTER(9) FreeBSD Kernel Developer's Manual SYSCALL_HELPER_REGISTER(9)

syscall_helper_register, syscall_helper_unregister
kernel syscall registration routines

#include <sys/sysent.h>

int
syscall_helper_register(struct syscall_helper_data *sd, int flags);

int
syscall_helper_unregister(struct syscall_helper_data *sd);

struct syscall_helper_data
SYSCALL_INIT_HELPER(syscallname);

struct syscall_helper_data
SYSCALL_INIT_HELPER_F(syscallname, int flags);

struct syscall_helper_data
SYSCALL_INIT_HELPER_COMPAT(syscallname);

struct syscall_helper_data
SYSCALL_INIT_HELPER_COMPAT_F(syscallname, int flags);

The syscall_helper_register() registers a system call. This function takes the structure struct syscall_helper_data sd, which specifies the parameters for syscall registration:

struct syscall_helper_data {
	struct sysent	new_sysent;
	struct sysent	old_sysent;
	int		syscall_no;
	int		registered;
};

The only valid flag for the flags argument to syscall_helper_register() is SY_THR_STATIC. This flag prevents the syscall from being unregistered.

Before use, the structure must be initialized with one of the SYSCALL_INIT_HELPER*() macros. In new code, syscall implementation functions shall be named sys_syscallname() and the regular macros shall be used.

For legacy syscall functions named without "sys_" prefixes, the "COMPAT" versions of the macros may be used.

The only valid flag for the flags argument to the "F" variants of the initializer macros is SYF_CAPENABLED. This flag indicates that the syscall is allowed in capability mode.

The syscall_helper_unregister() unregisters a system call. This function takes the same structure struct syscall_helper_data sd that was previously initialized in the manner described above and used in a successful invocation of syscall_helper_register().

If successful, syscall_helper_register() and syscall_helper_unregister() will return 0. Otherwise, they will return an error.

The syscall_helper_register() call will fail and the syscall will not be registered if:
[]
The flags argument contained a value other than SY_THR_STATIC.
[]
The specified syscall number, sd.syscall_no (SYS_syscallname), was outside of the valid range of system call numbers (zero through SYS_MAXSYSCALL).
[]
The system call table does not have any available slots.
[]
The specified syscall number, sd.syscall_no (SYS_syscallname), was already in use.

SYSCALL_MODULE(9)
February 10, 2018 FreeBSD 13.1-RELEASE

Search for    or go to Top of page |  Section 9 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.