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

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

?? sysrtl81x9end.c

?? vxworks 8139 網卡驅動程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* sysRtl81x9End.c - system configuration module for RTL81x9 END driver */
 
/* Copyright 1984-1999 Wind River Systems, Inc. */
#include "copyright_wrs.h"
 
/*
modification history
--------------------
02b,28jan00, Added new define RTL81X9_EARX_THRESH
02a,27jan00, Modified the initialisation and resource table.
01a,12nov99, dgy created.
*/
 
/*
DESCRIPTION
This is the WRS-supplied configuration module for the VxWorks
Realtek 81x9 (rtl) END driver.
 
It initializes the resources for all the 81x9 devices found.

It performs the dynamic parameterization of the rtl81x9End driver.
This technique of 'just-in-time' parameterization allows driver
parameter values to be declared as any other defined constants rather
than as static strings.
*/


#ifdef INCLUDE_RTL_81X9_END


#include "vxWorks.h"
#include "config.h"
 
#include "vmLib.h"
#include "stdio.h"
#include "sysLib.h"
#include "logLib.h"
#include "stdlib.h"
#include "string.h"
#include "end.h"
#include "intLib.h"
#include "drv/pci/pciIntLib.h"
 
#include "drv/end/unsupported/rtl81x9.h"


/* imports */
 
IMPORT STATUS           sysMmuMapAdd (void * address, UINT len,
                                      UINT initialStateMask,
                                      UINT initialState);

IMPORT END_TBL_ENTRY    endDevTbl[];    /* end device table */

IMPORT END_OBJ *	rtl81x9EndLoad (char *);

/* defines */

#define RTL_81X9_LOAD_FUNC        rtl81x9EndLoad

/*
 * default values if PCI_CFG_TYPE defined to be PCI_CFG_FORCE
 * note: memory addresses must be aligned on MMU page boundaries
 */

#define RTL81X9_IO_ADR0   	0xf400
#define RTL81X9_MEM_ADR0  	0xfd000000
#define RTL81X9_INT_LVL0  	0x0b
#define RTL81X9_INT_VEC0  	0

#define RTL81X9_IO_ADR1   	0xf420
#define RTL81X9_MEM_ADR1  	0xfd200000
#define RTL81X9_INT_LVL1  	0x05
#define RTL81X9_INT_VEC1  	0

#define RTL81X9_IO_ADR2   	0xf440
#define RTL81X9_MEM_ADR2  	0xfd300000
#define RTL81X9_INT_LVL2  	0x0c
#define RTL81X9_INT_VEC2  	0

#define RTL81X9_IO_ADR3   	0xf460
#define RTL81X9_MEM_ADR3  	0xfd400000
#define RTL81X9_INT_LVL3  	0x9
#define RTL81X9_INT_VEC3  	0

#define RTL81X9_MAX_DEV 	4

#define RTL81X9_EARX_THRESH	10
#define RTL81X9_END_FLAGS	(RTL81X9_EARX_THRESH << 16)

#define RTL81X9_BUFF_MTPLR	NONE

#define EXT_INTERRUPT_BASE      INT_NUM_IRQ0    /* irq0     */
 
#define PCI_DEV_MMU_MSK         (~(VM_PAGE_SIZE - 1))   /* Mask MMU page */
 
#define PCI_DEV_ADRS_SIZE       VM_PAGE_SIZE    /* one page */
 
/* Offsets of PCI resources in host space */
 
#ifndef CPU_PCI_IO_ADRS
#define CPU_PCI_IO_ADRS         0               /* base of PCI I/O addr */
#endif /* CPU_PCI_IO_ADRS */
 
#ifndef CPU_PCI_MEM_ADRS
#define CPU_PCI_MEM_ADRS        0               /* base of PCI mem address */
#endif /* CPU_PCI_MEM_ADRS */
 
#ifndef PCI2DRAM_BASE_ADRS
#define PCI2DRAM_BASE_ADRS      0               /* DRAM base addrs from PCI */
#endif /* PCI2DRAM_BASE_ADRS */
 
/* typedefs */
 
