]>
Commit | Line | Data |
---|---|---|
5de33b10 LV |
1 | /* |
2 | * This program is free software; you can redistribute it and/or modify | |
3 | * it under the terms of the GNU General Public License version 2 as | |
4 | * published by the Free Software Foundation, or (at your option) any | |
5 | * later version. See the COPYING file in the top-level directory. | |
6 | */ | |
7 | ||
8 | #ifndef MIPS_SOCKBITS_H | |
9 | #define MIPS_SOCKBITS_H | |
10 | /* MIPS special values for constants */ | |
11 | ||
12 | /* | |
13 | * For setsockopt(2) | |
14 | * | |
15 | * This defines are ABI conformant as far as Linux supports these ... | |
16 | */ | |
17 | #define TARGET_SOL_SOCKET 0xffff | |
18 | ||
19 | #define TARGET_SO_DEBUG 0x0001 /* Record debugging information. */ | |
20 | #define TARGET_SO_REUSEADDR 0x0004 /* Allow reuse of local addresses. */ | |
21 | #define TARGET_SO_KEEPALIVE 0x0008 /* Keep connections alive and send | |
22 | SIGPIPE when they die. */ | |
23 | #define TARGET_SO_DONTROUTE 0x0010 /* Don't do local routing. */ | |
24 | #define TARGET_SO_BROADCAST 0x0020 /* Allow transmission of | |
25 | broadcast messages. */ | |
26 | #define TARGET_SO_LINGER 0x0080 /* Block on close of a reliable | |
27 | * socket to transmit pending data. | |
28 | */ | |
29 | #define TARGET_SO_OOBINLINE 0x0100 /* Receive out-of-band data in-band. | |
30 | */ | |
5de33b10 | 31 | #define TARGET_SO_REUSEPORT 0x0200 |
5de33b10 LV |
32 | |
33 | #define TARGET_SO_TYPE 0x1008 /* Compatible name for SO_STYLE. */ | |
34 | #define TARGET_SO_STYLE SO_TYPE /* Synonym */ | |
35 | #define TARGET_SO_ERROR 0x1007 /* get error status and clear */ | |
36 | #define TARGET_SO_SNDBUF 0x1001 /* Send buffer size. */ | |
37 | #define TARGET_SO_RCVBUF 0x1002 /* Receive buffer. */ | |
38 | #define TARGET_SO_SNDLOWAT 0x1003 /* send low-water mark */ | |
39 | #define TARGET_SO_RCVLOWAT 0x1004 /* receive low-water mark */ | |
40 | #define TARGET_SO_SNDTIMEO 0x1005 /* send timeout */ | |
41 | #define TARGET_SO_RCVTIMEO 0x1006 /* receive timeout */ | |
42 | #define TARGET_SO_ACCEPTCONN 0x1009 | |
43 | ||
44 | /* linux-specific, might as well be the same as on i386 */ | |
45 | #define TARGET_SO_NO_CHECK 11 | |
46 | #define TARGET_SO_PRIORITY 12 | |
47 | #define TARGET_SO_BSDCOMPAT 14 | |
48 | ||
49 | #define TARGET_SO_PASSCRED 17 | |
50 | #define TARGET_SO_PEERCRED 18 | |
51 | ||
52 | /* Security levels - as per NRL IPv6 - don't actually do anything */ | |
53 | #define TARGET_SO_SECURITY_AUTHENTICATION 22 | |
54 | #define TARGET_SO_SECURITY_ENCRYPTION_TRANSPORT 23 | |
55 | #define TARGET_SO_SECURITY_ENCRYPTION_NETWORK 24 | |
56 | ||
57 | #define TARGET_SO_BINDTODEVICE 25 | |
58 | ||
59 | /* Socket filtering */ | |
60 | #define TARGET_SO_ATTACH_FILTER 26 | |
61 | #define TARGET_SO_DETACH_FILTER 27 | |
62 | ||
63 | #define TARGET_SO_PEERNAME 28 | |
64 | #define TARGET_SO_TIMESTAMP 29 | |
65 | #define SCM_TIMESTAMP SO_TIMESTAMP | |
66 | ||
67 | #define TARGET_SO_PEERSEC 30 | |
68 | #define TARGET_SO_SNDBUFFORCE 31 | |
69 | #define TARGET_SO_RCVBUFFORCE 33 | |
70 | #define TARGET_SO_PASSSEC 34 | |
71 | ||
72 | /** sock_type - Socket types | |
73 | * | |
74 | * Please notice that for binary compat reasons MIPS has to | |
75 | * override the enum sock_type in include/linux/net.h, so | |
76 | * we define ARCH_HAS_SOCKET_TYPES here. | |
77 | * | |
78 | * @SOCK_DGRAM - datagram (conn.less) socket | |
79 | * @SOCK_STREAM - stream (connection) socket | |
80 | * @SOCK_RAW - raw socket | |
81 | * @SOCK_RDM - reliably-delivered message | |
82 | * @SOCK_SEQPACKET - sequential packet socket | |
83 | * @SOCK_DCCP - Datagram Congestion Control Protocol socket | |
84 | * @SOCK_PACKET - linux specific way of getting packets at the dev level. | |
85 | * For writing rarp and other similar things on the user | |
86 | * level. | |
87 | * @SOCK_CLOEXEC - sets the close-on-exec (FD_CLOEXEC) flag. | |
88 | * @SOCK_NONBLOCK - sets the O_NONBLOCK file status flag. | |
89 | */ | |
90 | ||
8f553bf7 | 91 | #define TARGET_ARCH_HAS_SOCKET_TYPES 1 |
5de33b10 LV |
92 | |
93 | enum sock_type { | |
94 | TARGET_SOCK_DGRAM = 1, | |
95 | TARGET_SOCK_STREAM = 2, | |
96 | TARGET_SOCK_RAW = 3, | |
97 | TARGET_SOCK_RDM = 4, | |
98 | TARGET_SOCK_SEQPACKET = 5, | |
99 | TARGET_SOCK_DCCP = 6, | |
100 | TARGET_SOCK_PACKET = 10, | |
5de33b10 LV |
101 | }; |
102 | ||
103 | #define TARGET_SOCK_MAX (TARGET_SOCK_PACKET + 1) | |
104 | #define TARGET_SOCK_TYPE_MASK 0xf /* Covers up to TARGET_SOCK_MAX-1. */ | |
8f553bf7 LV |
105 | |
106 | /* Flags for socket, socketpair, paccept */ | |
107 | #define TARGET_SOCK_CLOEXEC TARGET_O_CLOEXEC | |
108 | #define TARGET_SOCK_NONBLOCK TARGET_O_NONBLOCK | |
109 | ||
5de33b10 | 110 | #endif |