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