|
|
1.1 root 1: /* socket.h 6.1 83/07/29 */
2:
3: /*
4: * Definitions related to sockets: types, address families, options.
5: */
6:
7: /*
8: * Types
9: */
10: #define SOCK_STREAM 1 /* stream socket */
11: #define SOCK_DGRAM 2 /* datagram socket */
12: #define SOCK_RAW 3 /* raw-protocol interface */
13: #define SOCK_RDM 4 /* reliably-delivered message */
14: #define SOCK_SEQPACKET 5 /* sequenced packet stream */
15:
16: /*
17: * Option flags per-socket.
18: */
19: #define SO_DEBUG 0x01 /* turn on debugging info recording */
20: #define SO_ACCEPTCONN 0x02 /* socket has had listen() */
21: #define SO_REUSEADDR 0x04 /* allow local address reuse */
22: #define SO_KEEPALIVE 0x08 /* keep connections alive */
23: #define SO_DONTROUTE 0x10 /* just use interface addresses */
24: /* 0x20 was SO_NEWFDONCONN */
25: #define SO_USELOOPBACK 0x40 /* bypass hardware when possible */
26: #define SO_LINGER 0x80 /* linger on close if data present */
27: #define SO_DONTLINGER (~SO_LINGER) /* ~SO_LINGER */
28:
29: /*
30: * Address families.
31: */
32: #define AF_UNSPEC 0 /* unspecified */
33: #define AF_UNIX 1 /* local to host (pipes, portals) */
34: #define AF_INET 2 /* internetwork: UDP, TCP, etc. */
35: #define AF_IMPLINK 3 /* arpanet imp addresses */
36: #define AF_PUP 4 /* pup protocols: e.g. BSP */
37: #define AF_CHAOS 5 /* mit CHAOS protocols */
38: #define AF_NS 6 /* XEROX NS protocols */
39: #define AF_NBS 7 /* nbs protocols */
40: #define AF_ECMA 8 /* european computer manufacturers */
41: #define AF_DATAKIT 9 /* datakit protocols */
42: #define AF_CCITT 10 /* CCITT protocols, X.25 etc */
43: #define AF_SNA 11 /* IBM SNA */
44:
45: #define AF_MAX 12
46:
47: /*
48: * Structure used by kernel to store most
49: * addresses.
50: */
51: struct sockaddr {
52: u_short sa_family; /* address family */
53: char sa_data[14]; /* up to 14 bytes of direct address */
54: };
55:
56: /*
57: * Structure used by kernel to pass protocol
58: * information in raw sockets.
59: */
60: struct sockproto {
61: u_short sp_family; /* address family */
62: u_short sp_protocol; /* protocol */
63: };
64:
65: /*
66: * Protocol families, same as address families for now.
67: */
68: #define PF_UNSPEC AF_UNSPEC
69: #define PF_UNIX AF_UNIX
70: #define PF_INET AF_INET
71: #define PF_IMPLINK AF_IMPLINK
72: #define PF_PUP AF_PUP
73: #define PF_CHAOS AF_CHAOS
74: #define PF_NS AF_NS
75: #define PF_NBS AF_NBS
76: #define PF_ECMA AF_ECMA
77: #define PF_DATAKIT AF_DATAKIT
78: #define PF_CCITT AF_CCITT
79: #define PF_SNA AF_SNA
80:
81: #define PF_MAX 12
82:
83: /*
84: * Level number for (get/set)sockopt() to apply to socket itself.
85: */
86: #define SOL_SOCKET 0xffff /* options for socket level */
87:
88: /*
89: * Maximum queue length specifiable by listen.
90: */
91: #define SOMAXCONN 5
92:
93: /*
94: * Message header for recvmsg and sendmsg calls.
95: */
96: struct msghdr {
97: caddr_t msg_name; /* optional address */
98: int msg_namelen; /* size of address */
99: struct iovec *msg_iov; /* scatter/gather array */
100: int msg_iovlen; /* # elements in msg_iov */
101: caddr_t msg_accrights; /* access rights sent/received */
102: int msg_accrightslen;
103: };
104:
105: #define MSG_OOB 0x1 /* process out-of-band data */
106: #define MSG_PEEK 0x2 /* peek at incoming message */
107: #define MSG_DONTROUTE 0x4 /* send without using routing tables */
108:
109: #define MSG_MAXIOVLEN 16
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.