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