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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? sysnetif.c

?? vxworks嵌入式開發(fā)vmware bsp包 其中已包括網(wǎng)卡的驅(qū)動 本人試過 非常好用
?? C
字號:
/* sysNetif.c - system network interface support library *//* Copyright 1989-2001 Wind River Systems, Inc.  *//*modification history--------------------01v,16oct01,pai  Moved FEI 82557 END driver configuration to sysFei82557End.c01u,02oct01,pai  Moved AMD 79c97x END driver configuration code to                 sysLn97xEnd.c01t,11sep01,hdn  replaced "irq + INT_NUM_IRQ0" with INT_NUM_GET (irq)01s,28jan00,jkf  enabling 557 interrupt after connecting ISR, SPR#30132.01s,03may00,mks  Give driver an interrupt level to use, when choosen PCI forced                 config. This modification will hold good for SFL booted board.01r,07sep99,stv  macros for including END driver components are 		 conditioned according to SPR# 26296.	01q,12mar99,jkf  renamed boardResource and pciResources to dev specific.01p,09mar99,sbs  moved sysEltIntEnable and sysEltIntDisable to                 sysElt3c509End.c                 corrected previous version number.01o,08feb99,jkf  removed PCI_CFG_* definitions, now set in configAll.h01n,01feb99,jkf  added support for AMD 7997x PCI card.01m,26nov98,ms_  add support for end enabled elt3c50901l,27aug98,dat  fixed conflicting symbols from if_fei.h and fei8255701k,16apr98,cn   added import of feiIntConnect, feiEndIntConnect and 		 feiEndIntDisconnect and their initialisation.01g,31mar98,cn   Added enhanced network driver support, changed BOARD_INFO 		 in FEI_BOARD_INFO if INCLUDE_FEI_END is defined.01f,17mar98,sbs  moved PRO100B PCI definitions to if_fei.h.                 documentation corrections.01e,03mar98,sbs  removed update of mmu table entries.                 using sysMmuMapAdd() for adding mmu entries.                 added extra members to feiResource structure.                 changed initialization of feiResources arrray. 01d,03dec96,hdn  changed UINT32 to INT32 for timeout, str[6], *pResults.		 added sys557PciInit(). added configType to the resource.01c,20nov96,dat  chg'd name to sysNetif.c, incorporated #defines		 and struct typedefs from header file. Combines old		 if_eex32.c and if_i82557.c files.01b,07nov96,hdn  re-written.01a,31aug96,dzb  written, based on v01a of src/drv/netif/if_iep.c.*//*DESCRIPTIONThs is the WRS-supplied configuration module for the VxWorks IntelEtherExpress Flash 32 i82596 Netif driver (if_eex32).  It has routines forinitializing device resources and provides BSP-specific driver routines.The number of supported devices that can be configured for a particularsystem is finite and is specified by the MAX_UNITS configuration constantin this file.  This value, and the internal data structures using it, canbe modified in this file for specific implementations.*/#if defined(INCLUDE_EEX32)/* includes */#include "drv/netif/if_eex32.h"/* defines */#undef		EEX32_DEBUG		/* Compiles debug output */#define 	MAX_UNITS	4	/* maximum units to support *//* LAN Board Types */#define		TYPE_UNKNOWN	0	/* initial value */#define		TYPE_EEX32	1	/* Intel EtherExpress Flash 32 *//* typedefs */typedef struct i596Info			/* extra information struct */    {    UINT	port;			/* I/O port base address */    UINT	type;			/* Type of LAN board this unit is */    int		ilevel;			/* Interrupt level of this unit */    } I596_INFO;/* globals */STATUS 	sysEnetAddrGet	(int unit, char addr[]);STATUS 	sys596Init	(int unit);STATUS 	sys596IntAck	(int unit);STATUS 	sys596IntEnable (int unit);void   	sys596IntDisable (int unit);void   	sys596Port	(int unit, int cmd, UINT32 addr);void   	sys596ChanAtn	(int unit);/* locals */LOCAL I596_INFO i596Info [MAX_UNITS];LOCAL unsigned char eex32IdString [] =	/* Fixed-length, no NUL terminator! */    {    EEX32_EISA_ID0,    EEX32_EISA_ID1,    EEX32_EISA_ID2,    EEX32_EISA_ID3    };LOCAL unsigned char eex32IntLevel [8] = /* first 4 are PLX, rest are FLEA */    {    5, 9, 10, 11, 3, 7, 12, 15    };/* forward function declarations */LOCAL STATUS sysInitNecessary (int unit);LOCAL STATUS sysFindEisaBoard (I596_INFO *pI596Info, UCHAR *idString);/********************************************************************************* sysEnetAddrGet - retrieve net unit's Ethernet address** The driver expects this routine to provide the six byte Ethernet address* that will be used by this unit.  This routine must copy the six byte* address to the space provided by pCopy.  This routine is expected to* return OK on success, or ERROR.** The driver calls this routine, once per unit, from the eiattach() routine.* In if_ei.c version 03c,15jan93, this routine is the first 82596 support* routine called.  In the PC environment, it is necessary for this routine* then to find the hardware corresponding to the given unit number, before* it can return the Ethernet address!  This is done by the function* sysInitNecessary() (q.v.).** Here we blithely assume that sysInitNecessary() finds a unit for us,* as if no one would have attched the unit if it didn't exist!** RETURNS: OK or ERROR.** SEE ALSO:*/STATUS sysEnetAddrGet    (    int unit,    char addr[]    )    {    I596_INFO *pI596Info = &i596Info[unit];    UINT charIndex;    /*      * Find a physical board to go with this unit and set up the     * I596_INFO structure to refer to that board.     */    if (sysInitNecessary (unit) != OK)	return (ERROR);    for (charIndex = 0; charIndex < 6; charIndex++)	addr[charIndex] = sysInByte (pI596Info->port + NET_IA0 + charIndex);    return (OK);    }/********************************************************************************* sys596Init - prepare a LAN board for Ethernet initialization** This routine performs target-specific initialization that must occur* before the Intel 82596 Ethernet chip is initialized.  Typically, this* routine is empty.** The driver calls this routine from the eiattach() routine, once per unit,* immediately before starting up the Intel 82596.  We here call* sysInitNecessary() again in case eiattach() hasn't called sysInetAddrGet()* yet.** RETURNS: OK or ERROR.** SEE ALSO: eiattach(), sysInitNecessary()*/STATUS sys596Init    (    int unit  /* unit number */    )    {    I596_INFO *pI596Info = &i596Info[unit];    UCHAR intIndex;    if (sysInitNecessary (unit) != OK)	return (ERROR);    if ( (sysInByte (pI596Info->port + IRQCTL) & IRQ_EXTEND) == 0)        {        intIndex = (sysInByte (pI596Info->port + PLX_CONF0) &                    (IRQ_SEL0 | IRQ_SEL1)) >> 1;        }    else        {        intIndex = ( (sysInByte (pI596Info->port + IRQCTL) &                      (IRQ_SEL0 | IRQ_SEL1)) >> 1) + 4;        }    pI596Info->ilevel = eex32IntLevel[intIndex];    sysIntEnablePIC (pI596Info->ilevel);    return (OK);    }/********************************************************************************* sys596IntAck - acknowledge an Ethernet chip interrupt ** This routine acknowledges any specified non-Intel 82596 Ethernet chip* interrupt.  Typically, this involves an operation to some interrupt* control hardware.** The interrupt signal from the 82596 behaves in an "edge-triggered" mode;* therefore, this routine clears a latch within the control* circuitry.** NOTE: The driver calls this routine from the interrupt service routine.** RETURNS: OK, or ERROR if the  */STATUS sys596IntAck    (    int unit  /* unit number */    )    {    I596_INFO *pI596Info = &i596Info[unit];    if (pI596Info->type == TYPE_UNKNOWN)	return (ERROR);    sysOutByte (pI596Info->port + IRQCTL,                sysInByte (pI596Info->port + IRQCTL) | IRQ_LATCH);    return (OK);    }/********************************************************************************* sys596IntEnable - enable an interrupt from an Intel 82596 Ethernet chip** This routine manipulates i386/i486 board hardware to permit an interrupt.** The Ethernet chip driver calls this routine throughout normal operation to* terminate critical sections of code.** RETURNS: OK, or ERROR if** SEE ALSO: sys596IntDisable*/STATUS sys596IntEnable    (    int unit  /* unit number */    )    {    I596_INFO *pI596Info = &i596Info[unit];    if (pI596Info->type == TYPE_UNKNOWN)	return (ERROR);    sysOutByte (pI596Info->port + IRQCTL,		sysInByte (pI596Info->port + IRQCTL) & ~IRQ_FORCE_LOW);    return (OK);    }/********************************************************************************* sys596IntDisable - disable an interrupt from an Intel 82596 Ethernet chip** This routine manipulates i386/i486 board hardware to prevent interrupts.** The Ethernet chip driver calls this routine throughout normal operation to* protect critical sections of code from interrupt service routine* intervention.** RETURNS: N/A** SEE ALSO: sys596IntEnable()*/void   sys596IntDisable    (    int unit  /* unit number */    )    {    I596_INFO *pI596Info = &i596Info[unit];    if (pI596Info->type == TYPE_UNKNOWN)	return;    sysOutByte (pI596Info->port + IRQCTL,		sysInByte (pI596Info->port + IRQCTL) | IRQ_FORCE_LOW);    }/********************************************************************************* sys596Port - issue PORT command to 82596** This routine provides access to the special port function of the Intel* 82596 Ethernet chip.  The driver expects this routine to deliver the* command and address arguments to the port of the specified unit.** The Ethernet chip driver calls this routine primarily during* initialization, but may also call it during error recovery procedures.* Because it is called during initialization, this routine can be called* before the board for this unit has been found, depending on how eiattach()* might be modified in the future.** RETURNS: N/A*/void   sys596Port    (    int unit,    int cmd,    UINT32 addr    )    {    I596_INFO *pI596Info = &i596Info[unit];    if (sysInitNecessary (unit) != OK)	/* Just in case not called yet! */	return;    /* PORT command wants to see 16 bits at a time, low-order first */    sysOutWord (pI596Info->port + PORT, (cmd + addr) & 0xffff);    sysOutWord (pI596Info->port + PORT + 2, ((cmd + addr) >> 16) & 0xffff);    }/********************************************************************************* sys596ChanAtn - assert channel attention signal to an Intel 82596** This routine provides the channel attention signal to the Intel 82596* Ethernet chip for a specified unit.** The driver calls this routine frequently throughout all phases of* operation.** RETURNS: N/A*/void   sys596ChanAtn    (    int unit  /* unit number */    )    {    I596_INFO *pI596Info = &i596Info[unit];    if (pI596Info->type == TYPE_UNKNOWN)	return;    sysOutByte (pI596Info->port + CA, 0);    }/********************************************************************************* sysInitNecessary - if unit is undefined, locate and set up the next board**/LOCAL STATUS sysInitNecessary    (    int unit  /* unit number */    )    {    I596_INFO *pI596Info = &i596Info[unit];    if (pI596Info->type == TYPE_UNKNOWN)	{	if (sysFindEisaBoard (pI596Info, eex32IdString) == ERROR)	    return (ERROR);	pI596Info->type = TYPE_EEX32;	}    /* Set up next unit structure in case there's another board */    if (unit < (MAX_UNITS - 1))        i596Info[unit + 1].port = i596Info[unit].port;    return (OK);    }/********************************************************************************* sysFindEisaBoard - scan selected EISA slots for a board with given ID bytes**/LOCAL STATUS sysFindEisaBoard    (    I596_INFO *pI596Info,		/* Start at I/O address in here */    UCHAR *idString    )    {    UINT byteNumber;    BOOL failed;    do        {	failed = FALSE;	for (byteNumber = 0; (byteNumber < 4) && !failed; byteNumber++)	    {	    failed = (sysInByte (pI596Info->port + EISA_ID0 + byteNumber)		     != idString[byteNumber]);	    }	if (!failed)	    return (OK);	pI596Info->port += 0x1000;        }    while (pI596Info->port != 0xf000);    return (ERROR);    }#endif /* INCLUDE_EEX32 */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲人成网站影音先锋播放| 99久久久免费精品国产一区二区 | 在线观看91av| 国产亚洲美州欧州综合国| 亚洲人xxxx| 国产成人精品aa毛片| 欧美精品日日鲁夜夜添| 亚洲日本在线a| 国产高清在线精品| 欧美日韩一区二区三区四区| 欧美激情综合五月色丁香小说| 亚洲chinese男男1069| 成人免费视频国产在线观看| 久久伊人蜜桃av一区二区| 五月激情综合网| 91美女视频网站| 中文字幕二三区不卡| 另类小说视频一区二区| 在线免费av一区| 亚洲视频中文字幕| 成人网在线播放| 久久亚洲影视婷婷| 久久99久久精品| 日韩欧美一区二区免费| 肉色丝袜一区二区| 欧美日韩一区中文字幕| 一二三四区精品视频| 99久久精品免费精品国产| 久久久不卡影院| 国产电影一区二区三区| 久久久91精品国产一区二区三区| 久久se精品一区二区| 日韩免费性生活视频播放| 麻豆一区二区在线| 日韩欧美国产麻豆| 麻豆成人91精品二区三区| 91精品在线观看入口| 奇米亚洲午夜久久精品| 日韩欧美一级在线播放| 美女高潮久久久| 精品国一区二区三区| 国产资源在线一区| 国产人成一区二区三区影院| 粉嫩久久99精品久久久久久夜| 中文字幕成人网| 成人丝袜高跟foot| 亚洲精品中文字幕乱码三区| 91黄色免费版| 三级久久三级久久| 精品少妇一区二区三区在线播放| 国产一区999| 国产精品美日韩| 欧美在线制服丝袜| 蜜臀久久久99精品久久久久久| 久久亚洲一区二区三区四区| 国产91丝袜在线播放| 亚洲男人的天堂av| 日韩一区二区三区四区| 国产凹凸在线观看一区二区| 亚洲精品国产精品乱码不99| 欧美日韩中文字幕精品| 国产综合久久久久久鬼色| 中文字幕制服丝袜一区二区三区| 欧美亚洲国产一区在线观看网站 | 亚洲欧洲精品一区二区三区| 色成年激情久久综合| 免费高清成人在线| 欧美国产国产综合| 69av一区二区三区| 成人国产精品免费观看动漫| 亚洲成人自拍偷拍| 国产日韩精品一区二区三区在线| 一本一道综合狠狠老| 久久精品免费看| 亚洲免费在线播放| 精品久久人人做人人爰| 色综合天天综合色综合av| 久久aⅴ国产欧美74aaa| 樱花草国产18久久久久| 欧美精品一区二区在线播放| 91国偷自产一区二区开放时间 | 国产精品少妇自拍| 日韩欧美一二三| 色天天综合色天天久久| 麻豆精品视频在线观看免费| 亚洲激情第一区| 久久色.com| 7777女厕盗摄久久久| 91日韩精品一区| 国产精品99精品久久免费| 青青草91视频| 亚洲一区二区三区四区五区中文| 26uuu欧美| 欧美一区二区视频观看视频| 欧美mv日韩mv亚洲| 欧美丰满嫩嫩电影| 在线免费不卡电影| 91欧美激情一区二区三区成人| 国产伦精一区二区三区| 美女精品自拍一二三四| 亚洲mv在线观看| 亚洲综合无码一区二区| 国产精品毛片久久久久久| 久久综合色一综合色88| 欧美tickling网站挠脚心| 9191久久久久久久久久久| 精品视频一区三区九区| 欧美亚一区二区| 欧美视频中文字幕| 色www精品视频在线观看| 99视频在线精品| a4yy欧美一区二区三区| 国产999精品久久久久久| 国产激情精品久久久第一区二区| 美女mm1313爽爽久久久蜜臀| 另类小说色综合网站| 免费观看在线色综合| 青青草97国产精品免费观看| 欧美aaaaaa午夜精品| 毛片av一区二区| 国产一区二区在线观看免费| 国产成人在线观看免费网站| 国产成人一区在线| av不卡在线观看| 99国产欧美另类久久久精品| 91在线观看美女| 91极品视觉盛宴| 91精品福利在线一区二区三区 | 一本久久综合亚洲鲁鲁五月天| 99久久国产综合精品麻豆| 99re这里只有精品6| 91蜜桃网址入口| 欧美日韩免费一区二区三区| 欧美一区二区三区免费| 精品国产成人在线影院| 亚洲国产精品99久久久久久久久 | 午夜天堂影视香蕉久久| 石原莉奈一区二区三区在线观看| 裸体一区二区三区| 国产成人午夜精品5599| 色老汉av一区二区三区| 日韩一区二区三免费高清| 国产喷白浆一区二区三区| ●精品国产综合乱码久久久久| 亚洲精品成人在线| 蜜桃一区二区三区四区| 国产精品一区在线| 欧美午夜精品一区二区蜜桃| 欧美一区二区三区电影| 中文字幕巨乱亚洲| 婷婷丁香激情综合| 国产激情偷乱视频一区二区三区| 色乱码一区二区三区88| 日韩欧美一区中文| 综合激情网...| 麻豆精品国产91久久久久久| 成人国产精品免费观看视频| 欧美丰满少妇xxxxx高潮对白| 国产日韩v精品一区二区| 亚洲国产日韩av| 国产成人精品亚洲日本在线桃色| 欧美中文一区二区三区| 亚洲精品一区二区三区蜜桃下载| 国产精品一区二区久久不卡| 日本乱人伦aⅴ精品| 久久久亚洲综合| 香蕉成人伊视频在线观看| 国产成人av电影免费在线观看| 在线观看国产日韩| 欧美激情艳妇裸体舞| 蜜臀av亚洲一区中文字幕| 99精品欧美一区二区三区小说| 日韩三级中文字幕| 亚洲国产另类av| 99精品在线观看视频| 久久精品在这里| 久久精品99国产精品日本| 欧美中文字幕不卡| 亚洲乱码中文字幕| 国产一区二区不卡在线| 欧美一区二区女人| 婷婷国产v国产偷v亚洲高清| 91欧美激情一区二区三区成人| 久久精品夜色噜噜亚洲a∨| 秋霞午夜鲁丝一区二区老狼| 在线精品视频免费播放| 中文字幕在线不卡一区| 成人免费毛片app| 国产亚洲欧美激情| 国产麻豆欧美日韩一区| 精品国产免费人成在线观看| 青青草97国产精品免费观看无弹窗版 | 一区二区三区中文字幕| 国产在线精品一区二区| 欧美变态口味重另类| 久久国产精品一区二区| 日韩亚洲欧美高清| 韩国视频一区二区| 精品国产网站在线观看| 国内精品伊人久久久久av一坑|