mirror of
https://github.com/GnoConsortium/gno.git
synced 2024-12-22 14:30:29 +00:00
79 lines
2.3 KiB
C
79 lines
2.3 KiB
C
/*
|
|
* Mach Operating System
|
|
* Copyright (c) 1987 Carnegie-Mellon University
|
|
* All rights reserved. The CMU software License Agreement specifies
|
|
* the terms and conditions for use and redistribution.
|
|
*/
|
|
/*
|
|
* HISTORY
|
|
* 26-Sep-89 Morris Meyer (mmeyer) at NeXT
|
|
* NFS 4.0 Changes: Back out statistics gathering support.
|
|
*
|
|
* 13-Aug-87 Peter King (king) at NeXT
|
|
* SUN_RPC: Added rcb_cc and rcb_mbcnt for statistics gathering.
|
|
* Added RAW_TALLY flag to turn on statistics gathering
|
|
*/
|
|
|
|
/*
|
|
* Copyright (c) 1980, 1986 Regents of the University of California.
|
|
* All rights reserved. The Berkeley software License Agreement
|
|
* specifies the terms and conditions for redistribution.
|
|
*
|
|
* @(#)raw_cb.h 7.1 (Berkeley) 6/4/86
|
|
*/
|
|
|
|
/* @(#)raw_cb.h 2.1 88/05/30 4.0NFSSRC SMI; from UCB 7.1 6/5/86 */
|
|
|
|
/*
|
|
* Raw protocol interface control block. Used
|
|
* to tie a socket to the generic raw interface.
|
|
*/
|
|
struct rawcb {
|
|
struct rawcb *rcb_next; /* doubly linked list */
|
|
struct rawcb *rcb_prev;
|
|
struct socket *rcb_socket; /* back pointer to socket */
|
|
struct sockaddr rcb_faddr; /* destination address */
|
|
struct sockaddr rcb_laddr; /* socket's address */
|
|
struct sockproto rcb_proto; /* protocol family, protocol */
|
|
caddr_t rcb_pcb; /* protocol specific stuff */
|
|
struct mbuf *rcb_options; /* protocol specific options */
|
|
struct route rcb_route; /* routing information */
|
|
short rcb_flags;
|
|
/* SUN_RPC */
|
|
int rcb_cc; /* bytes of rawintr queued data */
|
|
int rcb_mbcnt; /* bytes of rawintr queued mbufs */
|
|
/* SUN_RPC */
|
|
};
|
|
|
|
/*
|
|
* Since we can't interpret canonical addresses,
|
|
* we mark an address present in the flags field.
|
|
*/
|
|
#define RAW_LADDR 01
|
|
#define RAW_FADDR 02
|
|
#define RAW_DONTROUTE 04 /* no routing, default */
|
|
#define RAW_TALLY 0x08 /* tally delivered packets (SUN_RPC) */
|
|
|
|
#define sotorawcb(so) ((struct rawcb *)(so)->so_pcb)
|
|
|
|
/*
|
|
* Nominal space allocated to a raw socket.
|
|
*/
|
|
#define RAWSNDQ 2048
|
|
#define RAWRCVQ 2048
|
|
|
|
/*
|
|
* Format of raw interface header prepended by
|
|
* raw_input after call from protocol specific
|
|
* input routine.
|
|
*/
|
|
struct raw_header {
|
|
struct sockproto raw_proto; /* format of packet */
|
|
struct sockaddr raw_dst; /* dst address for rawintr */
|
|
struct sockaddr raw_src; /* src address for sbappendaddr */
|
|
};
|
|
|
|
#ifdef KERNEL
|
|
struct rawcb rawcb; /* head of list */
|
|
#endif
|