mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-01-11 17:10:13 +00:00
tools headers: Sync linux/socket.h with kernel sources
To pick up changes from:
d73c167708739137 ("socket: Split out a getsockname helper for io_uring")
4677e78800bbde62 ("socket: Unify getsockname and getpeername implementation")
bf33247a90d3e85d ("net: Add struct sockaddr_unsized for sockaddr of unknown length")
This should be used to beautify socket syscall arguments and it addresses
these tools/perf build warnings:
Warning: Kernel ABI header differences:
diff -u tools/perf/trace/beauty/include/linux/socket.h include/linux/socket.h
Please see tools/include/uapi/README.
Cc: netdev@vger.kernel.org
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
This commit is contained in:
parent
d0783e1fb8
commit
00a7e470a5
@ -32,11 +32,29 @@ typedef __kernel_sa_family_t sa_family_t;
|
|||||||
* 1003.1g requires sa_family_t and that sa_data is char.
|
* 1003.1g requires sa_family_t and that sa_data is char.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
/* Deprecated for in-kernel use. Use struct sockaddr_unsized instead. */
|
||||||
struct sockaddr {
|
struct sockaddr {
|
||||||
sa_family_t sa_family; /* address family, AF_xxx */
|
sa_family_t sa_family; /* address family, AF_xxx */
|
||||||
char sa_data[14]; /* 14 bytes of protocol address */
|
char sa_data[14]; /* 14 bytes of protocol address */
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* struct sockaddr_unsized - Unspecified size sockaddr for callbacks
|
||||||
|
* @sa_family: Address family (AF_UNIX, AF_INET, AF_INET6, etc.)
|
||||||
|
* @sa_data: Flexible array for address data
|
||||||
|
*
|
||||||
|
* This structure is designed for callback interfaces where the
|
||||||
|
* total size is known via the sockaddr_len parameter. Unlike struct
|
||||||
|
* sockaddr which has a fixed 14-byte sa_data limit or struct
|
||||||
|
* sockaddr_storage which has a fixed 128-byte sa_data limit, this
|
||||||
|
* structure can accommodate addresses of any size, but must be used
|
||||||
|
* carefully.
|
||||||
|
*/
|
||||||
|
struct sockaddr_unsized {
|
||||||
|
__kernel_sa_family_t sa_family; /* address family, AF_xxx */
|
||||||
|
char sa_data[]; /* flexible address data */
|
||||||
|
};
|
||||||
|
|
||||||
struct linger {
|
struct linger {
|
||||||
int l_onoff; /* Linger active */
|
int l_onoff; /* Linger active */
|
||||||
int l_linger; /* How long to linger for */
|
int l_linger; /* How long to linger for */
|
||||||
@ -450,10 +468,10 @@ extern int __sys_connect(int fd, struct sockaddr __user *uservaddr,
|
|||||||
int addrlen);
|
int addrlen);
|
||||||
extern int __sys_listen(int fd, int backlog);
|
extern int __sys_listen(int fd, int backlog);
|
||||||
extern int __sys_listen_socket(struct socket *sock, int backlog);
|
extern int __sys_listen_socket(struct socket *sock, int backlog);
|
||||||
|
extern int do_getsockname(struct socket *sock, int peer,
|
||||||
|
struct sockaddr __user *usockaddr, int __user *usockaddr_len);
|
||||||
extern int __sys_getsockname(int fd, struct sockaddr __user *usockaddr,
|
extern int __sys_getsockname(int fd, struct sockaddr __user *usockaddr,
|
||||||
int __user *usockaddr_len);
|
int __user *usockaddr_len, int peer);
|
||||||
extern int __sys_getpeername(int fd, struct sockaddr __user *usockaddr,
|
|
||||||
int __user *usockaddr_len);
|
|
||||||
extern int __sys_socketpair(int family, int type, int protocol,
|
extern int __sys_socketpair(int family, int type, int protocol,
|
||||||
int __user *usockvec);
|
int __user *usockvec);
|
||||||
extern int __sys_shutdown_sock(struct socket *sock, int how);
|
extern int __sys_shutdown_sock(struct socket *sock, int how);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user