PageRenderTime 47ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/pwn/include/linux/diet/sys/socket.h

https://github.com/bossjones/pwntools
C Header | 546 lines | 430 code | 82 blank | 34 comment | 3 complexity | 07a7b6165f39fb74e710b1d6e67e7980 MD5 | raw file
  1. #ifndef _SYS_SOCKET_H
  2. #define _SYS_SOCKET_H
  3. #include <sys/cdefs.h>
  4. #include <sys/types.h>
  5. __BEGIN_DECLS
  6. /* For setsockopt(2) */
  7. #if defined(__alpha__) || defined(__mips__)
  8. #define SOL_SOCKET 0xffff
  9. #define SO_DEBUG 0x0001
  10. #define SO_REUSEADDR 0x0004
  11. #define SO_TYPE 0x1008
  12. #define SO_ERROR 0x1007
  13. #define SO_DONTROUTE 0x0010
  14. #define SO_BROADCAST 0x0020
  15. #define SO_SNDBUF 0x1001
  16. #define SO_RCVBUF 0x1002
  17. #define SO_KEEPALIVE 0x0008
  18. #define SO_OOBINLINE 0x0100
  19. #define SO_NO_CHECK 11
  20. #define SO_PRIORITY 12
  21. #define SO_LINGER 0x0080
  22. #define SO_BSDCOMPAT 14
  23. /* To add :#define SO_REUSEPORT 15 */
  24. #define SO_PASSCRED 17
  25. #define SO_PEERCRED 18
  26. #define SO_RCVLOWAT 0x1004
  27. #define SO_SNDLOWAT 0x1003
  28. #define SO_RCVTIMEO 0x1006
  29. #define SO_SNDTIMEO 0x1005
  30. #define SO_ACCEPTCONN 0x1009
  31. #ifdef __alpha__
  32. #define SO_SNDBUFFORCE 0x100a
  33. #define SO_RCVBUFFORCE 0x100b
  34. #else
  35. #define SO_SNDBUFFORCE 31
  36. #define SO_RCVBUFFORCE 33
  37. #endif
  38. #define SO_STYLE SO_TYPE /* Synonym */
  39. #elif defined(__hppa__)
  40. #define SOL_SOCKET 0xffff
  41. #define SO_DEBUG 0x0001
  42. #define SO_REUSEADDR 0x0004
  43. #define SO_KEEPALIVE 0x0008
  44. #define SO_DONTROUTE 0x0010
  45. #define SO_BROADCAST 0x0020
  46. #define SO_LINGER 0x0080
  47. #define SO_OOBINLINE 0x0100
  48. /* To add :#define SO_REUSEPORT 0x0200 */
  49. #define SO_SNDBUF 0x1001
  50. #define SO_RCVBUF 0x1002
  51. #define SO_SNDLOWAT 0x1003
  52. #define SO_RCVLOWAT 0x1004
  53. #define SO_SNDTIMEO 0x1005
  54. #define SO_RCVTIMEO 0x1006
  55. #define SO_ERROR 0x1007
  56. #define SO_TYPE 0x1008
  57. #define SO_SNDBUFFORCE 0x100a
  58. #define SO_RCVBUFFORCE 0x100b
  59. #define SO_PEERNAME 0x2000
  60. #define SO_NO_CHECK 0x400b
  61. #define SO_PRIORITY 0x400c
  62. #define SO_BSDCOMPAT 0x400e
  63. #define SO_PASSCRED 0x4010
  64. #define SO_PEERCRED 0x4011
  65. #define SO_TIMESTAMP 0x4012
  66. #define SCM_TIMESTAMP SO_TIMESTAMP
  67. /* Security levels - as per NRL IPv6 - don't actually do anything */
  68. #define SO_SECURITY_AUTHENTICATION 0x4016
  69. #define SO_SECURITY_ENCRYPTION_TRANSPORT 0x4017
  70. #define SO_SECURITY_ENCRYPTION_NETWORK 0x4018
  71. #define SO_BINDTODEVICE 0x4019
  72. /* Socket filtering */
  73. #define SO_ATTACH_FILTER 0x401a
  74. #define SO_DETACH_FILTER 0x401b
  75. #define SO_ACCEPTCONN 0x401c
  76. #elif defined(__sparc__)
  77. #define SOL_SOCKET 0xffff
  78. #define SO_DEBUG 0x0001
  79. #define SO_PASSCRED 0x0002
  80. #define SO_REUSEADDR 0x0004
  81. #define SO_KEEPALIVE 0x0008
  82. #define SO_DONTROUTE 0x0010
  83. #define SO_BROADCAST 0x0020
  84. #define SO_PEERCRED 0x0040
  85. #define SO_LINGER 0x0080
  86. #define SO_OOBINLINE 0x0100
  87. /* To add :#define SO_REUSEPORT 0x0200 */
  88. #define SO_BSDCOMPAT 0x0400
  89. #define SO_RCVLOWAT 0x0800
  90. #define SO_SNDLOWAT 0x1000
  91. #define SO_RCVTIMEO 0x2000
  92. #define SO_SNDTIMEO 0x4000
  93. #define SO_ACCEPTCONN 0x8000
  94. #define SO_DONTLINGER (~SO_LINGER) /* Older SunOS compat. hack */
  95. #define SO_SNDBUF 0x1001
  96. #define SO_RCVBUF 0x1002
  97. #define SO_SNDBUFFORCE 0x100a
  98. #define SO_RCVBUFFORCE 0x100b
  99. #define SO_ERROR 0x1007
  100. #define SO_TYPE 0x1008
  101. #define SO_ATTACH_FILTER 0x001a
  102. #define SO_DETACH_FILTER 0x001b
  103. #define SO_PEERNAME 0x001c
  104. #define SO_TIMESTAMP 0x001d
  105. #define SCM_TIMESTAMP SO_TIMESTAMP
  106. /* Security levels - as per NRL IPv6 - don't actually do anything */
  107. #define SO_SECURITY_AUTHENTICATION 0x5001
  108. #define SO_SECURITY_ENCRYPTION_TRANSPORT 0x5002
  109. #define SO_SECURITY_ENCRYPTION_NETWORK 0x5004
  110. #else
  111. #define SOL_SOCKET 1
  112. #define SO_DEBUG 1
  113. #define SO_REUSEADDR 2
  114. #define SO_TYPE 3
  115. #define SO_ERROR 4
  116. #define SO_DONTROUTE 5
  117. #define SO_BROADCAST 6
  118. #define SO_SNDBUF 7
  119. #define SO_RCVBUF 8
  120. #define SO_KEEPALIVE 9
  121. #define SO_OOBINLINE 10
  122. #define SO_NO_CHECK 11
  123. #define SO_PRIORITY 12
  124. #define SO_LINGER 13
  125. #define SO_BSDCOMPAT 14
  126. /* To add :#define SO_REUSEPORT 15 */
  127. #define SO_PASSCRED 16
  128. #define SO_PEERCRED 17
  129. #define SO_RCVLOWAT 18
  130. #define SO_SNDLOWAT 19
  131. #define SO_RCVTIMEO 20
  132. #define SO_SNDTIMEO 21
  133. #define SO_ACCEPTCONN 30
  134. #define SO_SNDBUFFORCE 32
  135. #define SO_RCVBUFFORCE 33
  136. #endif
  137. #if !defined(__hppa__) && !defined(__sparc__)
  138. /* Security levels - as per NRL IPv6 - don't actually do anything */
  139. #define SO_SECURITY_AUTHENTICATION 22
  140. #define SO_SECURITY_ENCRYPTION_TRANSPORT 23
  141. #define SO_SECURITY_ENCRYPTION_NETWORK 24
  142. #define SO_BINDTODEVICE 25
  143. /* Socket filtering */
  144. #define SO_ATTACH_FILTER 26
  145. #define SO_DETACH_FILTER 27
  146. #define SO_PEERNAME 28
  147. #define SO_TIMESTAMP 29
  148. #define SCM_TIMESTAMP SO_TIMESTAMP
  149. #endif
  150. /* Socket types. */
  151. #ifdef __mips__
  152. #define SOCK_DGRAM 1 /* datagram (conn.less) socket */
  153. #define SOCK_STREAM 2 /* stream (connection) socket */
  154. #else
  155. #define SOCK_STREAM 1 /* stream (connection) socket */
  156. #define SOCK_DGRAM 2 /* datagram (conn.less) socket */
  157. #endif
  158. #define SOCK_RAW 3 /* raw socket */
  159. #define SOCK_RDM 4 /* reliably-delivered message */
  160. #define SOCK_SEQPACKET 5 /* sequential packet socket */
  161. #define SOCK_PACKET 10 /* linux specific way of */
  162. /* getting packets at the dev */
  163. /* level. For writing rarp and */
  164. /* other similar things on the */
  165. /* user level. */
  166. struct sockaddr {
  167. sa_family_t sa_family;
  168. char sa_data[14];
  169. };
  170. struct linger {
  171. int32_t l_onoff;
  172. int32_t l_linger;
  173. };
  174. struct iovec {
  175. void* iov_base; /* BSD uses caddr_t (1003.1g requires void *) */
  176. size_t iov_len; /* Must be size_t (1003.1g) */
  177. };
  178. struct msghdr {
  179. void* msg_name; /* Socket name */
  180. socklen_t msg_namelen; /* Length of name */
  181. struct iovec* msg_iov; /* Data blocks */
  182. size_t msg_iovlen; /* Number of blocks */
  183. void* msg_control; /* Per protocol magic (eg BSD file descriptor passing) */
  184. size_t msg_controllen; /* Length of cmsg list */
  185. uint32_t msg_flags;
  186. };
  187. struct cmsghdr {
  188. size_t cmsg_len; /* data byte count, including hdr */
  189. int32_t cmsg_level; /* originating protocol */
  190. int32_t cmsg_type; /* protocol-specific type */
  191. };
  192. #define UIO_FASTIOV 8
  193. #define UIO_MAXIOV 1024
  194. /* "Socket"-level control message types: */
  195. #define SCM_RIGHTS 0x01 /* rw: access rights (array of int) */
  196. #define SCM_CREDENTIALS 0x02 /* rw: struct ucred */
  197. #define SCM_CONNECT 0x03 /* rw: struct scm_connect */
  198. struct ucred {
  199. pid_t pid;
  200. uid_t uid;
  201. gid_t gid;
  202. };
  203. /* Supported address families. */
  204. #define AF_UNSPEC 0
  205. #define AF_UNIX 1 /* Unix domain sockets */
  206. #define AF_LOCAL 1 /* POSIX name for AF_UNIX */
  207. #define AF_INET 2 /* Internet IP Protocol */
  208. #define AF_AX25 3 /* Amateur Radio AX.25 */
  209. #define AF_IPX 4 /* Novell IPX */
  210. #define AF_APPLETALK 5 /* AppleTalk DDP */
  211. #define AF_NETROM 6 /* Amateur Radio NET/ROM */
  212. #define AF_BRIDGE 7 /* Multiprotocol bridge */
  213. #define AF_ATMPVC 8 /* ATM PVCs */
  214. #define AF_X25 9 /* Reserved for X.25 project */
  215. #define AF_INET6 10 /* IP version 6 */
  216. #define AF_ROSE 11 /* Amateur Radio X.25 PLP */
  217. #define AF_DECnet 12 /* Reserved for DECnet project */
  218. #define AF_NETBEUI 13 /* Reserved for 802.2LLC project*/
  219. #define AF_SECURITY 14 /* Security callback pseudo AF */
  220. #define AF_KEY 15 /* PF_KEY key management API */
  221. #define AF_NETLINK 16
  222. #define AF_ROUTE AF_NETLINK /* Alias to emulate 4.4BSD */
  223. #define AF_PACKET 17 /* Packet family */
  224. #define AF_ASH 18 /* Ash */
  225. #define AF_ECONET 19 /* Acorn Econet */
  226. #define AF_ATMSVC 20 /* ATM SVCs */
  227. #define AF_SNA 22 /* Linux SNA Project (nutters!) */
  228. #define AF_IRDA 23 /* IRDA sockets */
  229. #define AF_PPPOX 24 /* PPPoX sockets */
  230. #define AF_WANPIPE 25 /* Wanpipe API Sockets */
  231. #define AF_MAX 32 /* For now.. */
  232. /* Protocol families, same as address families. */
  233. #define PF_UNSPEC AF_UNSPEC
  234. #define PF_UNIX AF_UNIX
  235. #define PF_LOCAL AF_LOCAL
  236. #define PF_INET AF_INET
  237. #define PF_AX25 AF_AX25
  238. #define PF_IPX AF_IPX
  239. #define PF_APPLETALK AF_APPLETALK
  240. #define PF_NETROM AF_NETROM
  241. #define PF_BRIDGE AF_BRIDGE
  242. #define PF_ATMPVC AF_ATMPVC
  243. #define PF_X25 AF_X25
  244. #define PF_INET6 AF_INET6
  245. #define PF_ROSE AF_ROSE
  246. #define PF_DECnet AF_DECnet
  247. #define PF_NETBEUI AF_NETBEUI
  248. #define PF_SECURITY AF_SECURITY
  249. #define PF_KEY AF_KEY
  250. #define PF_NETLINK AF_NETLINK
  251. #define PF_ROUTE AF_ROUTE
  252. #define PF_PACKET AF_PACKET
  253. #define PF_ASH AF_ASH
  254. #define PF_ECONET AF_ECONET
  255. #define PF_ATMSVC AF_ATMSVC
  256. #define PF_SNA AF_SNA
  257. #define PF_IRDA AF_IRDA
  258. #define PF_PPPOX AF_PPPOX
  259. #define PF_WANPIPE AF_WANPIPE
  260. #define PF_MAX AF_MAX
  261. /* Maximum queue length specifiable by listen. */
  262. #define SOMAXCONN 128
  263. /* Flags we can use with send/ and recv.
  264. Added those for 1003.1g not all are supported yet */
  265. #define MSG_OOB 1
  266. #define MSG_PEEK 2
  267. #define MSG_DONTROUTE 4
  268. #define MSG_TRYHARD 4 /* Synonym for MSG_DONTROUTE for DECnet */
  269. #define MSG_CTRUNC 8
  270. #define MSG_PROBE 0x10 /* Do not send. Only probe path f.e. for MTU */
  271. #define MSG_TRUNC 0x20
  272. #define MSG_DONTWAIT 0x40 /* Nonblocking io */
  273. #define MSG_EOR 0x80 /* End of record */
  274. #define MSG_WAITALL 0x100 /* Wait for a full request */
  275. #define MSG_FIN 0x200
  276. #define MSG_EOF MSG_FIN
  277. #define MSG_SYN 0x400
  278. #define MSG_CONFIRM 0x800 /* Confirm path validity */
  279. #define MSG_RST 0x1000
  280. #define MSG_ERRQUEUE 0x2000 /* Fetch message from error queue */
  281. #define MSG_NOSIGNAL 0x4000 /* Do not generate SIGPIPE */
  282. #define MSG_MORE 0x8000 /* Sender will send more */
  283. /* Setsockoptions(2) level. Thanks to BSD these must match IPPROTO_xxx */
  284. #define SOL_IP 0
  285. /* #define SOL_ICMP 1 No-no-no! Due to Linux :-) we cannot use SOL_ICMP=1 */
  286. #define SOL_TCP 6
  287. #define SOL_UDP 17
  288. #define SOL_IPV6 41
  289. #define SOL_ICMPV6 58
  290. #define SOL_RAW 255
  291. #define SOL_IPX 256
  292. #define SOL_AX25 257
  293. #define SOL_ATALK 258
  294. #define SOL_NETROM 259
  295. #define SOL_ROSE 260
  296. #define SOL_DECNET 261
  297. #define SOL_X25 262
  298. #define SOL_PACKET 263
  299. #define SOL_ATM 264 /* ATM layer (cell level) */
  300. #define SOL_AAL 265 /* ATM Adaption Layer (packet level) */
  301. #define SOL_IRDA 266
  302. /* IPX options */
  303. #define IPX_TYPE 1
  304. #define CMSG_ALIGN(len) ( ((len)+sizeof(long)-1) & ~(sizeof(long)-1) )
  305. #define __CMSG_NXTHDR(ctl, len, cmsg) __cmsg_nxthdr((ctl),(len),(cmsg))
  306. #define CMSG_NXTHDR(mhdr, cmsg) cmsg_nxthdr((mhdr), (cmsg))
  307. static inline struct cmsghdr* __cmsg_nxthdr(void *__ctl, size_t __size, struct cmsghdr *__cmsg)
  308. {
  309. struct cmsghdr * __ptr;
  310. __ptr = (struct cmsghdr*)(((unsigned char *) __cmsg) + CMSG_ALIGN(__cmsg->cmsg_len));
  311. if ((unsigned long)((char*)(__ptr+1) - (char *) __ctl) > __size)
  312. return (struct cmsghdr *)0;
  313. return __ptr;
  314. }
  315. static inline struct cmsghdr* cmsg_nxthdr (struct msghdr *__msg, struct cmsghdr *__cmsg)
  316. {
  317. return __cmsg_nxthdr(__msg->msg_control, __msg->msg_controllen, __cmsg);
  318. }
  319. #define CMSG_DATA(cmsg) ((void *)((char *)(cmsg) + CMSG_ALIGN(sizeof(struct cmsghdr))))
  320. #define CMSG_SPACE(len) (CMSG_ALIGN(sizeof(struct cmsghdr)) + CMSG_ALIGN(len))
  321. #define CMSG_LEN(len) (CMSG_ALIGN(sizeof(struct cmsghdr)) + (len))
  322. #define __CMSG_FIRSTHDR(ctl,len) ((len) >= sizeof(struct cmsghdr) ? \
  323. (struct cmsghdr *)(ctl) : \
  324. (struct cmsghdr *)NULL)
  325. #define CMSG_FIRSTHDR(msg) __CMSG_FIRSTHDR((msg)->msg_control, (msg)->msg_controllen)
  326. struct sockaddr_storage {
  327. sa_family_t ss_family;
  328. uint32_t __ss_align;
  329. char __ss_padding[(128 - (2 * sizeof (uint32_t ))) ];
  330. };
  331. #ifndef SOCK_DGRAM
  332. /* the Linux kernel headers suck really badly on non-x86 */
  333. #define SOCK_STREAM 1 /* stream (connection) socket */
  334. #define SOCK_DGRAM 2 /* datagram (conn.less) socket */
  335. #define SOCK_RAW 3 /* raw socket */
  336. #define SOCK_RDM 4 /* reliably-delivered message */
  337. #define SOCK_SEQPACKET 5 /* sequential packet socket */
  338. #define SOCK_PACKET 10 /* linux specific way of */
  339. #endif
  340. int socket(int domain, int type, int protocol) __THROW;
  341. int accept(int s, struct sockaddr *addr, socklen_t *addrlen) __THROW;
  342. int connect(int sockfd, const struct sockaddr *serv_addr, socklen_t addrlen) __THROW;
  343. int bind(int sockfd, const struct sockaddr *my_addr, socklen_t addrlen) __THROW;
  344. int recv(int s, void *buf, size_t len, int flags) __THROW;
  345. int recvfrom(int s, void *buf, size_t len, int flags, struct sockaddr *from, socklen_t *fromlen) __THROW;
  346. int recvmsg(int s, struct msghdr *msg, int flags) __THROW;
  347. int send(int s, const void *msg, size_t len, int flags) __THROW;
  348. int sendto(int s, const void *msg, size_t len, int flags, const struct sockaddr *to, socklen_t tolen) __THROW;
  349. int sendmsg(int s, const struct msghdr *msg, int flags) __THROW;
  350. int getpeername(int s, struct sockaddr *name, socklen_t *namelen) __THROW;
  351. int getsockname(int s , struct sockaddr * name , socklen_t * namelen) __THROW;
  352. int getsockopt(int s, int level, int optname, void *optval, socklen_t *optlen) __THROW;
  353. int setsockopt(int s, int level, int optname, const void *optval, socklen_t optlen) __THROW;
  354. int listen(int s, int backlog) __THROW;
  355. #define SHUT_RD 0
  356. #define SHUT_WR 1
  357. #define SHUT_RDWR 2
  358. int shutdown(int s, int how) __THROW;
  359. int socketpair(int d, int type, int protocol, int sv[2]);
  360. /* currently not supported: */
  361. #define NI_NOFQDN 1
  362. #define NI_NUMERICHOST 2
  363. #define NI_NAMEREQD 4
  364. #define NI_NUMERICSERV 8
  365. #define NI_DGRAM 16
  366. struct addrinfo {
  367. int ai_flags;
  368. int ai_family;
  369. int ai_socktype;
  370. int ai_protocol;
  371. size_t ai_addrlen;
  372. struct sockaddr *ai_addr;
  373. char *ai_canonname;
  374. struct addrinfo *ai_next;
  375. };
  376. int getnameinfo(const struct sockaddr *sa, socklen_t salen, char *host,
  377. size_t hostlen, char *serv, size_t servlen, int flags) __THROW;
  378. int getaddrinfo(const char *node, const char *service, const struct
  379. addrinfo *hints, struct addrinfo **res) __THROW;
  380. void freeaddrinfo(struct addrinfo *res) __THROW;
  381. const char *gai_strerror(int errcode) __THROW;
  382. #define EAI_FAMILY -1
  383. #define EAI_SOCKTYPE -2
  384. #define EAI_BADFLAGS -3
  385. #define EAI_NONAME -4
  386. #define EAI_SERVICE -5
  387. #define EAI_ADDRFAMILY -6
  388. #define EAI_NODATA -7
  389. #define EAI_MEMORY -8
  390. #define EAI_FAIL -9
  391. #define EAI_AGAIN -10
  392. #define EAI_SYSTEM -11
  393. #define AI_NUMERICHOST 1
  394. #define AI_CANONNAME 2
  395. #define AI_PASSIVE 4
  396. /* Linux-specific socket ioctls */
  397. #define SIOCINQ FIONREAD
  398. #define SIOCOUTQ TIOCOUTQ
  399. /* Routing table calls. */
  400. #define SIOCADDRT 0x890B /* add routing table entry */
  401. #define SIOCDELRT 0x890C /* delete routing table entry */
  402. #define SIOCRTMSG 0x890D /* call to routing system */
  403. /* Socket configuration controls. */
  404. #define SIOCGIFNAME 0x8910 /* get iface name */
  405. #define SIOCSIFLINK 0x8911 /* set iface channel */
  406. #define SIOCGIFCONF 0x8912 /* get iface list */
  407. #define SIOCGIFFLAGS 0x8913 /* get flags */
  408. #define SIOCSIFFLAGS 0x8914 /* set flags */
  409. #define SIOCGIFADDR 0x8915 /* get PA address */
  410. #define SIOCSIFADDR 0x8916 /* set PA address */
  411. #define SIOCGIFDSTADDR 0x8917 /* get remote PA address */
  412. #define SIOCSIFDSTADDR 0x8918 /* set remote PA address */
  413. #define SIOCGIFBRDADDR 0x8919 /* get broadcast PA address */
  414. #define SIOCSIFBRDADDR 0x891a /* set broadcast PA address */
  415. #define SIOCGIFNETMASK 0x891b /* get network PA mask */
  416. #define SIOCSIFNETMASK 0x891c /* set network PA mask */
  417. #define SIOCGIFMETRIC 0x891d /* get metric */
  418. #define SIOCSIFMETRIC 0x891e /* set metric */
  419. #define SIOCGIFMEM 0x891f /* get memory address (BSD) */
  420. #define SIOCSIFMEM 0x8920 /* set memory address (BSD) */
  421. #define SIOCGIFMTU 0x8921 /* get MTU size */
  422. #define SIOCSIFMTU 0x8922 /* set MTU size */
  423. #define SIOCSIFNAME 0x8923 /* set interface name */
  424. #define SIOCSIFHWADDR 0x8924 /* set hardware address */
  425. #define SIOCGIFENCAP 0x8925 /* get/set encapsulations */
  426. #define SIOCSIFENCAP 0x8926
  427. #define SIOCGIFHWADDR 0x8927 /* Get hardware address */
  428. #define SIOCGIFSLAVE 0x8929 /* Driver slaving support */
  429. #define SIOCSIFSLAVE 0x8930
  430. #define SIOCADDMULTI 0x8931 /* Multicast address lists */
  431. #define SIOCDELMULTI 0x8932
  432. #define SIOCGIFINDEX 0x8933 /* name -> if_index mapping */
  433. #define SIOGIFINDEX SIOCGIFINDEX /* misprint compatibility :-) */
  434. #define SIOCSIFPFLAGS 0x8934 /* set/get extended flags set */
  435. #define SIOCGIFPFLAGS 0x8935
  436. #define SIOCDIFADDR 0x8936 /* delete PA address */
  437. #define SIOCSIFHWBROADCAST 0x8937 /* set hardware broadcast addr */
  438. #define SIOCGIFCOUNT 0x8938 /* get number of devices */
  439. #define SIOCGIFBR 0x8940 /* Bridging support */
  440. #define SIOCSIFBR 0x8941 /* Set bridging options */
  441. #define SIOCGIFTXQLEN 0x8942 /* Get the tx queue length */
  442. #define SIOCSIFTXQLEN 0x8943 /* Set the tx queue length */
  443. #define SIOCGIFDIVERT 0x8944 /* Frame diversion support */
  444. #define SIOCSIFDIVERT 0x8945 /* Set frame diversion options */
  445. #define SIOCETHTOOL 0x8946 /* Ethtool interface */
  446. /* ARP cache control calls. */
  447. /* 0x8950 - 0x8952 * obsolete calls, don't re-use */
  448. #define SIOCDARP 0x8953 /* delete ARP table entry */
  449. #define SIOCGARP 0x8954 /* get ARP table entry */
  450. #define SIOCSARP 0x8955 /* set ARP table entry */
  451. /* RARP cache control calls. */
  452. #define SIOCDRARP 0x8960 /* delete RARP table entry */
  453. #define SIOCGRARP 0x8961 /* get RARP table entry */
  454. #define SIOCSRARP 0x8962 /* set RARP table entry */
  455. /* Driver configuration calls */
  456. #define SIOCGIFMAP 0x8970 /* Get device parameters */
  457. #define SIOCSIFMAP 0x8971 /* Set device parameters */
  458. /* DLCI configuration calls */
  459. #define SIOCADDDLCI 0x8980 /* Create new DLCI device */
  460. #define SIOCDELDLCI 0x8981 /* Delete DLCI device */
  461. #define SIOCDEVPRIVATE 0x89F0 /* to 89FF */
  462. #define _LINUX_SOCKET_H
  463. __END_DECLS
  464. #endif