diff options
Diffstat (limited to 'man/man2/socketcall.2')
-rw-r--r-- | man/man2/socketcall.2 | 185 |
1 files changed, 185 insertions, 0 deletions
diff --git a/man/man2/socketcall.2 b/man/man2/socketcall.2 new file mode 100644 index 0000000..aa52f90 --- /dev/null +++ b/man/man2/socketcall.2 @@ -0,0 +1,185 @@ +'\" t +.\" Copyright (c) 1995 Michael Chastain (mec@shell.portal.com), 15 April 1995. +.\" +.\" SPDX-License-Identifier: GPL-2.0-or-later +.\" +.\" Modified Tue Oct 22 22:11:53 1996 by Eric S. Raymond <esr@thyrsus.com> +.TH socketcall 2 2024-05-02 "Linux man-pages (unreleased)" +.SH NAME +socketcall \- socket system calls +.SH LIBRARY +Standard C library +.RI ( libc ", " \-lc ) +.SH SYNOPSIS +.nf +.BR "#include <linux/net.h>" " /* Definition of " SYS_* " constants */" +.BR "#include <sys/syscall.h>" " /* Definition of " SYS_socketcall " */" +.B #include <unistd.h> +.P +.BI "int syscall(SYS_socketcall, int " call ", unsigned long *" args ); +.fi +.P +.IR Note : +glibc provides no wrapper for +.BR socketcall (), +necessitating the use of +.BR syscall (2). +.SH DESCRIPTION +.BR socketcall () +is a common kernel entry point for the socket system calls. +.I call +determines which socket function to invoke. +.I args +points to a block containing the actual arguments, +which are passed through to the appropriate call. +.P +User programs should call the appropriate functions by their usual names. +Only standard library implementors and kernel hackers need to know about +.BR socketcall (). +.P +.TS +tab(:); +l l. +\fIcall\fR:Man page +T{ +.B SYS_SOCKET +T}:T{ +.BR socket (2) +T} +T{ +.B SYS_BIND +T}:T{ +.BR bind (2) +T} +T{ +.B SYS_CONNECT +T}:T{ +.BR connect (2) +T} +T{ +.B SYS_LISTEN +T}:T{ +.BR listen (2) +T} +T{ +.B SYS_ACCEPT +T}:T{ +.BR accept (2) +T} +T{ +.B SYS_GETSOCKNAME +T}:T{ +.BR getsockname (2) +T} +T{ +.B SYS_GETPEERNAME +T}:T{ +.BR getpeername (2) +T} +T{ +.B SYS_SOCKETPAIR +T}:T{ +.BR socketpair (2) +T} +T{ +.B SYS_SEND +T}:T{ +.BR send (2) +T} +T{ +.B SYS_RECV +T}:T{ +.BR recv (2) +T} +T{ +.B SYS_SENDTO +T}:T{ +.BR sendto (2) +T} +T{ +.B SYS_RECVFROM +T}:T{ +.BR recvfrom (2) +T} +T{ +.B SYS_SHUTDOWN +T}:T{ +.BR shutdown (2) +T} +T{ +.B SYS_SETSOCKOPT +T}:T{ +.BR setsockopt (2) +T} +T{ +.B SYS_GETSOCKOPT +T}:T{ +.BR getsockopt (2) +T} +T{ +.B SYS_SENDMSG +T}:T{ +.BR sendmsg (2) +T} +T{ +.B SYS_RECVMSG +T}:T{ +.BR recvmsg (2) +T} +T{ +.B SYS_ACCEPT4 +T}:T{ +.BR accept4 (2) +T} +T{ +.B SYS_RECVMMSG +T}:T{ +.BR recvmmsg (2) +T} +T{ +.B SYS_SENDMMSG +T}:T{ +.BR sendmmsg (2) +T} +.TE +.SH VERSIONS +On some architectures\[em]for example, x86-64 and ARM\[em]there is no +.BR socketcall () +system call; instead +.BR socket (2), +.BR accept (2), +.BR bind (2), +and so on really are implemented as separate system calls. +.SH STANDARDS +Linux. +.P +On x86-32, +.BR socketcall () +was historically the only entry point for the sockets API. +However, starting in Linux 4.3, +.\" commit 9dea5dc921b5f4045a18c63eb92e84dc274d17eb +direct system calls are provided on x86-32 for the sockets API. +This facilitates the creation of +.BR seccomp (2) +filters that filter sockets system calls +(for new user-space binaries that are compiled +to use the new entry points) +and also provides a (very) small performance improvement. +.SH SEE ALSO +.BR accept (2), +.BR bind (2), +.BR connect (2), +.BR getpeername (2), +.BR getsockname (2), +.BR getsockopt (2), +.BR listen (2), +.BR recv (2), +.BR recvfrom (2), +.BR recvmsg (2), +.BR send (2), +.BR sendmsg (2), +.BR sendto (2), +.BR setsockopt (2), +.BR shutdown (2), +.BR socket (2), +.BR socketpair (2) |