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

📄 llc.h

📁 ARM 嵌入式 系统 设计与实例开发 实验教材 二源码
💻 H
字号:
#include <linux/skbuff.h>#define LLC_MODULEtypedef struct llc_struct llc;typedef struct llc_struct *llcptr;/* *	LLC private data area structure. */struct llc_struct{ 	char eye[4];			/* To recognize llc area in dump */	int retry_count;		/* LLC link state variables */	unsigned char name[9];		/* name of this llc instance */	unsigned char s_flag;	unsigned char p_flag;	unsigned char f_flag;	unsigned char data_flag;	unsigned char cause_flag;	unsigned char vs;		/* Send state variable */	unsigned char vr;		/* Receive state variable */	unsigned char remote_busy;	unsigned char state;		/* Current state of type2 llc procedure */	int n1;				/* Maximum number of bytes in I pdu 7.8.2 */	int n2;				/* Naximum number of retransmissions 7.8.2 */	unsigned char k;		/* Transmit window size 7.8.4, tw in IBM doc*/ 	unsigned char rw;		/* Receive window size */	struct 	{     						/*		 *	FRMR_RSP info field structure: 5.4.2.3.5 p55		 */		unsigned char cntl1;		unsigned char cntl2;		unsigned char vs;		unsigned char vr_cr;		unsigned char xxyz;	} frmr_info_fld;	/*	 *	Timers in 7.8.1 page 78 	 */#define P_TIMER         0#define REJ_TIMER       1#define ACK_TIMER       2 #define BUSY_TIMER      3	unsigned long timer_expire_time[4];		unsigned char timer_state[4];	/* The state of each timer */#define TIMER_IDLE      0#define TIMER_RUNNING   1#define TIMER_EXPIRED   2	unsigned long timer_interval[4]; 	struct timer_list tl[4];	/* 	 *	Client entry point, called by the LLC.	 */	 	void	(*llc_event)(struct llc_struct *);		/*	 *	Mux and Demux variables	 */	 	char * client_data;		/* Pointer to clients context */	unsigned char local_sap;	unsigned char remote_sap ;	char remote_mac[MAX_ADDR_LEN];  /* MAC address of remote session partner */ 	struct net_device *dev;		/* Device we are attached to */		     	unsigned char llc_mode;		/* See doc 7.1 on p70 */#define MODE_ADM 1#define MODE_ABM 2	int llc_callbacks;		/* Pending callbacks */#define LLC_CONN_INDICATION	1	/* We have to ensure the names don't */#define LLC_CONN_CONFIRM	2	/* mix up with the 802 state table */#define LLC_DATA_INDIC		4#define LLC_DISC_INDICATION	8#define LLC_RESET_INDIC_LOC	16#define LLC_RESET_INDIC_REM	32#define LLC_RST_CONFIRM		64#define LLC_FRMR_RECV		128#define LLC_FRMR_SENT		256#define LLC_REMOTE_BUSY		512#define LLC_REMOTE_NOTBUSY	1024#define LLC_TEST_INDICATION	2048#define LLC_XID_INDICATION	4096#define LLC_UI_DATA		8192	struct sk_buff *inc_skb;	/* Saved data buffer for indications */		struct sk_buff_head rtq;	/* Retransmit queue */	struct sk_buff_head atq;	/* Await transit queue */      	unsigned char xid_count;	struct llc_struct *nextllc;	/* ptr to next llc struct in proto chain */};#define ADD_TO_RTQ(skb) skb_queue_tail(&lp->rtq,skb)#define ADD_TO_ATQ(skb) skb_queue_tail(&lp->atq,skb)void 		llc_cancel_timers(llcptr lp);int		llc_decode_frametype(frameptr fr);llcptr 		llc_find(void);int		llc_free_acknowledged_skbs(llcptr lp, unsigned char ack);void		llc_handle_xid_indication( char *chsp, short int ll, char *xid_data);void		llc_interpret_pseudo_code(llcptr lp, int pc_label, struct sk_buff *skb, char type);void		llc_add_to_queue(struct sk_buff *skb, struct sk_buff **f, struct sk_buff **b);void		llc_process_otype2_frame(llcptr lp, struct sk_buff *skb, char type);struct sk_buff *llc_pull_from_atq(llcptr lp); int 		llc_resend_ipdu(llcptr lp, unsigned char ack_nr, unsigned char type, char p);void 		llc_sendpdu(llcptr lp, char type, char pf, int data_len, char *pdu_data);void 		llc_sendipdu(llcptr lp, char type, char pf, struct sk_buff *skb);void		llc_start_timer(llcptr lp, int t);void		llc_stop_timer(llcptr lp, int t);void		llc_timer_expired(llcptr lp, int t);int		llc_validate_seq_nos(llcptr lp, frameptr fr);int		llc_data_request(llcptr lp, struct sk_buff *skb);void		llc_unit_data_request(llcptr lp, int ll, char * data);void		llc_disconnect_request(llcptr lp);void		llc_connect_request(llcptr lp);void		llc_xid_request(llcptr lp, char opt, int data_len, char *pdu_data);void		llc_test_request(llcptr lp, int data_len, char *pdu_data);int		register_cl2llc_client(llcptr llc, const char *device, void (*ops)(llcptr), u8 *rmac, u8 ssap, u8 dsap);void		unregister_cl2llc_client(llcptr lp);int 		llc_mac_data_indicate(llcptr lp, struct sk_buff *skb );

⌨️ 快捷键说明

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