|
|
1.1 root 1: /* raw_cb.h 6.1 83/07/29 */
2:
3: /*
4: * Raw protocol interface control block. Used
5: * to tie a socket to the generic raw interface.
6: */
7: struct rawcb {
8: struct rawcb *rcb_next; /* doubly linked list */
9: struct rawcb *rcb_prev;
10: struct socket *rcb_socket; /* back pointer to socket */
11: struct sockaddr rcb_faddr; /* destination address */
12: struct sockaddr rcb_laddr; /* socket's address */
13: caddr_t rcb_pcb; /* protocol specific stuff */
14: struct route rcb_route; /* routing information */
15: short rcb_flags;
16: };
17:
18: /*
19: * Since we can't interpret canonical addresses,
20: * we mark an address present in the flags field.
21: */
22: #define RAW_LADDR 01
23: #define RAW_FADDR 02
24: #define RAW_DONTROUTE 04 /* no routing, default */
25:
26: #define sotorawcb(so) ((struct rawcb *)(so)->so_pcb)
27:
28: /*
29: * Nominal space allocated to a raw socket.
30: */
31: #define RAWSNDQ 2048
32: #define RAWRCVQ 2048
33:
34: /*
35: * Format of raw interface header prepended by
36: * raw_input after call from protocol specific
37: * input routine.
38: */
39: struct raw_header {
40: struct sockproto raw_proto; /* format of packet */
41: struct sockaddr raw_dst; /* dst address for rawintr */
42: struct sockaddr raw_src; /* src address for sbappendaddr */
43: };
44:
45: #ifdef KERNEL
46: struct rawcb rawcb; /* head of list */
47: #endif
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.