dgram.h

来自「TCP-IP红宝书源代码」· C头文件 代码 · 共 56 行

H
56
字号
/* dgram.h */

/* datagram pseudo-device control block */

struct	dgblk	{			/* datagram device control block*/
	int	dg_dnum;		/* device number of this device	*/
	int	dg_state;		/* whether this device allocated*/
	IPaddr	df_lip;			/* local IP address		*/
	u_short	dg_lport;		/* local datagram port number	*/
	IPaddr	dg_fip;			/* foreign machine IP address	*/
	u_short	dg_fport;		/* foreign datagram port number	*/
	int	dg_xport;		/* incoming packet queue	*/
	int	dg_upq;			/* index of our upq entry	*/
	int	dg_mode;		/* mode of this interface	*/
};

/* datagram psuedo-device state constants */

#define	DGS_FREE	0		/* this device is available	*/
#define	DGS_INUSE	1		/* this device is in use	*/

#define	DG_TIME		30		/* read timeout (tenths of sec)	*/

/* constants for dg pseudo-device control functions */

#define	DG_SETMODE	1		/* set mode of device		*/
#define	DG_CLEAR	2		/* clear all waiting datagrams	*/

/* constants for dg pseudo-device mode bits */

#define	DG_NMODE	001		/* normal (datagram) mode	*/
#define	DG_DMODE	002		/* data-only mode		*/
#define	DG_TMODE	004		/* timeout all reads		*/
#define	DG_CMODE	010		/* generate checksums (default)	*/

/* structure of xinugram as dg interface delivers it to user */

struct	xgram	{			/* Xinu datagram (not UDP)	*/
	IPaddr	xg_fip;			/* foreign host IP address	*/
	unsigned short	xg_fport;	/* foreign UDP port number	*/
	unsigned short	xg_lport;	/* local UDP port number	*/
	u_char	xg_data[U_MAXLEN];	/* maximum data to/from UDP	*/
};

#define	XGHLEN	8	/* error in ( (sizeof(struct xgram)) - U_MAXLEN)*/

/* constants for port specifications on UDP open call */

#define	ANYFPORT	0		/* accept any foreign UDP port	*/
#define	ANYLPORT	0		/* assign a fresh local port num*/

extern	struct	dgblk	dgtab[Ndg];
extern	int	dgmutex;

int	dgalloc(void);

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?