123161Smckusick /* 2*63211Sbostic * Copyright (c) 1980, 1986, 1993 3*63211Sbostic * The Regents of the University of California. All rights reserved. 423161Smckusick * 544465Sbostic * %sccs.include.redist.c% 633183Sbostic * 7*63211Sbostic * @(#)raw_cb.h 8.1 (Berkeley) 06/10/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 */ 3361351Sbostic 3461351Sbostic int raw_attach __P((struct socket *, int)); 3561351Sbostic void raw_ctlinput __P((int, struct sockaddr *)); 3661351Sbostic void raw_detach __P((struct rawcb *)); 3761351Sbostic void raw_disconnect __P((struct rawcb *)); 3861351Sbostic void raw_init __P((void)); 3961351Sbostic void raw_input __P((struct mbuf *, 4061351Sbostic struct sockproto *, struct sockaddr *, struct sockaddr *)); 4161351Sbostic int raw_usrreq __P((struct socket *, 4261351Sbostic int, struct mbuf *, struct mbuf *, struct mbuf *)); 435634Sroot #endif 44