亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
极品尤物av久久免费看| 视频精品一区二区| 精品国产在天天线2019| 91麻豆精品国产自产在线观看一区 | 在线观看视频91| 91在线视频观看| 91理论电影在线观看| 99久久伊人网影院| 日本精品视频一区二区| 在线国产电影不卡| 欧美日韩成人在线| 精品毛片乱码1区2区3区| 亚洲精品一区二区三区香蕉| 亚洲精品一区二区三区香蕉| 国产亚洲综合在线| 亚洲欧美怡红院| 亚洲va天堂va国产va久| 免费观看在线色综合| 国产69精品久久99不卡| 99久久精品费精品国产一区二区| 在线观看亚洲a| 精品福利av导航| 自拍偷拍亚洲激情| 日本欧美一区二区三区| 经典一区二区三区| 91黄色免费版| 久久亚洲影视婷婷| 亚洲欧美日韩国产综合| 免费欧美在线视频| av电影在线观看一区| 欧美一区二区三区视频免费播放| 精品国免费一区二区三区| 综合久久久久久| 美女视频一区在线观看| 91免费视频网| 久久婷婷综合激情| 亚洲成精国产精品女| 国产精品99久| 日韩一区二区三区视频在线 | 亚洲123区在线观看| 激情伊人五月天久久综合| 91网页版在线| 日韩欧美另类在线| 亚洲已满18点击进入久久| 国产一区欧美日韩| 777精品伊人久久久久大香线蕉| 久久久久久免费毛片精品| 亚洲成人动漫精品| 一本色道**综合亚洲精品蜜桃冫| 精品国产一区二区三区久久影院 | 欧美精品久久久久久久久老牛影院| 久久―日本道色综合久久| 爽好久久久欧美精品| 91免费观看在线| 日韩美女视频19| 极品少妇xxxx偷拍精品少妇| 欧美日韩中文字幕一区| 中文字幕一区日韩精品欧美| 国内成人免费视频| 欧美一二三四区在线| 日韩国产欧美在线播放| 欧美午夜精品免费| 一区二区成人在线视频| 色综合一个色综合亚洲| 国产精品美女久久久久久2018 | 国产精品久久久一区麻豆最新章节| 日韩影院精彩在线| 欧美久久久久久蜜桃| 亚洲第一搞黄网站| 欧美日韩国产三级| 亚洲一区在线观看免费 | 捆绑调教一区二区三区| 欧美日韩免费不卡视频一区二区三区| 中文字幕一区二区三区在线不卡| 国产福利精品一区二区| 欧美激情在线一区二区三区| 成人美女在线观看| 中文字幕一区视频| 日本久久电影网| 五月婷婷激情综合网| 777午夜精品视频在线播放| 天堂精品中文字幕在线| 欧美日韩精品免费| 久久国产尿小便嘘嘘尿| 久久婷婷成人综合色| 国产91综合一区在线观看| 国产精品二三区| 欧美偷拍一区二区| 麻豆精品精品国产自在97香蕉| 精品国产成人在线影院 | 欧美日韩中文精品| 日韩av一级电影| 国产欧美日韩在线观看| 99精品视频在线免费观看| 亚洲午夜国产一区99re久久| 欧美日韩一区二区在线观看视频| 日韩av中文字幕一区二区三区| 欧美v亚洲v综合ⅴ国产v| 国产成a人亚洲| 亚洲久草在线视频| 日韩一区二区免费高清| 成人美女视频在线看| 亚洲已满18点击进入久久| 欧美成人官网二区| 成人av片在线观看| 日韩高清一区在线| 国产欧美日韩久久| 欧美视频一区二区三区在线观看| 老司机免费视频一区二区 | 91视频观看免费| 日韩高清国产一区在线| 亚洲国产精品ⅴa在线观看| 欧美亚洲动漫制服丝袜| 国产精品一卡二| 日韩一区欧美二区| 日本一二三四高清不卡| 91精品国产综合久久精品麻豆| 国产精品456露脸| 国产一区二区伦理| 天天综合网天天综合色| 中文字幕一区二区三区视频| 日韩视频一区二区在线观看| 在线观看日韩一区| 国产福利91精品| 久久国产夜色精品鲁鲁99| 亚洲一区二区综合| 国产精品国产a级| 国产亚洲一区二区三区四区| 欧美精品自拍偷拍| 色综合久久天天综合网| 国产精品996| 极品美女销魂一区二区三区免费 | 91精品国产综合久久精品麻豆| 99精品欧美一区| 国产精品亚洲一区二区三区妖精 | 丁香天五香天堂综合| 人禽交欧美网站| 日韩综合一区二区| 亚洲1区2区3区视频| 亚洲美女少妇撒尿| 亚洲摸摸操操av| 中文字幕在线不卡| 国产精品久久久久影院亚瑟| 久久久久97国产精华液好用吗| 日韩视频在线永久播放| 欧美一级在线免费| 911国产精品| 91.麻豆视频| 欧美一区二区日韩| 欧美一卡二卡三卡四卡| 欧美日韩国产一级片| 欧美日韩美少妇| 日韩视频免费观看高清完整版在线观看 | 国产一二精品视频| 国产成人在线视频网站| 国产福利电影一区二区三区| 粉嫩蜜臀av国产精品网站| 国产精品一区二区三区网站| 国产黄人亚洲片| 丁香婷婷深情五月亚洲| 99国产精品久久久久久久久久久| a级精品国产片在线观看| 日本久久一区二区三区| 欧美日韩免费高清一区色橹橹| 欧美美女一区二区三区| 欧美一级高清片在线观看| 26uuu色噜噜精品一区二区| 久久精品男人的天堂| 日韩毛片在线免费观看| 夜夜揉揉日日人人青青一国产精品| 亚洲超碰97人人做人人爱| 狠狠色丁香婷综合久久| 高清不卡一区二区| 在线视频一区二区三区| 欧美一区二区三区视频免费播放| 精品日韩成人av| 亚洲色图欧美激情| 日韩二区在线观看| 国产成人免费网站| 色偷偷久久一区二区三区| 欧美日韩视频在线第一区| 2023国产精华国产精品| 亚洲精品国久久99热| 精品夜夜嗨av一区二区三区| 99久久伊人精品| 日韩欧美国产高清| 亚洲少妇最新在线视频| 日韩av一区二区在线影视| 成人激情电影免费在线观看| 3d动漫精品啪啪| 中文字幕亚洲在| 精品在线播放免费| 色女孩综合影院| 久久久久久久久久久久久夜| 一卡二卡欧美日韩| 成人福利在线看| 日韩欧美国产精品| 亚洲成av人片在线| 91色porny在线视频| 久久色在线观看|