-.\"
.\" Copyright (c) 1993 Michael Haardt (michael@moria.de),
.\" Fri Apr 2 11:32:09 MET DST 1993
.\"
+.\" %%%LICENSE_START(GPLv2+_DOC_FULL)
.\" This is free documentation; you can redistribute it and/or
.\" modify it under the terms of the GNU General Public License as
.\" published by the Free Software Foundation; either version 2 of
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public
-.\" License along with this manual; if not, write to the Free
-.\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111,
-.\" USA.
+.\" License along with this manual; if not, see
+.\" <http://www.gnu.org/licenses/>.
+.\" %%%LICENSE_END
.\"
.\" Tue Jul 6 12:42:46 MDT 1993 <dminer@nyx.cs.du.edu>
.\" Added "Calling Directly" and supporting paragraphs
.TH _SYSCALL 2 2007-12-19 "Linux" "Linux Programmer's Manual"
.SH NAME
_syscall \- invoking a system call without library support (OBSOLETE)
-.SH "SYNOPSIS"
+.SH SYNOPSIS
.B #include <linux/unistd.h>
A _syscall macro
.PP
where
.IP
-\fIX\fP is 0\(en6, which are the number of arguments taken by the
+.I X
+is 0\(en6, which are the number of arguments taken by the
system call
.IP
-\fItype\fP is the return type of the system call
+.I type
+is the return type of the system call
.IP
-\fIname\fP is the name of the system call
+.I name
+is the name of the system call
.IP
-\fItypeN\fP is the Nth argument's type
+.I typeN
+is the Nth argument's type
.IP
-\fIargN\fP is the name of the Nth argument
+.I argN
+is the name of the Nth argument
.PP
-These macros create a function called \fIname\fP with the arguments you
+These macros create a function called
+.I name
+with the arguments you
specify.
Once you include the _syscall() in your source file,
-you call the system call by \fIname\fP.
+you call the system call by
+.IR name .
.SH FILES
.I /usr/include/linux/unistd.h
-.SH "CONFORMING TO"
+.SH CONFORMING TO
The use of these macros is Linux-specific, and deprecated.
.SH NOTES
Starting around kernel 2.6.18, the _syscall macros were removed
.BR syscall (2)
was always required.)
-The _syscall() macros \fIdo not\fP produce a prototype.
+The _syscall() macros
+.I "do not"
+produce a prototype.
You may have to
create one, especially for C++ users.
codes.
You need to read the source to be sure how it will return errors.
Usually, it is the negative of a standard error code,
-for example, \-\fBEPERM\fP.
-The _syscall() macros will return the result \fIr\fP of the system call
-when \fIr\fP is nonnegative, but will return \-1 and set the variable
+for example,
+.RI \- EPERM .
+The _syscall() macros will return the result
+.I r
+of the system call
+when
+.I r
+is nonnegative, but will return \-1 and set the variable
.I errno
-to \-\fIr\fP when \fIr\fP is negative.
+to
+.RI \- r
+when
+.I r
+is negative.
For the error codes, see
.BR errno (3).
-When defining a system call, the argument types \fImust\fP be
+When defining a system call, the argument types
+.I must
+be
passed by-value or by-pointer (for aggregates like structs).
.\" The preferred way to invoke system calls that glibc does not know
.\" about yet is via
.\" .BR syscall (2).
-.\" However, this mechanism can only be used if using a libc
+.\" However, this mechanism can be used only if using a libc
.\" (such as glibc) that supports
.\" .BR syscall (2),
.\" and if the
exit(EXIT_SUCCESS);
}
.fi
-.SS "Sample Output"
+.SS Sample output
.nf
code error = 0
uptime = 502034s
Swap: total 27881472 / free 24698880
Number of processes = 40
.fi
-.SH "SEE ALSO"
+.SH SEE ALSO
.BR intro (2),
.BR syscall (2),
.BR errno (3)
+.SH COLOPHON
+This page is part of release 3.68 of the Linux
+.I man-pages
+project.
+A description of the project,
+information about reporting bugs,
+and the latest version of this page,
+can be found at
+\%http://www.kernel.org/doc/man\-pages/.