亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? c7000.c

?? linux-2.4.29操作系統的源碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
/*	Cisco/7000 driver -- Copyright (C) 2000 UTS Global LLC.	Author: Bob Scardapane (UTS Global LLC).	Version: 3.	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, or	(at your option) any later version.	This program is distributed in the hope that it will be useful,	but WITHOUT ANY WARRANTY; without even the implied warranty of	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the	GNU General Public License for more details.	You should have received a copy of the GNU General Public License	along with this program; if not, write to the Free Software	Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.	To use this driver, run the LINUX command:	insmod c7000 base0=0xYYYY lhost0=s1 uhost0=s2 lappl0=s3 uappl0=s4 dbg=x	base0=0xYYYY defines the base unit address of the interface.	lhost0=s1 defines the local host name.	uhost0=s2 defines the unit host name.	lappl0=s3 defines the local application name.	uappl0=s4 defines the unit application name.	dbg=x defines the message level.  Higher values will result in	additional diagnostic messages.	Additional interfaces are defined on insmod by using the variable	name groups "base1,lhost1,lappl1,uhost1,uappl1", etc... up to three	additional groups.	In addition, the module will automatically detect the unit base	addresses by scanning all active irq's for a control unit type	of 0x3088 and a model of 0x61 (CLAW mode). The noauto parameter	can be used to suppress automatic detection.	The values of lhostx, lapplx, uhostx and uapplx default to:	lapplx - TCPIP	lhostx - UTS	uapplx - TCPIP	uhostx - C7011	Note that the values passed in the insmod command will always	override the automatic detection of the unit base addreeses and	the default values of lapplx, lhostx, uapplx and uhostx.	The parameter noauto can be used to disable automatic detection of	devices:	noauto=1 (disable automatic detection)	noauto=0 (Enable automatic detectio.  This is the default value.)	The values in base0 - base3 will be copied to the bases array when	the module is loaded. 	To configure the interface(s), run the LINUX command(s):	ifconfig ci0 ...	ifconfig ci1 ...	ifconfig ci2 ...	ifconfig ci3 ...	There is one device structure for each controller in the c7000_devices	array.  The base address of each controller is in the bases array.	These arrays parallel each other.  There is also one c7000_controller	structure for each controller.  This structure is pointed to by field	priv in the individual device structure. 	In each c7000_controller, there are embedded c7000_unit structures.	There is one c7000_unit structure per device number that makes up	a controller (currently 2 units per controller).*/#include <linux/config.h>#include <linux/module.h>#include <linux/init.h>#include <linux/kernel.h>#include <linux/slab.h>#include <linux/errno.h>#include <linux/types.h>#include <linux/interrupt.h>#include <linux/timer.h>#include <linux/sched.h>#include <linux/signal.h>#include <linux/string.h>#include <linux/netdevice.h>#include <linux/etherdevice.h>#include <linux/if_arp.h>#include <linux/tcp.h>#include <linux/skbuff.h>#include <asm/io.h>#include <asm/bitops.h>#include <asm/irq.h> /*	Global defines*//*	Maximum number of controllers.*/#define	MAX_C7000	4/*	Number of units per controller.*/#define	NUNITS		2/*	Define indexes of read and write units in the cunits array.*/#define	C7000_RD	0#define	C7000_WR	1/*	Number of device buffers.*/#define	C7000_MAXBUF	40/*	Transmission queue length.*/#define	C7000_TXQUEUE_LEN	100/*	Size of the IP packet data.*/#define	C7000_DATAL	4096/*	Size of the read header data.*/#define	C7000_READHDRL	4/*	Size of read flag byte.*/#define	C7000_READFFL	1/*	Size of a device buffer.  This is how it is arranged in memory:	4096 (IP packet data) + 4 (read header) + 1 (read flag) = 4101.*/#define	C7000_BUFSIZE	C7000_DATAL + C7000_READHDRL + C7000_READFFL/*	Size of sigsmod data.*/#define	C7000_SIGSMODL	1/*	Flag value that indicates a read was completed in the flag	field of a c7000_rd_header.*/#define	FLAG_FF		0xff/*	Size of C7000 sense id data.*/#define SIDL		32/*	Maximum number of read and write retries.*/#define	C7000_MAX_RETRIES	3/*	Define sense byte0 value for a box reset.*/#define	C7000_BOX_RESET		0x41/*	CCW commands.*/#define	C7000_WRITE_CCW		0x01	/* normal write */#define	C7000_READ_CCW		0x02	/* normal read */#define	C7000_NOOP_CCW		0x03	/* no operation */#define	C7000_SIGSMOD_CCW	0x05	/* signal status modifier */#define	C7000_TIC_CCW		0x08	/* transfer in channel */#define	C7000_READHDR_CCW	0x12	/* read header  */#define	C7000_READFF_CCW	0x22	/* read FF flag */#define	C7000_SID_CCW		0xe4	/* sense identification *//*	Control commands.*/#define	C7000_SYS_VALIDATE		1#define C7000_SYS_VALIDATE_RESP		2#define	C7000_CONN_REQ			33#define C7000_CONN_RESP			34#define C7000_CONN_CONFRM		35#define C7000_DISCONN			36#define C7000_BOXERROR			65/*	State machine values.*/#define	C7000_INIT	1#define C7000_HALT	2#define C7000_SID	3#define C7000_SYSVAL	4#define	C7000_CONNECT	5#define C7000_READY	6#define C7000_READ	7#define C7000_WRITE	8#define	C7000_DISC	9#define C7000_STOP	10#define	C7000_STOPPED	11#define C7000_ERROR	12/*	The lower subchannel is used for read operations and the one that is	one higher is used for write operations.	Both subchannels are initially in state C7000_INIT.  A transition to	state C7000_HALT occurs when halt_IO is issued on each.  When the	halts completes a transition to state C7000_SID occurs and a channel	program is issued to do a sense identification on both subchannels.	When the sense identification completes, the state C7000_SYSVAL is	entered on the read subchannel.  A read channel program is issued.	When the sense identification completes, the write subchannel enters	state C7000_SYSVAL and a system validation request is written.  The	read subchannel is also put into this state.		When both the system validation response is read and an inbound system	validation request is read, the inbound system validation request is	responded to and both subchannels enter the C7000_CONNECT state.	A read channel program is posted to look for the inbound connect	request.  When that is received a connection confirmation is written.	The state of both subchannels is then changed to C7000_READY.  A	read channel program is then posted and the state is changed to	C7000_READ.  When a read completes, the packet is sent to the higher	layers and the read channel program is restarted.	When there is a packet to be written, state C7000_WRITE is entered	and a channel program is issued to write the data.  The subchannel	is in state C7000_READY when there is nothing to be written.	When the stop method is executed, a disconnect message is sent and	the state is changed to C7000_DISC in both subchannels.  A halt_IO	will be issued to both subchannels and state C7000_STOP will be entered.	When the halt IO completes, state C7000_STOPPED will be set. 	State C7000_ERROR is set when an error occurs in the interrupt	routine.  Recycle the interface (ifconfig down / ifconfig up)	to reset this state.*//*	Results from c7000_check_csw.*/enum	c7000_rupt {	C7000_NORMAL,	C7000_CHANERR,	C7000_UCK,	C7000_UCK_RESET,	C7000_UE,	C7000_ATTN,	C7000_BUSY,	C7000_OTHER};/*	Bits set in device structure tbusy field.*/#define	TB_TX		0	/* sk buffer handling in progress */#define	TB_STOP		1	/* network device stop in progress */#define	TB_RETRY	2	/* retry in progress */#define	TB_NOBUFFER	3	/* no buffer on free queue *//*	Bit in c7000_unit.flag_a that indicates the bh routine is busy.*/#define	C7000_BH_ACTIVE	0#define CPrintk(level, args...) \	if (level <= dbg) \		printk(args)/*	Maximum length of a system validation string.*/#define	NAMLEN	8#define	Err_Conn_Confirm	1#define	Err_Names_not_Matched	166#define	Err_C7000_NOT_READY	167#define	Err_Duplicate		170#define	Err_Closing		171#define	Err_No_Such_App		172#define	Err_Host_Not_Ready	173#define	Err_CLOSING		174#define	Err_Dup_Link		175#define	Err_Wrong_Version	179#define	Err_Wrong_Frame_Size	180/*	Define a macro to extract the logical link identifier from	the c7000 read header command field.*/#define	C7000_LINKID(cmd)	((unsigned char)cmd >> 3)/*	Define the control unit type for a Cisco 7000.*/#define	C7000_CU_TYPE		0x3088/*	Define the control unit model for a Cisco 7000.*/#define	C7000_CU_MODEL		0x61/*	Define the default system validate parameters (lapplx,	lhostx, uapplx, uhostx).*/#define	C7000_DFLT_LAPPL	"TCPIP"#define	C7000_DFLT_LHOST	"UTS"#define	C7000_DFLT_UAPPL	"TCPIP"#define	C7000_DFLT_UHOST	"C7011"/*	Global variables.*//*	Base device addresses of the controllers.*/static int	base0 = -1;static int	base1 = -1;static int	base2 = -1;static int	base3 = -1;static int	bases[MAX_C7000];/*	Local application names.*/static char	*lappl0;static char	*lappl1;static char	*lappl2;static char	*lappl3;/*	Local host names.*/static char	*lhost0;static char	*lhost1;static char	*lhost2;static char	*lhost3;/*	Unit application names.*/static char	*uappl0;static char	*uappl1;static char	*uappl2;static char	*uappl3;/*	Unit hosts names.*/static char	*uhost0;static char	*uhost1;static char	*uhost2;static char	*uhost3;/*	Debugging level (higher numbers emit lower priority messages).*/static unsigned int	dbg = 0;/*	Parameter that controls auto detection.*/static int	noauto = 0;/*	Interface names.*/static char	ifnames[MAX_C7000][8] = {"ci0", "ci1", "ci2", "ci3"};/*	One device structure per controller.*/struct net_device	c7000_devices[MAX_C7000];/*	Scratch variable filled in with controller name.*/static char	*controller;/*	Identify parameters that can be passed on the LINUX insmod command.*/MODULE_AUTHOR("Robert Scardapane (UTS Global)");MODULE_DESCRIPTION("Network module for Cisco 7000 box.");MODULE_LICENSE("GPL");MODULE_PARM(base0, "1i");MODULE_PARM_DESC(base0, "Base unit address for 1st C7000 box.");MODULE_PARM(base1, "1i");MODULE_PARM_DESC(base1, "Base unit address for 2nd C7000 box.");MODULE_PARM(base2, "1i");MODULE_PARM_DESC(base2, "Base unit address for 3rd C7000 box.");MODULE_PARM(base3, "1i");MODULE_PARM_DESC(base3, "Base unit address for 4th C7000 box.");MODULE_PARM(lappl0, "s");MODULE_PARM_DESC(lappl0, "Application name for 1st C7000 box.");MODULE_PARM(lappl1, "s");MODULE_PARM_DESC(lappl1, "Application name for 2nd C7000 box.");MODULE_PARM(lappl2, "s");MODULE_PARM_DESC(lappl2, "Application name for 3rd C7000 box.");MODULE_PARM(lappl3, "s");MODULE_PARM_DESC(lappl3, "Application name for 4th C7000 box.");MODULE_PARM(lhost0, "s");MODULE_PARM_DESC(lhost0, "Host name for 1st C7000 box.");MODULE_PARM(lhost1, "s");MODULE_PARM_DESC(lhost1, "Host name for 2nd C7000 box.");MODULE_PARM(lhost2, "s");MODULE_PARM_DESC(lhost2, "Host name for 3rd C7000 box.");MODULE_PARM(lhost3, "s");MODULE_PARM_DESC(lhost3, "Host name for 4th C7000 box.");MODULE_PARM(uhost0, "s");MODULE_PARM_DESC(uhost0, "Unit name for 1st C7000 box.");MODULE_PARM(uhost1, "s");MODULE_PARM_DESC(uhost1, "Unit name for 2nd C7000 box.");MODULE_PARM(uhost2, "s");MODULE_PARM_DESC(uhost2, "Unit name for 3rd C7000 box.");MODULE_PARM(uhost3, "s");MODULE_PARM_DESC(uhost3, "Unit name for 4th C7000 box.");MODULE_PARM(uappl0, "s");MODULE_PARM_DESC(uappl0, "Unit application name for 1st C7000 box.");MODULE_PARM(uappl1, "s");MODULE_PARM_DESC(uappl1, "Unit application name for 2nd C7000 box.");MODULE_PARM(uappl2, "s");MODULE_PARM_DESC(uappl2, "Unit application name for 3rd C7000 box.");MODULE_PARM(uappl3, "s");MODULE_PARM_DESC(uappl3, "Unit application name for 4th C7000 box.");MODULE_PARM(dbg, "1i");MODULE_PARM_DESC(dbg, "Message level for debugging.");MODULE_PARM(noauto, "1i");MODULE_PARM_DESC(noauto, "Control automatic detection of unit base addresses.");/*	Structure used to manage unit buffers.*/struct	c7000_buffer {	ccw1_t			ccws[7];	/* channel program */	struct	c7000_buffer	*next;		/* list pointer */	char			*data;		/* pointer to actual data */	int			len;		/* length of the data */};/*	C7000 Control Block. */struct	c7000_control_blk {	unsigned char	cmd;	unsigned char	ver;	unsigned char	link_id;	unsigned char	correlator;	unsigned char	ret_code;	unsigned char	resvd1[3];	unsigned char	unitname[NAMLEN];	unsigned char	hostname[NAMLEN];	unsigned short	rdsize;		/* read frame size   */	unsigned short	wrtsize;	/* write frame size  */	unsigned char	resvd2[4];};/*	Per unit structure contained within the c7000_controller structure.*/struct	c7000_unit {	ccw1_t				ccws[5];	/* control ccws */	int				devno;		/* device number */	int				irq;		/* subchannel number */	unsigned long			IO_active;	/* IO activity flag */	int				state;		/* fsm state */	int				retries;	/* retry counter */	unsigned long			flag_a;		/* bh activity flag */	devstat_t			devstat;	/* device status */	wait_queue_head_t		wait;		/* sleep q head */	struct c7000_controller		*cntlp;		/* controller pointer */	struct c7000_buffer		*free;		/* free buffer anchor */	struct c7000_buffer		*proc_head;	/* proc head */	struct c7000_buffer		*proc_tail;	/* proc tail */	struct c7000_buffer		*bh_head;	/* bh head */	struct c7000_buffer		*bh_tail;	/* bh tail */	struct tq_struct		tq;		/* bh scheduling */	char				senseid[SIDL];	/* sense id data */	struct c7000_control_blk	control_blk;	/* control block */	unsigned char			sigsmod;	/* sigsmod flag */	unsigned char			readhdr[4];	/* read header */	unsigned char			readff;		/* readff flag */};/*	Private structure pointed to by dev->priv.*/struct c7000_controller {	struct	net_device_stats	stats;		/* statistics */	struct net_device		*dev;		/* -> device struct */	unsigned int			base_addr;	/* base address */	char				lappl[NAMLEN];	/* local appl */	char				lhost[NAMLEN];	/* local host */	char				uappl[NAMLEN];	/* unit appl */	char				uhost[NAMLEN];	/* unit host */	unsigned char			version;	/* version = 2 */	unsigned char			linkid;		/* link id */	struct	c7000_unit		cunits[NUNITS];	/* embedded units */	unsigned long			tbusy;};/*	This is the structure returned by the C7000_READHDR_CCW.*/struct	c7000_rd_header {	unsigned short	len;	/* packet length */	unsigned char	cmd;	/* command code */	unsigned char	flag;	/* flag */};/*	Set the device structure transmission busy flag.*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美日韩在线| 欧美国产1区2区| 水野朝阳av一区二区三区| 色噜噜狠狠成人网p站| 一区二区三区在线视频观看58 | 亚洲欧美一区二区视频| 国产成人三级在线观看| 中文字幕不卡一区| 色8久久人人97超碰香蕉987| 一区二区欧美在线观看| 日韩欧美自拍偷拍| 国产精品一区二区三区乱码| 中文字幕日韩av资源站| 欧美亚洲高清一区二区三区不卡| 天堂成人国产精品一区| www日韩大片| 91免费看`日韩一区二区| 污片在线观看一区二区| 2023国产精华国产精品| 99久久国产综合精品色伊| 水野朝阳av一区二区三区| 久久久综合视频| 日本韩国精品在线| 精品一二三四区| 亚洲精品视频一区| 久久久精品tv| 欧美精品黑人性xxxx| 懂色av一区二区夜夜嗨| 视频一区在线播放| 欧美激情中文不卡| 欧美一区二区不卡视频| 91麻豆免费观看| 极品美女销魂一区二区三区 | 欧美一级生活片| 成人在线一区二区三区| 日韩在线一二三区| 亚洲欧美一区二区视频| 日韩一级在线观看| 日本韩国欧美一区| 岛国一区二区三区| 免费观看成人av| 亚洲综合一二三区| 日本一区二区视频在线| 日韩视频123| 欧美日韩亚洲丝袜制服| av电影在线观看完整版一区二区| 欧美a级理论片| 亚洲国产精品一区二区久久恐怖片| 国产日韩在线不卡| 日韩免费观看高清完整版| 欧美三级中文字幕在线观看| 成人免费黄色在线| 国产成人高清在线| 国产一区二区三区不卡在线观看 | 久久精品国产亚洲aⅴ| 亚洲美女视频一区| 日本一区二区三区电影| 欧美成人激情免费网| 欧美日韩久久久| 欧美丝袜自拍制服另类| 成人va在线观看| 成人av网站在线观看免费| 久久av老司机精品网站导航| 亚洲国产精品一区二区www| 国产精品福利一区| 国产三级欧美三级| 欧美精品一区二区不卡| 91精品国产综合久久久久久久久久| 一本到高清视频免费精品| 99这里都是精品| zzijzzij亚洲日本少妇熟睡| 国产成人精品免费| 国产美女在线精品| 国产精品一区专区| 国产一区二区三区日韩| 韩国在线一区二区| 国产美女精品一区二区三区| 久久66热re国产| 国产乱码字幕精品高清av | 国产精品视频麻豆| 国产拍揄自揄精品视频麻豆| 国产拍欧美日韩视频二区| 中文在线一区二区| 最新久久zyz资源站| 自拍偷在线精品自拍偷无码专区| 中文字幕精品一区二区三区精品 | 日韩免费性生活视频播放| 日韩美女主播在线视频一区二区三区| 欧美肥妇bbw| 精品国产99国产精品| 久久久影院官网| 国产精品天天看| 亚洲欧美色图小说| 日韩高清欧美激情| 国产一区中文字幕| 成人三级伦理片| 在线观看国产一区二区| 欧美区在线观看| 欧美sm美女调教| 国产免费久久精品| 亚洲蜜臀av乱码久久精品蜜桃| 亚洲国产综合色| 久久精品国产精品青草| 国产 日韩 欧美大片| 97国产精品videossex| 欧美日韩国产综合久久| 精品国产一区二区三区av性色 | 欧美色男人天堂| 91精品国模一区二区三区| 久久嫩草精品久久久精品一| 中文字幕一区免费在线观看| 亚洲一区在线电影| 寂寞少妇一区二区三区| 成人av片在线观看| 欧美精品久久天天躁| 精品国产不卡一区二区三区| 亚洲欧洲综合另类在线| 免费成人你懂的| 91免费精品国自产拍在线不卡| 欧美一区二区三区精品| 中文字幕电影一区| 日韩av网站在线观看| 丁香天五香天堂综合| 欧美区视频在线观看| 国产精品亲子乱子伦xxxx裸| 视频一区欧美日韩| 成人91在线观看| 日韩欧美成人激情| 一个色综合av| 国产91丝袜在线观看| 欧美一级夜夜爽| 亚洲一区二区三区激情| 成人国产精品免费观看动漫| 欧美一区二区观看视频| 亚洲欧美一区二区不卡| 国产福利一区二区三区视频| 欧美日韩高清一区二区三区| 国产精品久久久久精k8| 国产尤物一区二区在线| 91精品一区二区三区在线观看| 亚洲色图.com| 国产98色在线|日韩| 日韩一区和二区| 亚洲成国产人片在线观看| 99九九99九九九视频精品| 国产女同互慰高潮91漫画| 久久国产精品露脸对白| 欧美巨大另类极品videosbest | 日本一区二区综合亚洲| 激情深爱一区二区| 欧美绝品在线观看成人午夜影视| 亚洲免费av高清| 99精品欧美一区二区三区小说| 精品1区2区在线观看| 日本不卡在线视频| 欧美日韩在线电影| 亚洲妇熟xx妇色黄| 日本韩国一区二区三区| 亚洲视频免费在线| www.亚洲人| 国产精品久久久久四虎| 粉嫩蜜臀av国产精品网站| 国产视频一区在线观看| 国产一区二区伦理| 久久夜色精品一区| 国产精品自在欧美一区| 精品日韩欧美在线| 国产精品一级片| 国产欧美日韩在线观看| 国产精品资源网站| 国产三级欧美三级日产三级99| 国产一区二区在线视频| 国产亚洲视频系列| 成人免费毛片片v| 亚洲婷婷国产精品电影人久久| 91免费看视频| 亚洲午夜精品网| 欧美日韩二区三区| 免费欧美在线视频| 欧美精品一区视频| 成人一区二区三区在线观看| 最新国产精品久久精品| 欧洲国产伦久久久久久久| 天堂影院一区二区| 日韩欧美的一区| 国产成人精品一区二| 亚洲色图视频网站| 欧美日产国产精品| 精品一区二区三区日韩| 欧美激情一区在线观看| 99久久综合精品| 婷婷成人激情在线网| 久久久久久亚洲综合影院红桃| bt7086福利一区国产| 一区二区三区久久| 宅男噜噜噜66一区二区66| 国产一区二区三区在线观看免费视频 | 色先锋资源久久综合| 日韩国产欧美一区二区三区| 久久这里只有精品6|