/
usr
/
include
/
bits
/
/usr/include/bits
mkdir
upload
Name
Size
Mode
Actions
platform/
-
0755
rm
types/
-
0755
rm
a.out.h
268
0644
edit
dl
rm
argp-ldbl.h
1010
0644
edit
dl
rm
atomic_wide_counter.h
1283
0644
edit
dl
rm
byteswap.h
2450
0644
edit
dl
rm
cmathcalls.h
4139
0644
edit
dl
rm
confname.h
23828
0644
edit
dl
rm
cpu-set.h
4516
0644
edit
dl
rm
dirent.h
1771
0644
edit
dl
rm
dirent_ext.h
1275
0644
edit
dl
rm
dlfcn.h
2521
0644
edit
dl
rm
dl_find_object.h
1114
0644
edit
dl
rm
elfclass.h
426
0644
edit
dl
rm
endian.h
1905
0644
edit
dl
rm
endianness.h
273
0644
edit
dl
rm
environments.h
3791
0644
edit
dl
rm
epoll.h
1071
0644
edit
dl
rm
err-ldbl.h
1148
0644
edit
dl
rm
errno.h
1426
0644
edit
dl
rm
error-ldbl.h
1012
0644
edit
dl
rm
error.h
2684
0644
edit
dl
rm
eventfd.h
1129
0644
edit
dl
rm
fcntl-linux.h
14050
0644
edit
dl
rm
fcntl.h
2246
0644
edit
dl
rm
fcntl2.h
5575
0644
edit
dl
rm
fenv.h
3370
0644
edit
dl
rm
floatn-common.h
10325
0644
edit
dl
rm
floatn.h
4457
0644
edit
dl
rm
flt-eval-method.h
1215
0644
edit
dl
rm
fp-fast.h
1216
0644
edit
dl
rm
fp-logb.h
1012
0644
edit
dl
rm
getopt_core.h
3667
0644
edit
dl
rm
getopt_ext.h
3038
0644
edit
dl
rm
getopt_posix.h
1810
0644
edit
dl
rm
hwcap.h
972
0644
edit
dl
rm
in.h
9596
0644
edit
dl
rm
indirect-return.h
1591
0644
edit
dl
rm
inet-fortified-decl.h
1842
0644
edit
dl
rm
inet-fortified.h
1793
0644
edit
dl
rm
initspin.h
25
0644
edit
dl
rm
inotify.h
1080
0644
edit
dl
rm
ioctl-types.h
2456
0644
edit
dl
rm
ioctls.h
4478
0644
edit
dl
rm
ipc-perm.h
1745
0644
edit
dl
rm
ipc.h
1523
0644
edit
dl
rm
ipctypes.h
1176
0644
edit
dl
rm
iscanonical.h
2479
0644
edit
dl
rm
libc-header-start.h
4286
0644
edit
dl
rm
libm-simd-decl-stubs.h
3004
0644
edit
dl
rm
link.h
4286
0644
edit
dl
rm
link_lavcurrent.h
1099
0644
edit
dl
rm
locale.h
1368
0644
edit
dl
rm
local_lim.h
3176
0644
edit
dl
rm
long-double.h
970
0644
edit
dl
rm
math-vector.h
2308
0644
edit
dl
rm
mathcalls-helper-functions.h
1863
0644
edit
dl
rm
mathcalls-narrow.h
1312
0644
edit
dl
rm
mathcalls.h
13385
0644
edit
dl
rm
mathdef.h
891
0644
edit
dl
rm
mman-linux.h
5086
0644
edit
dl
rm
mman-map-flags-generic.h
1997
0644
edit
dl
rm
mman-shared.h
2841
0644
edit
dl
rm
mman.h
1363
0644
edit
dl
rm
monetary-ldbl.h
1047
0644
edit
dl
rm
mqueue.h
1246
0644
edit
dl
rm
mqueue2.h
2151
0644
edit
dl
rm
msq.h
1793
0644
edit
dl
rm
netdb.h
1264
0644
edit
dl
rm
param.h
1433
0644
edit
dl
rm
poll.h
2076
0644
edit
dl
rm
poll2.h
2666
0644
edit
dl
rm
posix1_lim.h
5198
0644
edit
dl
rm
posix2_lim.h
2867
0644
edit
dl
rm
posix_opt.h
5913
0644
edit
dl
rm
printf-ldbl.h
992
0644
edit
dl
rm
procfs-extra.h
963
0644
edit
dl
rm
procfs-id.h
1148
0644
edit
dl
rm
procfs-prregset.h
1050
0644
edit
dl
rm
procfs.h
2025
0644
edit
dl
rm
pthreadtypes-arch.h
1838
0644
edit
dl
rm
pthreadtypes.h
3072
0644
edit
dl
rm
pthread_stack_min-dynamic.h
1209
0644
edit
dl
rm
pthread_stack_min.h
946
0644
edit
dl
rm
ptrace-shared.h
4091
0644
edit
dl
rm
resource.h
6308
0644
edit
dl
rm
rseq.h
1243
0644
edit
dl
rm
sched.h
5673
0644
edit
dl
rm
select.h
1505
0644
edit
dl
rm
select2.h
1438
0644
edit
dl
rm
sem.h
2259
0644
edit
dl
rm
semaphore.h
1215
0644
edit
dl
rm
setjmp.h
1287
0644
edit
dl
rm
setjmp2.h
1705
0644
edit
dl
rm
shm.h
2766
0644
edit
dl
rm
shmlba.h
1106
0644
edit
dl
rm
sigaction.h
2935
0644
edit
dl
rm
sigcontext.h
4266
0644
edit
dl
rm
sigevent-consts.h
1471
0644
edit
dl
rm
siginfo-arch.h
729
0644
edit
dl
rm
siginfo-consts-arch.h
204
0644
edit
dl
rm
siginfo-consts.h
7036
0644
edit
dl
rm
signalfd.h
1067
0644
edit
dl
rm
signal_ext.h
1285
0644
edit
dl
rm
signum-arch.h
2580
0644
edit
dl
rm
signum-generic.h
3313
0644
edit
dl
rm
sigstack.h
1168
0644
edit
dl
rm
sigstksz.h
1278
0644
edit
dl
rm
sigthread.h
1692
0644
edit
dl
rm
sockaddr.h
1514
0644
edit
dl
rm
socket-constants.h
2497
0644
edit
dl
rm
socket.h
13554
0644
edit
dl
rm
socket2.h
3057
0644
edit
dl
rm
socket_type.h
2216
0644
edit
dl
rm
ss_flags.h
1188
0644
edit
dl
rm
stab.def
9040
0644
edit
dl
rm
stat.h
2231
0644
edit
dl
rm
statfs.h
1917
0644
edit
dl
rm
statvfs.h
3423
0644
edit
dl
rm
statx-generic.h
2187
0644
edit
dl
rm
statx.h
1400
0644
edit
dl
rm
stdint-intn.h
1037
0644
edit
dl
rm
stdint-uintn.h
1049
0644
edit
dl
rm
stdio-ldbl.h
3481
0644
edit
dl
rm
stdio.h
5599
0644
edit
dl
rm
stdio2-decl.h
4235
0644
edit
dl
rm
stdio2.h
10101
0644
edit
dl
rm
stdio_lim.h
1213
0644
edit
dl
rm
stdlib-bsearch.h
1557
0644
edit
dl
rm
stdlib-float.h
1115
0644
edit
dl
rm
stdlib-ldbl.h
2020
0644
edit
dl
rm
stdlib.h
5789
0644
edit
dl
rm
strings_fortified.h
1240
0644
edit
dl
rm
string_fortified.h
4345
0644
edit
dl
rm
struct_mutex.h
1810
0644
edit
dl
rm
struct_rwlock.h
2027
0644
edit
dl
rm
struct_stat.h
6190
0644
edit
dl
rm
struct_stat_time64_helper.h
2601
0644
edit
dl
rm
syscall.h
46524
0644
edit
dl
rm
syslog-ldbl.h
1204
0644
edit
dl
rm
syslog-path.h
1061
0644
edit
dl
rm
syslog.h
1969
0644
edit
dl
rm
sysmacros.h
2953
0644
edit
dl
rm
termios-baud.h
1824
0644
edit
dl
rm
termios-c_cc.h
1279
0644
edit
dl
rm
termios-c_cflag.h
1230
0644
edit
dl
rm
termios-c_iflag.h
1936
0644
edit
dl
rm
termios-c_lflag.h
2594
0644
edit
dl
rm
termios-c_oflag.h
2822
0644
edit
dl
rm
termios-misc.h
969
0644
edit
dl
rm
termios-struct.h
1433
0644
edit
dl
rm
termios-tcflow.h
1062
0644
edit
dl
rm
termios.h
2168
0644
edit
dl
rm
thread-shared-types.h
3927
0644
edit
dl
rm
time.h
3296
0644
edit
dl
rm
time64.h
1340
0644
edit
dl
rm
timerfd.h
1103
0644
edit
dl
rm
timesize.h
1081
0644
edit
dl
rm
timex.h
6198
0644
edit
dl
rm
types.h
8806
0644
edit
dl
rm
typesizes.h
3737
0644
edit
dl
rm
uintn-identity.h
1542
0644
edit
dl
rm
uio-ext.h
2086
0644
edit
dl
rm
uio_lim.h
1385
0644
edit
dl
rm
unistd.h
11653
0644
edit
dl
rm
unistd_ext.h
2538
0644
edit
dl
rm
utmp.h
4067
0644
edit
dl
rm
utmpx.h
3578
0644
edit
dl
rm
utsname.h
1213
0644
edit
dl
rm
waitflags.h
1697
0644
edit
dl
rm
waitstatus.h
2287
0644
edit
dl
rm
wchar-ldbl.h
3083
0644
edit
dl
rm
wchar.h
1906
0644
edit
dl
rm
wchar2-decl.h
4576
0644
edit
dl
rm
wchar2.h
14885
0644
edit
dl
rm
wctype-wchar.h
6307
0644
edit
dl
rm
wordsize.h
442
0644
edit
dl
rm
xopen_lim.h
3858
0644
edit
dl
rm
Edit:
/usr/include/bits/socket.h
(13554B)
/* System-specific socket constants and types. Linux version. Copyright (C) 1991-2021 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version. The GNU C Library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. You should have received a copy of the GNU Lesser General Public License along with the GNU C Library; if not, see <https://www.gnu.org/licenses/>. */ #ifndef __BITS_SOCKET_H #define __BITS_SOCKET_H #ifndef _SYS_SOCKET_H # error "Never include <bits/socket.h> directly; use <sys/socket.h> instead." #endif #define __need_size_t #include <stddef.h> #include <sys/types.h> /* Type for length arguments in socket calls. */ #ifndef __socklen_t_defined typedef __socklen_t socklen_t; # define __socklen_t_defined #endif /* Get the architecture-dependent definition of enum __socket_type. */ #include <bits/socket_type.h> /* Protocol families. */ #define PF_UNSPEC 0 /* Unspecified. */ #define PF_LOCAL 1 /* Local to host (pipes and file-domain). */ #define PF_UNIX PF_LOCAL /* POSIX name for PF_LOCAL. */ #define PF_FILE PF_LOCAL /* Another non-standard name for PF_LOCAL. */ #define PF_INET 2 /* IP protocol family. */ #define PF_AX25 3 /* Amateur Radio AX.25. */ #define PF_IPX 4 /* Novell Internet Protocol. */ #define PF_APPLETALK 5 /* Appletalk DDP. */ #define PF_NETROM 6 /* Amateur radio NetROM. */ #define PF_BRIDGE 7 /* Multiprotocol bridge. */ #define PF_ATMPVC 8 /* ATM PVCs. */ #define PF_X25 9 /* Reserved for X.25 project. */ #define PF_INET6 10 /* IP version 6. */ #define PF_ROSE 11 /* Amateur Radio X.25 PLP. */ #define PF_DECnet 12 /* Reserved for DECnet project. */ #define PF_NETBEUI 13 /* Reserved for 802.2LLC project. */ #define PF_SECURITY 14 /* Security callback pseudo AF. */ #define PF_KEY 15 /* PF_KEY key management API. */ #define PF_NETLINK 16 #define PF_ROUTE PF_NETLINK /* Alias to emulate 4.4BSD. */ #define PF_PACKET 17 /* Packet family. */ #define PF_ASH 18 /* Ash. */ #define PF_ECONET 19 /* Acorn Econet. */ #define PF_ATMSVC 20 /* ATM SVCs. */ #define PF_RDS 21 /* RDS sockets. */ #define PF_SNA 22 /* Linux SNA Project */ #define PF_IRDA 23 /* IRDA sockets. */ #define PF_PPPOX 24 /* PPPoX sockets. */ #define PF_WANPIPE 25 /* Wanpipe API sockets. */ #define PF_LLC 26 /* Linux LLC. */ #define PF_IB 27 /* Native InfiniBand address. */ #define PF_MPLS 28 /* MPLS. */ #define PF_CAN 29 /* Controller Area Network. */ #define PF_TIPC 30 /* TIPC sockets. */ #define PF_BLUETOOTH 31 /* Bluetooth sockets. */ #define PF_IUCV 32 /* IUCV sockets. */ #define PF_RXRPC 33 /* RxRPC sockets. */ #define PF_ISDN 34 /* mISDN sockets. */ #define PF_PHONET 35 /* Phonet sockets. */ #define PF_IEEE802154 36 /* IEEE 802.15.4 sockets. */ #define PF_CAIF 37 /* CAIF sockets. */ #define PF_ALG 38 /* Algorithm sockets. */ #define PF_NFC 39 /* NFC sockets. */ #define PF_VSOCK 40 /* vSockets. */ #define PF_KCM 41 /* Kernel Connection Multiplexor. */ #define PF_QIPCRTR 42 /* Qualcomm IPC Router. */ #define PF_SMC 43 /* SMC sockets. */ #define PF_XDP 44 /* XDP sockets. */ #define PF_MCTP 45 /* Management component transport protocol. */ #define PF_MAX 46 /* For now.. */ /* Address families. */ #define AF_UNSPEC PF_UNSPEC #define AF_LOCAL PF_LOCAL #define AF_UNIX PF_UNIX #define AF_FILE PF_FILE #define AF_INET PF_INET #define AF_AX25 PF_AX25 #define AF_IPX PF_IPX #define AF_APPLETALK PF_APPLETALK #define AF_NETROM PF_NETROM #define AF_BRIDGE PF_BRIDGE #define AF_ATMPVC PF_ATMPVC #define AF_X25 PF_X25 #define AF_INET6 PF_INET6 #define AF_ROSE PF_ROSE #define AF_DECnet PF_DECnet #define AF_NETBEUI PF_NETBEUI #define AF_SECURITY PF_SECURITY #define AF_KEY PF_KEY #define AF_NETLINK PF_NETLINK #define AF_ROUTE PF_ROUTE #define AF_PACKET PF_PACKET #define AF_ASH PF_ASH #define AF_ECONET PF_ECONET #define AF_ATMSVC PF_ATMSVC #define AF_RDS PF_RDS #define AF_SNA PF_SNA #define AF_IRDA PF_IRDA #define AF_PPPOX PF_PPPOX #define AF_WANPIPE PF_WANPIPE #define AF_LLC PF_LLC #define AF_IB PF_IB #define AF_MPLS PF_MPLS #define AF_CAN PF_CAN #define AF_TIPC PF_TIPC #define AF_BLUETOOTH PF_BLUETOOTH #define AF_IUCV PF_IUCV #define AF_RXRPC PF_RXRPC #define AF_ISDN PF_ISDN #define AF_PHONET PF_PHONET #define AF_IEEE802154 PF_IEEE802154 #define AF_CAIF PF_CAIF #define AF_ALG PF_ALG #define AF_NFC PF_NFC #define AF_VSOCK PF_VSOCK #define AF_KCM PF_KCM #define AF_QIPCRTR PF_QIPCRTR #define AF_SMC PF_SMC #define AF_XDP PF_XDP #define AF_MCTP PF_MCTP #define AF_MAX PF_MAX /* Socket level values. Others are defined in the appropriate headers. XXX These definitions also should go into the appropriate headers as far as they are available. */ #define SOL_RAW 255 #define SOL_DECNET 261 #define SOL_X25 262 #define SOL_PACKET 263 #define SOL_ATM 264 /* ATM layer (cell level). */ #define SOL_AAL 265 /* ATM Adaption Layer (packet level). */ #define SOL_IRDA 266 #define SOL_NETBEUI 267 #define SOL_LLC 268 #define SOL_DCCP 269 #define SOL_NETLINK 270 #define SOL_TIPC 271 #define SOL_RXRPC 272 #define SOL_PPPOL2TP 273 #define SOL_BLUETOOTH 274 #define SOL_PNPIPE 275 #define SOL_RDS 276 #define SOL_IUCV 277 #define SOL_CAIF 278 #define SOL_ALG 279 #define SOL_NFC 280 #define SOL_KCM 281 #define SOL_TLS 282 #define SOL_XDP 283 #define SOL_MPTCP 284 #define SOL_MCTP 285 /* Maximum queue length specifiable by listen. */ #define SOMAXCONN 4096 /* Get the definition of the macro to define the common sockaddr members. */ #include <bits/sockaddr.h> /* Structure describing a generic socket address. */ struct sockaddr { __SOCKADDR_COMMON (sa_); /* Common data: address family and length. */ char sa_data[14]; /* Address data. */ }; /* Structure large enough to hold any socket address (with the historical exception of AF_UNIX). */ #define __ss_aligntype unsigned long int #define _SS_PADSIZE \ (_SS_SIZE - __SOCKADDR_COMMON_SIZE - sizeof (__ss_aligntype)) struct sockaddr_storage { __SOCKADDR_COMMON (ss_); /* Address family, etc. */ char __ss_padding[_SS_PADSIZE]; __ss_aligntype __ss_align; /* Force desired alignment. */ }; /* Bits in the FLAGS argument to `send', `recv', et al. */ enum { MSG_OOB = 0x01, /* Process out-of-band data. */ #define MSG_OOB MSG_OOB MSG_PEEK = 0x02, /* Peek at incoming messages. */ #define MSG_PEEK MSG_PEEK MSG_DONTROUTE = 0x04, /* Don't use local routing. */ #define MSG_DONTROUTE MSG_DONTROUTE #ifdef __USE_GNU /* DECnet uses a different name. */ MSG_TRYHARD = MSG_DONTROUTE, # define MSG_TRYHARD MSG_DONTROUTE #endif MSG_CTRUNC = 0x08, /* Control data lost before delivery. */ #define MSG_CTRUNC MSG_CTRUNC MSG_PROXY = 0x10, /* Supply or ask second address. */ #define MSG_PROXY MSG_PROXY MSG_TRUNC = 0x20, #define MSG_TRUNC MSG_TRUNC MSG_DONTWAIT = 0x40, /* Nonblocking IO. */ #define MSG_DONTWAIT MSG_DONTWAIT MSG_EOR = 0x80, /* End of record. */ #define MSG_EOR MSG_EOR MSG_WAITALL = 0x100, /* Wait for a full request. */ #define MSG_WAITALL MSG_WAITALL MSG_FIN = 0x200, #define MSG_FIN MSG_FIN MSG_SYN = 0x400, #define MSG_SYN MSG_SYN MSG_CONFIRM = 0x800, /* Confirm path validity. */ #define MSG_CONFIRM MSG_CONFIRM MSG_RST = 0x1000, #define MSG_RST MSG_RST MSG_ERRQUEUE = 0x2000, /* Fetch message from error queue. */ #define MSG_ERRQUEUE MSG_ERRQUEUE MSG_NOSIGNAL = 0x4000, /* Do not generate SIGPIPE. */ #define MSG_NOSIGNAL MSG_NOSIGNAL MSG_MORE = 0x8000, /* Sender will send more. */ #define MSG_MORE MSG_MORE MSG_WAITFORONE = 0x10000, /* Wait for at least one packet to return.*/ #define MSG_WAITFORONE MSG_WAITFORONE MSG_BATCH = 0x40000, /* sendmmsg: more messages coming. */ #define MSG_BATCH MSG_BATCH MSG_ZEROCOPY = 0x4000000, /* Use user data in kernel path. */ #define MSG_ZEROCOPY MSG_ZEROCOPY MSG_FASTOPEN = 0x20000000, /* Send data in TCP SYN. */ #define MSG_FASTOPEN MSG_FASTOPEN MSG_CMSG_CLOEXEC = 0x40000000 /* Set close_on_exit for file descriptor received through SCM_RIGHTS. */ #define MSG_CMSG_CLOEXEC MSG_CMSG_CLOEXEC }; /* Structure describing messages sent by `sendmsg' and received by `recvmsg'. */ struct msghdr { void *msg_name; /* Address to send to/receive from. */ socklen_t msg_namelen; /* Length of address data. */ struct iovec *msg_iov; /* Vector of data to send/receive into. */ size_t msg_iovlen; /* Number of elements in the vector. */ void *msg_control; /* Ancillary data (eg BSD filedesc passing). */ size_t msg_controllen; /* Ancillary data buffer length. !! The type should be socklen_t but the definition of the kernel is incompatible with this. */ int msg_flags; /* Flags on received message. */ }; /* Structure used for storage of ancillary data object information. */ struct cmsghdr { size_t cmsg_len; /* Length of data in cmsg_data plus length of cmsghdr structure. !! The type should be socklen_t but the definition of the kernel is incompatible with this. */ int cmsg_level; /* Originating protocol. */ int cmsg_type; /* Protocol specific type. */ #if __glibc_c99_flexarr_available __extension__ unsigned char __cmsg_data __flexarr; /* Ancillary data. */ #endif }; /* Ancillary data object manipulation macros. */ #if __glibc_c99_flexarr_available # define CMSG_DATA(cmsg) ((cmsg)->__cmsg_data) #else # define CMSG_DATA(cmsg) ((unsigned char *) ((struct cmsghdr *) (cmsg) + 1)) #endif #define CMSG_NXTHDR(mhdr, cmsg) __cmsg_nxthdr (mhdr, cmsg) #define CMSG_FIRSTHDR(mhdr) \ ((size_t) (mhdr)->msg_controllen >= sizeof (struct cmsghdr) \ ? (struct cmsghdr *) (mhdr)->msg_control : (struct cmsghdr *) 0) #define CMSG_ALIGN(len) (((len) + sizeof (size_t) - 1) \ & (size_t) ~(sizeof (size_t) - 1)) #define CMSG_SPACE(len) (CMSG_ALIGN (len) \ + CMSG_ALIGN (sizeof (struct cmsghdr))) #define CMSG_LEN(len) (CMSG_ALIGN (sizeof (struct cmsghdr)) + (len)) /* Given a length, return the additional padding necessary such that len + __CMSG_PADDING(len) == CMSG_ALIGN (len). */ #define __CMSG_PADDING(len) ((sizeof (size_t) \ - ((len) & (sizeof (size_t) - 1))) \ & (sizeof (size_t) - 1)) extern struct cmsghdr *__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg) __THROW; #ifdef __USE_EXTERN_INLINES # ifndef _EXTERN_INLINE # define _EXTERN_INLINE __extern_inline # endif _EXTERN_INLINE struct cmsghdr * __NTH (__cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg)) { /* We may safely assume that __cmsg lies between __mhdr->msg_control and __mhdr->msg_controllen because the user is required to obtain the first cmsg via CMSG_FIRSTHDR, set its length, then obtain subsequent cmsgs via CMSG_NXTHDR, setting lengths along the way. However, we don't yet trust the value of __cmsg->cmsg_len and therefore do not use it in any pointer arithmetic until we check its value. */ unsigned char * __msg_control_ptr = (unsigned char *) __mhdr->msg_control; unsigned char * __cmsg_ptr = (unsigned char *) __cmsg; size_t __size_needed = sizeof (struct cmsghdr) + __CMSG_PADDING (__cmsg->cmsg_len); /* The current header is malformed, too small to be a full header. */ if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr)) return (struct cmsghdr *) 0; /* There isn't enough space between __cmsg and the end of the buffer to hold the current cmsg *and* the next one. */ if (((size_t) (__msg_control_ptr + __mhdr->msg_controllen - __cmsg_ptr) < __size_needed) || ((size_t) (__msg_control_ptr + __mhdr->msg_controllen - __cmsg_ptr - __size_needed) < __cmsg->cmsg_len)) return (struct cmsghdr *) 0; /* Now, we trust cmsg_len and can use it to find the next header. */ __cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg + CMSG_ALIGN (__cmsg->cmsg_len)); return __cmsg; } #endif /* Use `extern inline'. */ /* Socket level message types. This must match the definitions in <linux/socket.h>. */ enum { SCM_RIGHTS = 0x01 /* Transfer file descriptors. */ #define SCM_RIGHTS SCM_RIGHTS #ifdef __USE_GNU , SCM_CREDENTIALS = 0x02 /* Credentials passing. */ # define SCM_CREDENTIALS SCM_CREDENTIALS #endif }; #ifdef __USE_GNU /* User visible structure for SCM_CREDENTIALS message */ struct ucred { pid_t pid; /* PID of sending process. */ uid_t uid; /* UID of sending process. */ gid_t gid; /* GID of sending process. */ }; #endif #ifdef __USE_MISC # include <bits/types/time_t.h> # include <asm/socket.h> #else # define SO_DEBUG 1 # include <bits/socket-constants.h> #endif /* Structure used to manipulate the SO_LINGER option. */ struct linger { int l_onoff; /* Nonzero to linger on close. */ int l_linger; /* Time to linger. */ }; #endif /* bits/socket.h */
Save
cmd:
run