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

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

?? sysnetif.c

?? Kontron的ETX-P3T的BSP的源代碼
?? C
字號(hào):
/* 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 */

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线亚洲高清视频| 国产丝袜欧美中文另类| 久久99九九99精品| 亚洲婷婷在线视频| 欧美男女性生活在线直播观看 | 国产东北露脸精品视频| 国产精品伦理在线| 欧美午夜影院一区| 欧洲亚洲国产日韩| 欧美一区二区在线观看| 欧美一区午夜视频在线观看| 欧美成人精品1314www| 久久久久九九视频| 国产精品色哟哟| 亚洲卡通欧美制服中文| 亚洲成a人片综合在线| 免费观看日韩av| 国产成人在线观看免费网站| 福利一区二区在线观看| 一本高清dvd不卡在线观看| 欧美视频你懂的| 精品国一区二区三区| 国产精品区一区二区三| 亚洲一区视频在线观看视频| 玖玖九九国产精品| 不卡一区二区在线| 7777精品伊人久久久大香线蕉完整版| 在线播放中文字幕一区| 久久久久久久久99精品| 亚洲一区二区欧美日韩| 久久国产成人午夜av影院| 99久久er热在这里只有精品66| 欧美色爱综合网| 欧美一区二区三区人| 国产精品毛片久久久久久久| 亚洲精品国产精品乱码不99| 美腿丝袜亚洲一区| www.欧美日韩国产在线| 日韩欧美国产三级电影视频| 亚洲国产成人在线| 久久se精品一区二区| 欧美在线999| 国产欧美一区二区在线| 日韩国产欧美在线视频| 99久久亚洲一区二区三区青草| 欧美日韩精品免费观看视频| 日韩一区欧美一区| 国产一二三精品| 色综合久久88色综合天天6| 日韩欧美久久一区| 亚洲成人精品一区二区| av在线播放不卡| 欧美xfplay| 亚洲国产精品嫩草影院| 99国产精品国产精品久久| 久久香蕉国产线看观看99| 午夜久久久影院| 91成人网在线| 亚洲天堂成人网| 成人黄色在线看| 国产日韩v精品一区二区| 日韩电影一区二区三区| 色综合久久天天| 亚洲视频狠狠干| 成人av综合在线| 中文成人av在线| 国产69精品一区二区亚洲孕妇| www国产亚洲精品久久麻豆| 日韩电影一区二区三区四区| 在线影视一区二区三区| 一区二区三区四区高清精品免费观看 | 日韩精品久久理论片| 99视频有精品| 国产精品美女久久久久久| 午夜精品成人在线| 欧美男女性生活在线直播观看| 亚洲高清免费视频| 欧美色综合天天久久综合精品| 亚洲人123区| 成年人国产精品| 国产精品国产三级国产三级人妇 | 日韩综合小视频| 色婷婷av久久久久久久| 一区二区三区鲁丝不卡| 在线精品视频小说1| 国产精品美女久久久久高潮| 成人av网站在线| 亚洲精品日韩一| 精品视频一区三区九区| 视频在线观看国产精品| 日韩欧美国产一二三区| 国产精品自拍网站| 亚洲欧美另类久久久精品| 欧美丝袜第三区| 久久99国产乱子伦精品免费| 欧美韩国日本综合| 在线亚洲欧美专区二区| 日韩成人免费在线| 国产精品天美传媒沈樵| 欧美色精品在线视频| 久草这里只有精品视频| 中文字幕一区免费在线观看| 欧美日韩国产免费| 黑人巨大精品欧美黑白配亚洲| 国产女人水真多18毛片18精品视频| 成人黄色在线网站| 亚洲激情图片小说视频| 51精品视频一区二区三区| 国产一区二区不卡老阿姨| 久久久久久电影| 欧美日韩一区二区三区视频| 国产一区二区久久| 午夜av一区二区三区| 欧美高清一级片在线观看| 欧美精品电影在线播放| 国产精品一区二区在线看| 综合色天天鬼久久鬼色| 欧美丰满嫩嫩电影| 丰满白嫩尤物一区二区| 视频一区中文字幕| 精品国产一区二区精华| 欧美午夜精品电影| 97精品久久久午夜一区二区三区| 久久99久久99小草精品免视看| 亚洲欧美日韩久久| 国产欧美一区二区三区在线老狼| 欧美一区二区三区四区高清| 欧美性大战久久| 97精品国产97久久久久久久久久久久| 韩国精品久久久| 日韩激情一区二区| 亚洲午夜羞羞片| 亚洲日韩欧美一区二区在线| 欧美激情一区二区三区四区| 久久久影视传媒| 日韩视频一区在线观看| 欧美巨大另类极品videosbest| 99热这里都是精品| 高清不卡在线观看| 国产福利精品一区二区| 国产在线精品免费| 久久精品国产第一区二区三区| 日韩国产精品久久久久久亚洲| 亚洲va韩国va欧美va| 亚洲国产一区二区视频| 一区二区三区四区激情| 亚洲综合清纯丝袜自拍| 亚洲激情六月丁香| 亚洲乱码日产精品bd| 亚洲女同女同女同女同女同69| 国产精品激情偷乱一区二区∴| 国产精品欧美一区二区三区| 中文字幕精品综合| 国产精品二区一区二区aⅴ污介绍| 中文字幕欧美国产| 国产精品国产三级国产有无不卡| 国产精品理伦片| 亚洲欧美经典视频| 亚洲国产精品麻豆| 蜜臀av在线播放一区二区三区| 蜜桃av噜噜一区二区三区小说| 另类综合日韩欧美亚洲| 国产精品综合网| 91网站在线观看视频| 欧美视频一区在线| 欧美一区二区三区免费在线看 | 看片的网站亚洲| 国产精品一区免费视频| av成人老司机| 在线观看视频一区二区| 欧美精品xxxxbbbb| 久久综合狠狠综合久久综合88| 国产日本欧美一区二区| 亚洲色图清纯唯美| 亚洲成a人片在线观看中文| 蜜桃视频在线一区| heyzo一本久久综合| 色88888久久久久久影院野外| 国产91丝袜在线播放| 在线一区二区三区| 久久久精品黄色| 一个色妞综合视频在线观看| 久久国产综合精品| 色屁屁一区二区| 欧美v日韩v国产v| 亚洲欧美日本韩国| 精品一二三四在线| 91看片淫黄大片一级| 欧美va亚洲va国产综合| 国产精品美女久久久久久久| 免费成人在线网站| 一本色道久久加勒比精品| 91精品国产色综合久久ai换脸 | 国产一区不卡视频| 一本到三区不卡视频| 久久久亚洲精品一区二区三区| 亚洲精品菠萝久久久久久久| 亚洲精品免费视频| 日本在线不卡视频一二三区| 色综合久久88色综合天天免费|