Exporting Kernel Services and System Calls
A kernel extension provides additional kernel services and system calls by specifying an export file when it is link-edited. An export file contains a list of symbols to be added to the kernel name space. In addition, symbols can be identified as system calls for 32-bit processes, 64-bit processes, or both.
In an export file, symbols are listed one per line. These system calls are available to both 32- and 64-bit processes. System calls are identified by using one of the syscall32, syscall64 or syscall3264 keywords after the symbol name. Use syscall32 to make a system call available to 32-bit processes, syscall64 to make a system call available to 64-bit processes, and syscall3264 to make a system call available to both 32- and 64-bit processes. For more information about export files, see ld Command.
When a new kernel extension is loaded by the sysconfig or kmod_load subroutine, any symbols exported by the kernel extension are added to the kernel name space, and are available to all subsequently loaded kernel extensions. Similarly, system calls exported by a kernel extension are available to all user programs or shared objects subsequently loaded.