xref: /csrg-svn/sys/net/raw_cb.h (revision 61351)
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