123161Smckusick /* 229067Smckusick * Copyright (c) 1980, 1986 Regents of the University of California. 333183Sbostic * All rights reserved. 423161Smckusick * 544465Sbostic * %sccs.include.redist.c% 633183Sbostic * 7*61351Sbostic * @(#)raw_cb.h 7.7 (Berkeley) 06/04/93 823161Smckusick */ 95634Sroot 105634Sroot /* 115634Sroot * Raw protocol interface control block. Used 125634Sroot * to tie a socket to the generic raw interface. 135634Sroot */ 145634Sroot struct rawcb { 155634Sroot struct rawcb *rcb_next; /* doubly linked list */ 165634Sroot struct rawcb *rcb_prev; 175634Sroot struct socket *rcb_socket; /* back pointer to socket */ 1837472Ssklower struct sockaddr *rcb_faddr; /* destination address */ 1937472Ssklower struct sockaddr *rcb_laddr; /* socket's address */ 2021769Skarels struct sockproto rcb_proto; /* protocol family, protocol */ 215634Sroot }; 225634Sroot 235634Sroot #define sotorawcb(so) ((struct rawcb *)(so)->so_pcb) 245634Sroot 255634Sroot /* 265634Sroot * Nominal space allocated to a raw socket. 275634Sroot */ 2836824Skarels #define RAWSNDQ 8192 2936824Skarels #define RAWRCVQ 8192 305634Sroot 315634Sroot #ifdef KERNEL 325634Sroot struct rawcb rawcb; /* head of list */ 33*61351Sbostic 34*61351Sbostic int raw_attach __P((struct socket *, int)); 35*61351Sbostic void raw_ctlinput __P((int, struct sockaddr *)); 36*61351Sbostic void raw_detach __P((struct rawcb *)); 37*61351Sbostic void raw_disconnect __P((struct rawcb *)); 38*61351Sbostic void raw_init __P((void)); 39*61351Sbostic void raw_input __P((struct mbuf *, 40*61351Sbostic struct sockproto *, struct sockaddr *, struct sockaddr *)); 41*61351Sbostic int raw_usrreq __P((struct socket *, 42*61351Sbostic int, struct mbuf *, struct mbuf *, struct mbuf *)); 435634Sroot #endif 44