typedef struct rtl81x9PciResource              /* RTL81X9_PCI_RESOURCES */
    {
    UINT32      iobaseCsr;              /* Base Address Register 0 */
    UINT32      membaseCsr;             /* Base Address Register 1 */
    char        irq;                    /* Interrupt Request Level */
    UINT32      irqvec;                 /* Interrupt Request vector */
    UINT32      configType;             /* type of configuration */
    UINT32      boardType;              /* type of LAN board for this unit */
    UINT32      pciBus;                 /* PCI Bus number */
    UINT32      pciDevice;              /* PCI Device number */
    UINT32      pciFunc;                /* PCI Function number */
    } RTL81X9_PCI_RESOURCES;
 
typedef struct rtl81x9BoardResource            /* RTL81X9_BOARD_RESOURCES */
    {
    UINT32      type;                   /* type of the board */
    UINT32      vendorId;               /* Vendor ID */
    UINT32      deviceId;               /* Device ID */
    UINT32      RtlUsrFlags;             /* RTL driver user flags */
    FUNCPTR     mediaSelectFunc;        /* media select routine */
    } RTL81X9_BOARD_RESOURCES;
 
/* locals */
 
/*
 * This array defines the board-specific PCI resources, the base address
 * register configuration mode and the Ethernet adapter type. It's indexed
 * using the device number returned from pciFindDevice().
 */

LOCAL RTL81X9_PCI_RESOURCES rtl81x9PciResrcs [] =
    {
    {RTL81X9_IO_ADR0, RTL81X9_MEM_ADR0, RTL81X9_INT_LVL0, RTL81X9_INT_VEC0,
     PCI_CFG_TYPE, 0, 0, 0, 0},
    {RTL81X9_IO_ADR1, RTL81X9_MEM_ADR1, RTL81X9_INT_LVL1, RTL81X9_INT_VEC1,
     PCI_CFG_TYPE, 0, 0, 0, 0},
    {RTL81X9_IO_ADR2, RTL81X9_MEM_ADR2, RTL81X9_INT_LVL2, RTL81X9_INT_VEC2,
     PCI_CFG_TYPE, 0, 0, 0, 0},
    {RTL81X9_IO_ADR3, RTL81X9_MEM_ADR3, RTL81X9_INT_LVL3, RTL81X9_INT_VEC3,
     PCI_CFG_TYPE, 0, 0, 0, 0}
    };

/* 
 * this table will be filled up with the actual resources used by this
 * device.
 */

RTL81X9_PCI_RESOURCES * 	pRsrc [RTL81X9_MAX_DEV];	

/*
 * This array defines board-specific vendor and device ids, flags to pass to
 * the drive load routine and the function used to select the media.
 */

LOCAL RTL81X9_BOARD_RESOURCES rtl81x9Brds [] =
    {
	{0, RTL_VENDORID, 		RTL_8139_DEV_ID, 		0, 	NULL},
	{0, RTL_VENDORID, 		RTL_8129_DEV_ID, 		0, 	NULL},		
	{0, RTL_VENDOR_ID_MIS, 	RTL_MIS_DEV_ID, 		0, 	NULL},
	{0, ADDTRON_VENDORID, 	ADDTRON_DEVICEID_8139, 	0, 	NULL},
	{0, DELTA_VENDORID, 	DELTA_DEVICEID_8139, 	0, 	NULL},
	{0, ACCTON_VENDORID, 	ACCTON_DEVICEID_5030, 	0, 	NULL},
    };

/* forward declarations */
 
STATUS	sysRtl81x9PciInit (void);

/*******************************************************************************
*
* sysRtl81x9PciInit - prepare LAN adapter for RTL_81X9 initialization
*
* This routine finds out the PCI device, maps its memory and IO address.
* It must be done prior to initializing the driver.  Also
* must be done prior to MMU initialization, usrMmuInit().
*
* RETURNS: OK/ERROR
*/

