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

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

?? sysrtl81x9end.c

?? 8139在vxworks平臺下的驅動
?? 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网站精品一区二区 | 欧美三级午夜理伦三级中视频| 香蕉成人啪国产精品视频综合网| 精品成人在线观看| 欧美中文字幕一区| youjizz久久| 美国三级日本三级久久99 | 国产精品青草综合久久久久99| 欧美日韩精品综合在线| 成人网男人的天堂| 激情文学综合插| 亚洲h精品动漫在线观看| 国产精品精品国产色婷婷| 欧美大片国产精品| 欧美剧情片在线观看| 99久久99精品久久久久久| 国产精品乡下勾搭老头1| 日韩精品乱码免费| 亚洲综合图片区| 国产精品视频在线看| 国产三级欧美三级日产三级99| 欧美一区2区视频在线观看| 色婷婷狠狠综合| 成人av午夜电影| 国产精品一二三区在线| 麻豆久久久久久| 日韩中文字幕亚洲一区二区va在线| 1000精品久久久久久久久| 国产精品午夜春色av| 久久天天做天天爱综合色| 日韩免费高清电影| 欧美一卡在线观看| 日韩欧美在线1卡| 欧美一区日韩一区| 欧美一区二区在线免费播放 | 欧美精品丝袜久久久中文字幕| 色综合色狠狠综合色| 成人动漫一区二区三区| 丰满少妇在线播放bd日韩电影| 国精产品一区一区三区mba视频| 麻豆91精品91久久久的内涵| 久久精品国产澳门| 久久99精品视频| 狠狠色丁香婷综合久久| 国产在线麻豆精品观看| 精品影视av免费| 国产精品一品二品| 不卡的av电影| 91美女视频网站| 欧美午夜精品久久久| 欧美日韩午夜在线| 日韩亚洲国产中文字幕欧美| 日韩午夜三级在线| 久久日韩粉嫩一区二区三区| www国产成人| 国产精品久久久久久户外露出| 国产精品久久久久久久久久免费看 | 在线免费观看日本一区| 欧美性生活久久| 欧美一卡二卡三卡四卡| 久久精品亚洲精品国产欧美| 国产丝袜在线精品| 亚洲精品视频自拍| 亚洲成人av电影| 国产综合色产在线精品| 成人精品鲁一区一区二区| 99久久精品国产导航| 欧美日韩国产一二三| 精品国产网站在线观看| 国产精品国产自产拍在线| 一区二区三区四区在线| 日本不卡的三区四区五区| 国产成人免费xxxxxxxx| 91精品91久久久中77777| 91精品免费观看| 国产农村妇女精品| 亚洲一二三区不卡| 国产一区在线精品| 欧洲精品中文字幕| 欧美videossexotv100| |精品福利一区二区三区| 蜜桃91丨九色丨蝌蚪91桃色| 不卡一区在线观看| 制服丝袜成人动漫| 国产精品麻豆视频| 三级一区在线视频先锋| 成人黄色免费短视频| 337p亚洲精品色噜噜| 国产精品美女视频| 美脚の诱脚舐め脚责91| 色国产综合视频| 久久亚洲一区二区三区明星换脸| 亚洲精品自拍动漫在线| 黑人巨大精品欧美黑白配亚洲| 色综合久久六月婷婷中文字幕| 日韩网站在线看片你懂的| 最新中文字幕一区二区三区 | 国产suv精品一区二区6| 欧美男人的天堂一二区| 亚洲欧洲精品一区二区三区| 蜜桃一区二区三区在线| 在线看国产日韩| 中文字幕成人在线观看| 美国十次综合导航| 欧美日本一区二区在线观看| 中文字幕视频一区二区三区久| 美女在线视频一区| 欧美午夜不卡视频| 亚洲婷婷在线视频| 国产乱人伦偷精品视频免下载| 在线播放91灌醉迷j高跟美女 | 中文字幕一区二区不卡| 黑人精品欧美一区二区蜜桃| 91精品蜜臀在线一区尤物| 亚洲国产成人91porn| 99视频在线观看一区三区| 久久精品一区蜜桃臀影院| 精品一区二区三区免费| 日韩三级伦理片妻子的秘密按摩| 亚洲精品v日韩精品| 9l国产精品久久久久麻豆| 国产调教视频一区| 国产乱码精品一区二区三区av| 91麻豆精品国产自产在线| 亚洲高清免费观看高清完整版在线观看| 91免费看`日韩一区二区| 国产精品久久久久久一区二区三区| 国产精品一区二区x88av| 久久视频一区二区| 国产在线一区观看| 精品乱码亚洲一区二区不卡| 美女视频黄 久久| 日韩视频一区二区| 美女视频黄免费的久久| 精品少妇一区二区三区视频免付费 | 精品在线亚洲视频| 日韩视频中午一区| 免费成人美女在线观看.| 91精品国产丝袜白色高跟鞋| 日韩av中文字幕一区二区| 欧美一区二区啪啪| 狠狠色丁香婷婷综合| 久久久精品蜜桃| 成人激情小说网站| 亚洲激情五月婷婷| 欧美日韩视频专区在线播放| 午夜私人影院久久久久| 欧美精品一卡二卡| 久久精品国产一区二区三| 精品女同一区二区| 国产成人精品免费看| 国产精品久久久一本精品| 91在线观看地址| 亚洲国产cao| 日韩欧美的一区二区| 国产麻豆精品95视频| 国产精品久久三| 欧美偷拍一区二区| 裸体在线国模精品偷拍| 欧美激情综合五月色丁香| 99免费精品在线| 亚洲成年人网站在线观看| 欧美成人三级在线| 91网站黄www| 日韩精品亚洲专区| 国产欧美日韩卡一| 欧美体内she精视频| 男女激情视频一区| 国产精品日韩成人| 欧美午夜电影在线播放| 国内精品视频一区二区三区八戒| 国产精品国产三级国产普通话99| 欧美性受xxxx| 国产电影精品久久禁18| 亚洲最大成人综合| 久久蜜桃香蕉精品一区二区三区| 一本到三区不卡视频| 秋霞午夜av一区二区三区| 中文字幕第一区二区| 欧美日韩视频专区在线播放| 国产大片一区二区| 午夜精品一区二区三区电影天堂| 精品国产网站在线观看| 在线观看国产日韩| 国产麻豆精品久久一二三| 亚洲午夜免费视频| 国产欧美一区二区精品忘忧草| 91国产福利在线| 黑人精品欧美一区二区蜜桃| 亚洲制服丝袜av| 欧美激情在线免费观看| 欧美一区二区三区在线视频| 99在线热播精品免费| 极品少妇xxxx精品少妇偷拍| 亚洲黄一区二区三区| 国产日韩欧美制服另类| 制服丝袜中文字幕一区| 99久久精品一区二区| 国产做a爰片久久毛片|