unixdev.net


Switch to SpeakEasy.net DSL

The Modular Manual Browser

Home Page
Manual: (OpenBSD-5.7)
Page:
Section:
Apropos / Subsearch:
optional field

SYSCALL(2)                  BSD System Calls Manual                 SYSCALL(2)

NAME
     syscall, __syscall -- indirect system call

SYNOPSIS
     #include <&lt;sys/syscall.h>&gt;
     #include <&lt;unistd.h>&gt;

     int
     syscall(int number, ...);

     __syscall(quad_t number, ...);

DESCRIPTION
     syscall() performs the system call whose assembly language interface has
     the specified number with the specified arguments.  Symbolic constants
     for system calls can be found in the header file <sys/syscall.h>.

     Since different system calls have different return types, a prototype of
     __syscall specifying the correct return type should be declared locally.
     This is especially important for system calls returning larger-than-int
     results.

     The __syscall form should be used when one or more of the parameters is a
     64-bit argument to ensure that argument alignment is correct.  This sys-
     tem call is useful for testing new system calls that do not have entries
     in the C library.

RETURN VALUES
     The return values are defined by the system call being invoked.  In gen-
     eral, for system calls returning int, a 0 return value indicates success.
     A -1 return value indicates an error, and an error code is stored in
     errno.

HISTORY
     The predecessor of these functions, the former indir() system call, first
     appeared in Version 4 AT&T UNIX.  The syscall() function first appeared
     in 3BSD.

BUGS
     There is no way to simulate system calls that have multiple return values
     such as pipe(2).

BSD                             March 28, 2017                             BSD