STATUS sysRtl81x9PciInit (void)
    {
    UINT32 		membaseCsr;
    UINT32 		iobaseCsr;
    char 		irq;
    int 		pciBus;
    int 		pciDevice;
    int 		pciFunc;
    int 		ix;
    int 		unit;
    int 		found = 0;
    int 		netEndUnits = 0;

    /* for all the support network devices find if some of them exist */
    


    for (unit = 0; unit < RTL81X9_MAX_DEV; unit++)
		{
		for (ix=0; ix < NELEMENTS (rtl81x9Brds); ix++)
			{
			if (pciFindDevice (	rtl81x9Brds [ix].vendorId,
                           		rtl81x9Brds [ix].deviceId,
                           		unit, &pciBus, &pciDevice, &pciFunc) == OK)
	    		{

        		/* board detected */


	    		found = TRUE;

        		/* load up the PCI device table */
             
        		pRsrc [unit] = rtl81x9PciResrcs + netEndUnits; 

        		pRsrc [unit]->pciBus    = pciBus;
        		pRsrc [unit]->pciDevice = pciDevice;
        		pRsrc [unit]->pciFunc   = pciFunc;

        		netEndUnits++;   	/* number of units found */
				break;
        		}
			}
		}

    if ((found != TRUE) || (pciDevice > PCI_MAX_DEV))
	return (NULL);

    /* Now initialize all the units we found */

    for (unit = 0; ((unit < netEndUnits) &&
                    (unit < NELEMENTS (pRsrc)));
         unit++)
		{
        /* Fill in the resource entry */

        pRsrc [unit] = rtl81x9PciResrcs + unit;

        if (pRsrc [unit]->configType == PCI_CFG_FORCE) 
            {
            /* write the iobase, membase, and irq */

            pciConfigOutLong (pRsrc[unit]->pciBus, 
			      pRsrc[unit]->pciDevice, 

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩精品二区第二页| 国产激情精品久久久第一区二区| 亚洲国产精品久久人人爱| 久久精品国产亚洲5555| 91污在线观看| 久久综合色婷婷| 午夜国产精品一区| 99免费精品视频| 久久人人97超碰com| 亚洲成在人线免费| 91小视频免费看| 国产偷国产偷亚洲高清人白洁 | 韩国成人在线视频| 欧美日韩国产一区二区三区地区| 日本一区二区高清| 国产一区激情在线| 日韩免费在线观看| 日韩—二三区免费观看av| 日本韩国欧美在线| 亚洲欧洲av色图| 风间由美一区二区av101| 日韩视频免费观看高清完整版在线观看| 亚洲婷婷综合久久一本伊一区| 国产成人精品三级麻豆| 欧美成人精品二区三区99精品| 天堂av在线一区| 欧美日韩电影在线播放| 午夜精品一区二区三区三上悠亚| 91老师片黄在线观看| 中文字幕亚洲不卡| 91年精品国产| 综合av第一页| 欧美伊人精品成人久久综合97| 亚洲人成精品久久久久| 色伊人久久综合中文字幕| 一区二区三区中文字幕电影| 91丝袜美女网| 亚洲尤物在线视频观看| 欧美色精品天天在线观看视频| 亚洲第一狼人社区| 在线成人午夜影院| 另类小说图片综合网| 精品国产凹凸成av人网站| 国产高清精品网站| 国产日产欧美一区二区视频| 成人v精品蜜桃久久一区| 中文字幕永久在线不卡| 色美美综合视频| 视频一区二区三区中文字幕| 精品理论电影在线观看| 国产精品123| 曰韩精品一区二区| 欧美精品粉嫩高潮一区二区| 久久99久久久久久久久久久| 国产日产欧美一区二区三区| 成人av网站在线| 亚洲与欧洲av电影| 精品国产一二三区| 91网站在线观看视频| 天天影视涩香欲综合网| 久久久91精品国产一区二区精品| 99久久精品免费看国产免费软件| 亚洲激情成人在线| 精品国产一二三| 99精品在线免费| 免费精品视频在线| 国产精品护士白丝一区av| 欧美精品99久久久**| 国产成人高清在线| 亚洲成av人影院在线观看网| 久久久久久久久久久电影| 91老师国产黑色丝袜在线| 蜜臀av性久久久久蜜臀aⅴ流畅 | 亚洲女性喷水在线观看一区| 欧美日韩成人一区二区| 国产mv日韩mv欧美| 免费精品视频在线| 一区二区高清视频在线观看| 精品国产乱码久久| 一本到高清视频免费精品| 久久疯狂做爰流白浆xx| 亚洲精品老司机| xvideos.蜜桃一区二区| 欧美亚洲一区二区三区四区| 国产精品一区二区不卡| 午夜视频一区二区| 亚洲天堂网中文字| 国产亚洲成av人在线观看导航| 欧美日韩一区二区三区不卡| 波多野洁衣一区| 美脚の诱脚舐め脚责91 | 亚洲国产精品二十页| 制服丝袜亚洲播放| 欧美综合一区二区| av资源网一区| 成人影视亚洲图片在线| 日韩黄色小视频| 亚洲国产cao| 亚洲激情图片qvod| 亚洲人一二三区| 国产精品午夜电影| 国产欧美日本一区二区三区| 欧美不卡一区二区| 日韩欧美三级在线| 欧美一区二区黄色| 4438x成人网最大色成网站| 欧美自拍偷拍午夜视频| 色老汉一区二区三区| av网站免费线看精品| 成人av资源站| 99综合影院在线| www.一区二区| 91在线丨porny丨国产| 不卡的电影网站| 一本色道综合亚洲| 91美女片黄在线| 91福利视频久久久久| 色综合久久88色综合天天6 | 亚洲美女视频在线观看| 亚洲视频一区二区免费在线观看| 国产精品麻豆视频| 亚洲色图视频网站| 一区二区三区四区av| 亚洲一区二区四区蜜桃| 亚洲电影一区二区| 日av在线不卡| 久久福利资源站| 成人小视频在线| 一本大道av一区二区在线播放| 日本乱人伦一区| 4438x成人网最大色成网站| 日韩免费高清电影| 国产女人水真多18毛片18精品视频| 国产欧美精品在线观看| 中文字幕一区二区三区不卡在线 | 亚洲成av人片一区二区三区| 婷婷国产在线综合| 狠狠色丁香久久婷婷综合_中 | 日本一区二区免费在线| 18成人在线观看| 天天综合网天天综合色| 国产一区视频在线看| av网站免费线看精品| 欧美日产国产精品| 2021中文字幕一区亚洲| 亚洲欧美日韩国产另类专区| 五月婷婷色综合| 韩国一区二区三区| 色诱视频网站一区| 欧美一区二区网站| 国产精品欧美一区二区三区| 亚洲无人区一区| 国产成人精品在线看| 在线一区二区视频| 久久影视一区二区| 亚洲激情第一区| 国产在线精品免费| 欧洲另类一二三四区| 久久亚洲春色中文字幕久久久| 亚洲精选一二三| 国产在线精品一区二区夜色 | 一区二区三区在线视频免费 | 五月激情丁香一区二区三区| 国产精品乡下勾搭老头1| 色婷婷综合五月| 2020日本不卡一区二区视频| 亚洲国产婷婷综合在线精品| 国产91在线观看| 91麻豆精品国产91久久久使用方法 | 免费的成人av| 色婷婷精品大视频在线蜜桃视频| 精品国产三级a在线观看| 亚洲一级二级三级| 成+人+亚洲+综合天堂| 精品国产第一区二区三区观看体验| 国模无码大尺度一区二区三区| 91精品国产aⅴ一区二区| 亚洲人成精品久久久久久| www.成人网.com| 国产日韩亚洲欧美综合| 欧美videos中文字幕| 一区二区三区四区在线免费观看 | 日韩区在线观看| 亚洲一区免费视频| 国产suv精品一区二区6| 日韩三级高清在线| 午夜精品久久久久久久| 91免费看片在线观看| 欧美国产国产综合| 粉嫩aⅴ一区二区三区四区| 精品国产免费视频| 另类人妖一区二区av| 欧美一区二区三区免费视频 | 亚洲乱码国产乱码精品精可以看 | 美女精品自拍一二三四| 国产精品一区二区黑丝| 欧美精品一区二区蜜臀亚洲| 成人精品国产福利| 中文字幕的久久| 972aa.com艺术欧美|