|
|
1.1 root 1: /* in.h 6.1 83/07/29 */
2:
3: /*
4: * Constants and structures defined by the internet system,
5: * Per RFC 790, September 1981.
6: */
7:
8: /*
9: * Protocols
10: */
11: #define IPPROTO_ICMP 1 /* control message protocol */
12: #define IPPROTO_GGP 2 /* gateway^2 (deprecated) */
13: #define IPPROTO_TCP 6 /* tcp */
14: #define IPPROTO_PUP 12 /* pup */
15: #define IPPROTO_UDP 17 /* user datagram protocol */
16: #define IPPROTO_ND 77 /* UNOFFICIAL net disk proto */
17:
18: #define IPPROTO_RAW 255 /* raw IP packet */
19: #define IPPROTO_MAX 256
20:
21: /*
22: * Port/socket numbers: network standard functions
23: */
24: #define IPPORT_ECHO 7
25: #define IPPORT_DISCARD 9
26: #define IPPORT_SYSTAT 11
27: #define IPPORT_DAYTIME 13
28: #define IPPORT_NETSTAT 15
29: #define IPPORT_FTP 21
30: #define IPPORT_TELNET 23
31: #define IPPORT_SMTP 25
32: #define IPPORT_TIMESERVER 37
33: #define IPPORT_NAMESERVER 42
34: #define IPPORT_WHOIS 43
35: #define IPPORT_MTP 57
36:
37: /*
38: * Port/socket numbers: host specific functions
39: */
40: #define IPPORT_TFTP 69
41: #define IPPORT_RJE 77
42: #define IPPORT_FINGER 79
43: #define IPPORT_TTYLINK 87
44: #define IPPORT_SUPDUP 95
45:
46: /*
47: * UNIX TCP sockets
48: */
49: #define IPPORT_EXECSERVER 512
50: #define IPPORT_LOGINSERVER 513
51: #define IPPORT_CMDSERVER 514
52: #define IPPORT_EFSSERVER 520
53:
54: /*
55: * UNIX UDP sockets
56: */
57: #define IPPORT_BIFFUDP 512
58: #define IPPORT_WHOSERVER 513
59: #define IPPORT_ROUTESERVER 520 /* 520+1 also used */
60:
61: /*
62: * Ports < IPPORT_RESERVED are reserved for
63: * privileged processes (e.g. root).
64: */
65: #define IPPORT_RESERVED 1024
66:
67: /*
68: * Link numbers
69: */
70: #define IMPLINK_IP 155
71: #define IMPLINK_LOWEXPER 156
72: #define IMPLINK_HIGHEXPER 158
73:
74: /*
75: * Internet address (old style... should be updated)
76: */
77: struct in_addr {
78: union {
79: struct { u_char s_b1,s_b2,s_b3,s_b4; } S_un_b;
80: struct { u_short s_w1,s_w2; } S_un_w;
81: u_long S_addr;
82: } S_un;
83: #define s_addr S_un.S_addr /* can be used for most tcp & ip code */
84: #define s_host S_un.S_un_b.s_b2 /* host on imp */
85: #define s_net S_un.S_un_b.s_b1 /* network */
86: #define s_imp S_un.S_un_w.s_w2 /* imp */
87: #define s_impno S_un.S_un_b.s_b4 /* imp # */
88: #define s_lh S_un.S_un_b.s_b3 /* logical host */
89: };
90:
91: /*
92: * Definitions of bits in internet address integers.
93: */
94: #define IN_CLASSA(i) ((((long)(i))&0x80000000)==0)
95: #define IN_CLASSA_NET 0xff000000
96: #define IN_CLASSA_NSHIFT 24
97: #define IN_CLASSA_HOST 0x00ffffff
98:
99: #define IN_CLASSB(i) ((((long)(i))&0xc0000000)==0x80000000)
100: #define IN_CLASSB_NET 0xffff0000
101: #define IN_CLASSB_NSHIFT 16
102: #define IN_CLASSB_HOST 0x0000ffff
103:
104: #define IN_CLASSC(i) ((((long)(i))&0xc0000000)==0xc0000000)
105: #define IN_CLASSC_NET 0xffffff00
106: #define IN_CLASSC_NSHIFT 8
107: #define IN_CLASSC_HOST 0x000000ff
108:
109: #define INADDR_ANY 0x00000000
110:
111: /*
112: * Socket address, internet style.
113: */
114: struct sockaddr_in {
115: short sin_family;
116: u_short sin_port;
117: struct in_addr sin_addr;
118: char sin_zero[8];
119: };
120:
121: #if !defined(vax)
122: /*
123: * Macros for number representation conversion.
124: */
125: #define ntohl(x) (x)
126: #define ntohs(x) (x)
127: #define htonl(x) (x)
128: #define htons(x) (x)
129: #endif
130:
131: #ifdef KERNEL
132: extern struct domain inetdomain;
133: extern struct protosw inetsw[];
134: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.