⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dat.h

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 H
字号:
typedef struct Field Field;typedef struct Filter Filter;typedef struct Msg Msg;typedef struct Mux Mux;typedef struct Proto Proto;#define NetS(x) ((((uchar*)x)[0]<<8) | ((uchar*)x)[1])#define Net3(x) ((((uchar*)x)[0]<<16) | (((uchar*)x)[1]<<8) | ((uchar*)x)[2])#define NetL(x) ((((uchar*)x)[0]<<24) | (((uchar*)x)[1]<<16) | (((uchar*)x)[2]<<8) | ((uchar*)x)[3])/* *  one per protocol module */struct Proto{	char*	name;	void	(*compile)(Filter*);	int	(*filter)(Filter*, Msg*);	int	(*seprint)(Msg*);	Mux*	mux;	char*	valfmt;	Field*	field;	int	(*framer)(int, uchar*, int);};extern Proto *protos[];/* *  one per protocol module, pointed to by Proto.mux */struct Mux{	char*	name;	ulong	val;	Proto*	pr;};/* *  a field defining a comparison filter */struct Field{	char*	name;	int	ftype;	int	subop;	char*	help;};/* *  the status of the current message walk */struct Msg{	uchar	*ps;	/* packet ptr */	uchar	*pe;	/* packet end */	char	*p;	/* buffer start */	char	*e;	/* buffer end */	int	needroot;	/* pr is root, need to see in expression */	Proto	*pr;	/* current/next protocol */	};enum{	Fnum,		/* just a number */	Fether,		/* ethernet address */	Fv4ip,		/* v4 ip address */	Fv6ip,		/* v6 ip address */	Fba,		/* byte array */};/* *  a node in the filter tree */struct Filter {	int	op;	/* token type */	char	*s;	/* string */	Filter	*l;	Filter	*r;	Proto	*pr;	/* next protocol;	/* protocol specific */	int	subop;	ulong	param;	union {		ulong	ulv;		vlong	vlv;		uchar	a[32];	};};extern void	yyinit(char*);extern int	yyparse(void);extern Filter*	newfilter(void);extern void	compile_cmp(char*, Filter*, Field*);extern void	demux(Mux*, ulong, ulong, Msg*, Proto*);extern int	defaultframer(int, uchar*, int);extern int Mflag;extern int Nflag;extern int dflag;extern int Cflag;typedef Filter *Filterptr;#define YYSTYPE Filterptrextern Filter *filter;

⌨️ 快捷键说明

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