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

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

?? sysnetif.c

?? pentium4 pc的vxworks bsp源代碼
?? 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一区二区三区免费野_久草精品视频
国产精品一二一区| 日韩久久免费av| 欧美一区日本一区韩国一区| 久久久天堂av| 日本三级韩国三级欧美三级| 色婷婷国产精品综合在线观看| 久久综合九色综合欧美亚洲| 日韩黄色免费电影| 色综合视频一区二区三区高清| 国产视频一区在线观看 | 日本一区二区视频在线观看| 亚洲成人www| 欧美做爰猛烈大尺度电影无法无天| 久久久精品免费免费| 午夜一区二区三区视频| 91丨九色丨国产丨porny| 久久精品亚洲乱码伦伦中文| 美女视频一区二区三区| 精品视频一区二区不卡| 中文在线资源观看网站视频免费不卡| 久久99精品国产麻豆不卡| 欧美日韩一区国产| 亚洲精品国产无天堂网2021 | 国产一区二区三区在线观看免费 | 国产高清不卡二三区| 91精品国产色综合久久久蜜香臀| 亚洲激情五月婷婷| 色偷偷久久一区二区三区| 亚洲视频在线一区观看| 不卡电影一区二区三区| 中文在线资源观看网站视频免费不卡| 久久成人综合网| 精品国产一区二区在线观看| 免费美女久久99| 日韩欧美电影在线| 天天色图综合网| 欧美日韩免费观看一区三区| 亚洲电影在线免费观看| 欧美少妇bbb| 日韩电影在线一区| 日韩一区二区麻豆国产| 激情小说亚洲一区| 2021久久国产精品不只是精品| 国产又粗又猛又爽又黄91精品| 国产天堂亚洲国产碰碰| 成人免费看的视频| 亚洲欧美一区二区三区孕妇| 色天使久久综合网天天| 午夜激情综合网| 日韩一区二区三区在线观看| 国产一区二区剧情av在线| 国产精品美女久久久久久 | 亚洲一区二区视频在线| 欧美午夜影院一区| 日韩经典一区二区| 精品国精品国产| 国产成人在线色| 亚洲免费在线观看| 欧美高清视频www夜色资源网| 激情亚洲综合在线| 日韩理论片在线| 欧美精品久久99久久在免费线 | 9i看片成人免费高清| 一区二区国产盗摄色噜噜| 日韩美一区二区三区| 成人午夜免费视频| 亚洲国产精品一区二区久久| 久久久精品蜜桃| 欧美日韩免费观看一区三区| 国产激情一区二区三区桃花岛亚洲| 亚洲乱码国产乱码精品精的特点| 欧美一区二区三区视频免费| 成人高清在线视频| 免费在线看成人av| 亚洲三级免费观看| 精品久久国产老人久久综合| 一道本成人在线| 国产精品亚洲午夜一区二区三区 | 亚洲国产精品久久人人爱蜜臀| 欧美一区二区不卡视频| www.66久久| 卡一卡二国产精品| 亚洲天堂精品在线观看| 精品成人在线观看| 欧美日韩五月天| 99精品国产热久久91蜜凸| 久久99国产精品麻豆| 亚洲国产精品综合小说图片区| 久久综合网色—综合色88| 色婷婷激情一区二区三区| 国产尤物一区二区| 蜜臂av日日欢夜夜爽一区| 一片黄亚洲嫩模| 中文字幕亚洲视频| 久久伊人蜜桃av一区二区| 欧美日本国产视频| 欧洲亚洲国产日韩| 色综合一区二区| 国产91对白在线观看九色| 久久精品国产精品亚洲精品| 亚洲gay无套男同| 亚洲精品老司机| 亚洲欧美区自拍先锋| 国产精品欧美一级免费| 久久久久久久综合日本| 日韩欧美一区二区三区在线| 这里只有精品视频在线观看| 欧美视频你懂的| 在线观看国产一区二区| 91久久精品一区二区三区| 99热在这里有精品免费| gogogo免费视频观看亚洲一| 成人动漫中文字幕| 91丨porny丨首页| 91麻豆产精品久久久久久| av在线免费不卡| 欧洲另类一二三四区| 欧美日韩一区二区三区高清| 欧美亚洲动漫另类| 欧美日本免费一区二区三区| 91.成人天堂一区| 欧美一区二区女人| 精品久久人人做人人爰| 久久久久久综合| 欧美激情一区二区三区不卡| 综合久久国产九一剧情麻豆| 一区二区高清视频在线观看| 亚洲一二三专区| 蜜臀av一区二区在线免费观看| 极品美女销魂一区二区三区| 国产999精品久久久久久绿帽| 懂色av一区二区三区蜜臀| 成人av电影观看| 色丁香久综合在线久综合在线观看| 色94色欧美sute亚洲13| 欧美性大战xxxxx久久久| 7777精品伊人久久久大香线蕉最新版 | 中文乱码免费一区二区| 国产精品福利一区二区三区| 亚洲曰韩产成在线| 久久国产精品99久久久久久老狼| 国产福利电影一区二区三区| 色婷婷综合久久久| 91精品欧美一区二区三区综合在| 日韩欧美成人激情| 中文字幕一区在线观看视频| 综合精品久久久| 五月婷婷综合网| 精品在线播放免费| 91丝袜高跟美女视频| 91精品国产综合久久久蜜臀图片 | 国产老妇另类xxxxx| 在线亚洲一区二区| 欧美一区二区久久久| 久久精品一二三| 夜夜嗨av一区二区三区中文字幕 | 五月婷婷综合网| 国产盗摄一区二区| 欧美日韩激情在线| 国产日韩v精品一区二区| 一区二区三区欧美久久| 精品一区二区久久| 色8久久人人97超碰香蕉987| 国产日产欧美精品一区二区三区| 亚洲妇女屁股眼交7| 成人妖精视频yjsp地址| 911精品产国品一二三产区| 国产精品久久久久一区二区三区共 | 日韩欧美国产一区在线观看| 亚洲视频一区在线| 国产一区二区三区黄视频| 欧美日韩一区二区三区视频| 国产精品久久久久久久午夜片| 日本欧美肥老太交大片| 色婷婷综合久久久中文一区二区| 国产日韩精品一区| 青青草国产精品亚洲专区无| 91国偷自产一区二区三区成为亚洲经典 | 欧美日韩国产一级片| 亚洲欧洲国产专区| 国产剧情一区二区| 日韩精品一区二区三区在线| 日韩中文字幕区一区有砖一区| 91热门视频在线观看| 国产女人aaa级久久久级| 久久电影国产免费久久电影| 91精品久久久久久蜜臀| 午夜精品一区二区三区三上悠亚 | 国产成人欧美日韩在线电影 | 欧美日韩高清影院| 樱花影视一区二区| 色综合网色综合| 亚洲色图欧美在线| a亚洲天堂av| 《视频一区视频二区| 成人免费精品视频| 中文字幕在线不卡一区二区三区| 成人伦理片在线| 中文字幕一区av| 欧美最猛性xxxxx直播|