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

📄 wanpipe.h

📁 《嵌入式系统设计与实例开发实验教材二源码》Linux内核移植与编译实验
💻 H
📖 第 1 页 / 共 2 页
字号:
typedef struct pipe_mgmt_stat{	unsigned long UDP_PIPE_mgmt_kmalloc_err;	unsigned long UDP_PIPE_mgmt_direction_err;	unsigned long UDP_PIPE_mgmt_adptr_type_err;	unsigned long UDP_PIPE_mgmt_adptr_cmnd_OK;	unsigned long UDP_PIPE_mgmt_adptr_cmnd_timeout;	unsigned long UDP_PIPE_mgmt_adptr_send_passed;	unsigned long UDP_PIPE_mgmt_adptr_send_failed;	unsigned long UDP_PIPE_mgmt_not_passed_to_stack;	unsigned long UDP_PIPE_mgmt_passed_to_stack;	unsigned long UDP_PIPE_mgmt_no_socket;        unsigned long UDP_PIPE_mgmt_passed_to_adptr;} pipe_mgmt_stat_t;typedef struct {	struct sk_buff *skb;} bh_data_t, cmd_data_t;#define MAX_LGTH_UDP_MGNT_PKT 2000 /* This is used for interrupt testing */#define INTR_TEST_MODE	0x02#define	WUM_SIGNATURE_L	0x50495046#define	WUM_SIGNATURE_H	0x444E3845#define	WUM_KILL	0x50#define	WUM_EXEC	0x51#define WANPIPE		0x00#define API		0x01#define BRIDGE		0x02#define BRIDGE_NODE	0x03#ifdef	__KERNEL__/****** Kernel Interface ****************************************************/#include <linux/sdladrv.h>	/* SDLA support module API definitions */#include <linux/sdlasfm.h>	/* SDLA firmware module definitions */#include <linux/tqueue.h>#ifdef LINUX_2_4  #include <linux/serial.h>  #include <linux/serialP.h>  #include <linux/serial_reg.h>  #include <asm/serial.h>#endif#include <linux/tty.h>#include <linux/tty_driver.h>#include <linux/tty_flip.h>#define	is_digit(ch) (((ch)>=(unsigned)'0'&&(ch)<=(unsigned)'9')?1:0)#define	is_alpha(ch) ((((ch)>=(unsigned)'a'&&(ch)<=(unsigned)'z')||\	 	  ((ch)>=(unsigned)'A'&&(ch)<=(unsigned)'Z'))?1:0)#define	is_hex_digit(ch) ((((ch)>=(unsigned)'0'&&(ch)<=(unsigned)'9')||\	 	  ((ch)>=(unsigned)'a'&&(ch)<=(unsigned)'f')||\	 	  ((ch)>=(unsigned)'A'&&(ch)<=(unsigned)'F'))?1:0)/****** Data Structures *****************************************************//* Adapter Data Space. * This structure is needed because we handle multiple cards, otherwise * static data would do it. */typedef struct sdla{	char devname[WAN_DRVNAME_SZ+1];	/* card name */	sdlahw_t hw;			/* hardware configuration */	wan_device_t wandev;		/* WAN device data space */		unsigned open_cnt;		/* number of open interfaces */	unsigned long state_tick;	/* link state timestamp */	unsigned intr_mode;		/* Type of Interrupt Mode */	char in_isr;			/* interrupt-in-service flag */	char buff_int_mode_unbusy;	/* flag for carrying out dev_tint */  	char dlci_int_mode_unbusy;	/* flag for carrying out dev_tint */	char configured;		/* flag for previous configurations */		unsigned short irq_dis_if_send_count; /* Disabling irqs in if_send*/	unsigned short irq_dis_poll_count;   /* Disabling irqs in poll routine*/	unsigned short force_enable_irq;	char TracingEnabled;		/* flag for enabling trace */	global_stats_t statistics;	/* global statistics */	void* mbox;			/* -> mailbox */	void* rxmb;			/* -> receive mailbox */	void* flags;			/* -> adapter status flags */	void (*isr)(struct sdla* card);	/* interrupt service routine */	void (*poll)(struct sdla* card); /* polling routine */	int (*exec)(struct sdla* card, void* u_cmd, void* u_data);					/* Used by the listen() system call */			/* Wanpipe Socket Interface */	int   (*func) (struct sk_buff *, struct sock *);	struct sock *sk;	/* Shutdown function */	void (*disable_comm) (struct sdla *card);	/* Secondary Port Device: Piggibacking */	struct sdla *next;	/* TTY driver variables */	unsigned char tty_opt;	struct tty_struct *tty;	unsigned int tty_minor;	unsigned int tty_open;	unsigned char *tty_buf;	unsigned char *tty_rx;	struct tq_struct tty_task_queue;		union	{		struct		{			/****** X.25 specific data **********/			u32 lo_pvc;			u32 hi_pvc;			u32 lo_svc;			u32 hi_svc;			netdevice_t *svc_to_dev_map[MAX_X25_LCN];			netdevice_t *pvc_to_dev_map[MAX_X25_LCN];			netdevice_t *tx_dev;			netdevice_t *cmd_dev;			u32 no_dev;			volatile u8 *hdlc_buf_status;			u32 tx_interrupts_pending;                        u16 timer_int_enabled;			netdevice_t *poll_device;			atomic_t command_busy;			u16 udp_pkt_lgth;                        u32 udp_type;                        u8  udp_pkt_src;			u32 udp_lcn;                        netdevice_t * udp_dev;                        s8 udp_pkt_data[MAX_LGTH_UDP_MGNT_PKT];		 	u8 LAPB_hdlc;		/* Option to turn off X25 and run only LAPB */			u8 logging;		/* Option to log call messages */			u8 oob_on_modem;	/* Option to send modem status to the api */			u16 num_of_ch;		/* Number of channels configured by the user */			struct tq_struct x25_poll_task;			struct timer_list x25_timer;		} x;		struct		{			/****** frame relay specific data ***/			void* rxmb_base;	/* -> first Rx buffer */			void* rxmb_last;	/* -> last Rx buffer */			unsigned rx_base;	/* S508 receive buffer base */			unsigned rx_top;	/* S508 receive buffer end */			unsigned short node_dlci[100];			unsigned short dlci_num;                        netdevice_t *dlci_to_dev_map[991 + 1];                        unsigned tx_interrupts_pending;                        unsigned short timer_int_enabled;                        unsigned short udp_pkt_lgth;                        int udp_type;                        char udp_pkt_src;                        unsigned udp_dlci;                        char udp_pkt_data[MAX_LGTH_UDP_MGNT_PKT];                        void* trc_el_base;      		/* first trace element */                        void* trc_el_last;      		/* last trace element */                        void *curr_trc_el;      		/* current trace element */                        unsigned short trc_bfr_space; 		/* trace buffer space */			unsigned char  update_comms_stats;			netdevice_t *arp_dev;			spinlock_t if_send_lock;		} f;		struct			/****** PPP-specific data ***********/		{			char if_name[WAN_IFNAME_SZ+1];	/* interface name */			void* txbuf;		/* -> current Tx buffer */			void* txbuf_base;	/* -> first Tx buffer */			void* txbuf_last;	/* -> last Tx buffer */			void* rxbuf_base;	/* -> first Rx buffer */			void* rxbuf_last;	/* -> last Rx buffer */			unsigned rx_base;	/* S508 receive buffer base */			unsigned rx_top;	/* S508 receive buffer end */			char ip_mode;		/* STATIC/HOST/PEER IP Mode */			char authenticator;	/* Authenticator for PAP/CHAP */			unsigned char comm_enabled; /* Is comm enabled or not */			unsigned char peer_route;   /* Process Peer Route */				unsigned long *txbuf_next;  /* Next Tx buffer to use */ 			unsigned long *rxbuf_next;  /* Next Rx buffer to use */		} p;		struct			/* Cisco HDLC-specific data */		{			char if_name[WAN_IFNAME_SZ+1];	/* interface name */			unsigned char comm_port;/* Communication Port O or 1 */			unsigned char usedby;  /* Used by WANPIPE or API */			void* rxmb;		/* Receive mail box */			void* flags;		/* flags */			void* tx_status;	/* Tx status element */			void* rx_status;	/* Rx status element */			void* txbuf;		/* -> current Tx buffer */			void* txbuf_base;	/* -> first Tx buffer */			void* txbuf_last;	/* -> last Tx buffer */			void* rxbuf_base;	/* -> first Rx buffer */			void* rxbuf_last;	/* -> last Rx buffer */			unsigned rx_base;	/* S508 receive buffer base */			unsigned rx_top;	/* S508 receive buffer end */			unsigned char receive_only; /* high speed receivers */			unsigned short protocol_options;			unsigned short kpalv_tx;	/* Tx kpalv timer */			unsigned short kpalv_rx;	/* Rx kpalv timer */			unsigned short kpalv_err;	/* Error tolerance */			unsigned short slarp_timer;	/* SLARP req timer */			unsigned state;			/* state of the link */			unsigned char api_status;			unsigned char update_call_count;			unsigned short api_options;	/* for async config */			unsigned char  async_mode;		        unsigned short tx_bits_per_char;		        unsigned short rx_bits_per_char;		        unsigned short stop_bits;		        unsigned short parity;			unsigned short break_timer;		        unsigned short inter_char_timer;		        unsigned short rx_complete_length;		        unsigned short xon_char;		        unsigned short xoff_char;			unsigned char comm_enabled; /* Is comm enabled or not */			unsigned char backup;		} c;		struct		{			void* tx_status;	/* Tx status element */			void* rx_status;	/* Rx status element */			void* trace_status;	/* Trace status element */			void* txbuf;		/* -> current Tx buffer */			void* txbuf_base;	/* -> first Tx buffer */			void* txbuf_last;	/* -> last Tx buffer */			void* rxbuf_base;	/* -> first Rx buffer */			void* rxbuf_last;	/* -> last Rx buffer */			void* tracebuf;		/* -> current Trace buffer */			void* tracebuf_base;	/* -> current Trace buffer */			void* tracebuf_last;	/* -> current Trace buffer */			unsigned rx_base;	/* receive buffer base */			unsigned rx_end;	/* receive buffer end */			unsigned trace_base;	/* trace buffer base */			unsigned trace_end;	/* trace buffer end */		} h;	} u;} sdla_t;/****** Public Functions ****************************************************/void wanpipe_open      (sdla_t* card);			/* wpmain.c */void wanpipe_close     (sdla_t* card);			/* wpmain.c */void wanpipe_set_state (sdla_t* card, int state);	/* wpmain.c */int wpx_init (sdla_t* card, wandev_conf_t* conf);	/* wpx.c */int wpf_init (sdla_t* card, wandev_conf_t* conf);	/* wpf.c */int wpp_init (sdla_t* card, wandev_conf_t* conf);	/* wpp.c */int wpc_init (sdla_t* card, wandev_conf_t* conf); /* Cisco HDLC */int bsc_init (sdla_t* card, wandev_conf_t* conf);	/* BSC streaming */int hdlc_init(sdla_t* card, wandev_conf_t* conf);	/* HDLC support */int wpft1_init (sdla_t* card, wandev_conf_t* conf);     /* FT1 Config support */int wsppp_init (sdla_t* card, wandev_conf_t* conf);	/* Sync PPP on top of RAW CHDLC */extern sdla_t * wanpipe_find_card(char *);extern sdla_t * wanpipe_find_card_num (int);extern void wanpipe_queue_tq (struct tq_struct *);extern void wanpipe_mark_bh (void);extern void wakeup_sk_bh (netdevice_t *);extern int change_dev_flags (netdevice_t *, unsigned); extern unsigned long get_ip_address (netdevice_t *dev, int option);extern void add_gateway(sdla_t *, netdevice_t *);#endif	/* __KERNEL__ */#endif	/* _WANPIPE_H */

⌨️ 快捷键说明

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