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

📄 wanpipe.h

📁 《嵌入式系统设计与实例开发实验教材二源码》Linux内核移植与编译实验
💻 H
📖 第 1 页 / 共 2 页
字号:
/****************************************************************************** wanpipe.h	WANPIPE(tm) Multiprotocol WAN Link Driver.*		User-level API definitions.** Author: 	Nenad Corbic <ncorbic@sangoma.com>*		Gideon Hack  	** Copyright:	(c) 1995-2000 Sangoma Technologies Inc.**		This program is free software; you can redistribute it and/or*		modify it under the terms of the GNU General Public License*		as published by the Free Software Foundation; either version*		2 of the License, or (at your option) any later version.* ============================================================================* Nov 3,  2000  Nenad Corbic    Added config_id to sdla_t structure.*                               Used to determine the protocol running.* Jul 13, 2000  Nenad Corbic	Added SyncPPP Support* Feb 24, 2000  Nenad Corbic    Added support for x25api driver* Oct 04, 1999  Nenad Corbic    New CHDLC and FRAME RELAY code, SMP support* Jun 02, 1999  Gideon Hack	Added 'update_call_count' for Cisco HDLC *				support* Jun 26, 1998	David Fong	Added 'ip_mode' in sdla_t.u.p for dynamic IP*				routing mode configuration* Jun 12, 1998	David Fong	Added Cisco HDLC union member in sdla_t* Dec 08, 1997	Jaspreet Singh  Added 'authenticator' in union of 'sdla_t' * Nov 26, 1997	Jaspreet Singh	Added 'load_sharing' structure.  Also added *				'devs_struct','dev_to_devtint_next' to 'sdla_t'	* Nov 24, 1997	Jaspreet Singh	Added 'irq_dis_if_send_count', *				'irq_dis_poll_count' to 'sdla_t'.* Nov 06, 1997	Jaspreet Singh	Added a define called 'INTR_TEST_MODE'* Oct 20, 1997	Jaspreet Singh	Added 'buff_intr_mode_unbusy' and *				'dlci_intr_mode_unbusy' to 'sdla_t'* Oct 18, 1997	Jaspreet Singh	Added structure to maintain global driver*				statistics.* Jan 15, 1997	Gene Kozin	Version 3.1.0*				 o added UDP management stuff* Jan 02, 1997	Gene Kozin	Version 3.0.0*****************************************************************************/#ifndef	_WANPIPE_H#define	_WANPIPE_H#include <linux/version.h>#ifndef KERNEL_VERSION  #define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))#endif#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,3,0)  #define LINUX_2_4 #define netdevice_t struct net_device #define FREE_READ 1 #define FREE_WRITE 0 #define stop_net_queue(a) 	netif_stop_queue(a)  #define start_net_queue(a) 	netif_start_queue(a) #define is_queue_stopped(a)	netif_queue_stopped(a) #define wake_net_dev(a)	netif_wake_queue(a) #define is_dev_running(a)	netif_running(a) #define wan_dev_kfree_skb(a,b)	dev_kfree_skb_any(a)#elif LINUX_VERSION_CODE >= KERNEL_VERSION(2,1,0) #define LINUX_2_1 #define netdevice_t struct device #define FREE_READ 1 #define FREE_WRITE 0 #define stop_net_queue(a) 	(set_bit(0, &##a->tbusy))  #define start_net_queue(a) 	(clear_bit(0,&##a->tbusy)) #define is_queue_stopped(a)	(##a->tbusy) #define wake_net_dev(a)	{clear_bit(0,&##a->tbusy);mark_bh(NET_BH);} #define is_dev_running(a)	(test_bit(0,&##a->start)) #define wan_dev_kfree_skb(a,b)	dev_kfree_skb(a)#else #define LINUX_2_0 #define netdevice_t struct device #define test_and_set_bit set_bit #define net_ratelimit() 1  #define stop_net_queue(a) 	(set_bit(0, &##a->tbusy))  #define start_net_queue(a) 	(clear_bit(0,&##a->tbusy)) #define is_queue_stopped(a)	(##a->tbusy) #define wake_net_dev(a)	{clear_bit(0,&##a->tbusy);mark_bh(NET_BH);} #define is_dev_running(a)	(test_bit(0,(void*)&##a->start)) #define wan_dev_kfree_skb(a,b) dev_kfree_skb(a,b)  		  #define spin_lock_init(a) #define spin_lock(a) #define spin_unlock(a)#endif#include <linux/wanrouter.h>/* Defines */#ifndef	PACKED#define	PACKED	__attribute__((packed))#endif#define	WANPIPE_MAGIC	0x414C4453L	/* signature: 'SDLA' reversed *//* IOCTL numbers (up to 16) */#define	WANPIPE_DUMP	(ROUTER_USER+0)	/* dump adapter's memory */#define	WANPIPE_EXEC	(ROUTER_USER+1)	/* execute firmware command */#define TRACE_ALL                       0x00#define TRACE_PROT			0x01#define TRACE_DATA			0x02/* values for request/reply byte */#define UDPMGMT_REQUEST	0x01#define UDPMGMT_REPLY	0x02#define UDP_OFFSET	12#define MAX_CMD_BUFF 	10#define MAX_X25_LCN 	255	/* Maximum number of x25 channels */#define MAX_LCN_NUM	4095	/* Maximum lcn number */#define MAX_FT1_RETRY 	100#ifdef LINUX_2_4  #ifndef AF_WANPIPE	#define AF_WANPIPE 25	#ifndef PF_WANPIPE		#define PF_WANPIPE AF_WANPIPE	#endif  #endif#else  #ifndef AF_WANPIPE	#define AF_WANPIPE 24	#ifndef PF_WANPIPE		#define PF_WANPIPE AF_WANPIPE	#endif  #endif#endif#define TX_TIMEOUT 5*HZ/* General Critical Flags */#define SEND_CRIT	0x00#define PERI_CRIT	0x01/* Chdlc and PPP polling critical flag */#define POLL_CRIT	0x03/* Frame Relay Tx IRQ send critical flag */#define SEND_TXIRQ_CRIT 0x02/* Frame Relay ARP critical flag */#define ARP_CRIT	0x03/* Bit maps for dynamic interface configuration * DYN_OPT_ON : turns this option on/off  * DEV_DOWN   : device was shutdown by the driver not *              by user  */#define DYN_OPT_ON	0x00#define DEV_DOWN	0x01/* * Data structures for IOCTL calls. */typedef struct sdla_dump	/* WANPIPE_DUMP */{	unsigned long magic;	/* for verification */	unsigned long offset;	/* absolute adapter memory address */	unsigned long length;	/* block length */	void* ptr;		/* -> buffer */} sdla_dump_t;typedef struct sdla_exec	/* WANPIPE_EXEC */{	unsigned long magic;	/* for verification */	void* cmd;		/* -> command structure */	void* data;		/* -> data buffer */} sdla_exec_t;/* UDP management stuff */typedef struct wum_header{	unsigned char signature[8];	/* 00h: signature */	unsigned char type;		/* 08h: request/reply */	unsigned char command;		/* 09h: commnand */	unsigned char reserved[6];	/* 0Ah: reserved */} wum_header_t;/************************************************************************* Data Structure for global statistics*************************************************************************/typedef struct global_stats{	unsigned long isr_entry;	unsigned long isr_already_critical;			unsigned long isr_rx;	unsigned long isr_tx;	unsigned long isr_intr_test;	unsigned long isr_spurious;	unsigned long isr_enable_tx_int;	unsigned long rx_intr_corrupt_rx_bfr;	unsigned long rx_intr_on_orphaned_DLCI;	unsigned long rx_intr_dev_not_started;	unsigned long tx_intr_dev_not_started;	unsigned long poll_entry;	unsigned long poll_already_critical;	unsigned long poll_processed;	unsigned long poll_tbusy_bad_status;	unsigned long poll_host_disable_irq;	unsigned long poll_host_enable_irq;} global_stats_t;typedef struct{	unsigned short	udp_src_port		PACKED;	unsigned short	udp_dst_port		PACKED;	unsigned short	udp_length		PACKED;	unsigned short	udp_checksum		PACKED;} udp_pkt_t;typedef struct {	unsigned char	ver_inet_hdr_length	PACKED;	unsigned char	service_type		PACKED;	unsigned short	total_length		PACKED;	unsigned short	identifier		PACKED;	unsigned short	flags_frag_offset	PACKED;	unsigned char	ttl			PACKED;	unsigned char	protocol		PACKED;	unsigned short	hdr_checksum		PACKED;	unsigned long	ip_src_address		PACKED;	unsigned long	ip_dst_address		PACKED;} ip_pkt_t;typedef struct {        unsigned char           signature[8]    PACKED;        unsigned char           request_reply   PACKED;        unsigned char           id              PACKED;        unsigned char           reserved[6]     PACKED;} wp_mgmt_t;/************************************************************************* Data Structure for if_send  statistics*************************************************************************/  typedef struct if_send_stat{	unsigned long if_send_entry;	unsigned long if_send_skb_null;	unsigned long if_send_broadcast;	unsigned long if_send_multicast;	unsigned long if_send_critical_ISR;	unsigned long if_send_critical_non_ISR;	unsigned long if_send_tbusy;	unsigned long if_send_tbusy_timeout;	unsigned long if_send_PIPE_request;	unsigned long if_send_wan_disconnected;	unsigned long if_send_dlci_disconnected;	unsigned long if_send_no_bfrs;	unsigned long if_send_adptr_bfrs_full;	unsigned long if_send_bfr_passed_to_adptr;	unsigned long if_send_protocol_error;       	unsigned long if_send_bfr_not_passed_to_adptr;       	unsigned long if_send_tx_int_enabled;        unsigned long if_send_consec_send_fail; } if_send_stat_t;typedef struct rx_intr_stat{	unsigned long rx_intr_no_socket;	unsigned long rx_intr_dev_not_started;	unsigned long rx_intr_PIPE_request;	unsigned long rx_intr_bfr_not_passed_to_stack;	unsigned long rx_intr_bfr_passed_to_stack;} rx_intr_stat_t;	

⌨️ 快捷键说明

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