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

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

?? ibmemacend.c

?? WINDRIVER SBC405 BSP
?? C
?? 第 1 頁 / 共 5 頁
字號:
/* ibmEmacEnd.c - END style IBM EMAC Ethernet driver *//*******************************************************************************   This source and object code has been made available to you by IBM on an   AS-IS basis.   IT IS PROVIDED WITHOUT WARRANTY OF ANY KIND, INCLUDING THE WARRANTIES OF   MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE OR OF NONINFRINGEMENT   OF THIRD PARTY RIGHTS.  IN NO EVENT SHALL IBM OR ITS LICENSORS BE LIABLE   FOR INCIDENTAL, CONSEQUENTIAL OR PUNITIVE DAMAGES.  IBM'S OR ITS LICENSOR'S   DAMAGES FOR ANY CAUSE OF ACTION, WHETHER IN CONTRACT OR IN TORT, AT LAW OR   AT EQUITY, SHALL BE LIMITED TO A MAXIMUM OF $1,000 PER LICENSE.  No license   under IBM patents or patent applications is to be implied by the copyright   license.   Any user of this software should understand that neither IBM nor its   licensors will be responsible for any consequences resulting from the use   of this software.   Any person who transfers this source code or any derivative work must   include the IBM copyright notice, this paragraph, and the preceding two   paragraphs in the transferred software.   Any person who transfers this object code or any derivative work must   include the IBM copyright notice in the transferred software.   COPYRIGHT   I B M   CORPORATION 2000   LICENSED MATERIAL  -  PROGRAM PROPERTY OF  I B M"*******************************************************************************//*modification history--------------------02b,06dec02,jln  fix race condition on TX (SPR 83919)02a,11jul02,pch  SPRs 77845 & 78057: fix name collision with PCI drivers01z,22nov01,alr  fix (SPR 71806) ibmEmacEnd multicast join/leave exception01y,06nov01,alr  fix (SPR 71487) ibmEmacEnd: driver may instruct MUX to block		 (EMAC_TX_BLOCKED/END_ERR_BLOCK) but never call muxTxRestart01x,06nov01,alr  fix (SPR 71481/74682) ibmEmacEnd incorrectly frees mblkClChain		 when blocking / returning error to mux01w,24jan02,pch  Fix Diab warnings01v,11dec01,mcg  Modify autonegotiation wait to last only 3 seconds.01u,07nov01,pch  Fix compiler warning re "ambiguous else"01t,18oct01,mcg  Polled mode fixes, added OPB speed parameter to load string.01s,04oct01,pch  Don't call netJobAdd() if netTask is not running (SPR 70443)01r,16aug01,kab  removed second TX descriptor table; allocating memory for                 loaning buffers (SPR 68704).01q,29may01,pmr  allocating memory for buffers from cache-safe memory;                 fixed warnings.01p,10may01,mcg  extensive changes to driver to remove data cache coherency                 code, add support for both TX channels, add full-duplex flow                 control support. 405 kernel must be used.01o,09may01,pmr  removed #include "etherLib.h".  Changed ENET_HDR_REAL_SIZ to		 SIZEOF_ETHERHEADER.01n,29nov00,s_m  changes from ibm01m,20oct00,s_m  corrected inclusion of enetPhy.h01l,15nov00,mcg  give TX semaphore back if netClusterGet fails in ibmEmacSend01k,11nov00,mcg  fixed RX descriptor error interrupt handler to always call                 ibmEmacHandleRecvInt to make sure RX channel is restarted01j,28aug00,mcg  fixed multicast filter initialization for 405GP REV D.01i,05jul00,mcg  modified PHY auto-negotiation code, added full duplex support01h,07jun00,mcg  fixed EMAC_IALR setup, moved descriptor table allocation to                 malLib01g,15may00,mcg  register name updates to match 405GP User Manual01f,08may00,mcg  added RX descriptor error interrupt handler01e,17apr00,mcg  increased inter-packet gap register setting from 0x8 to 0x20.01d,21mar00,mcg  fixed cluster handling problem when bad packet is received                 added error handling01c,15feb00,mcg  added txSem2nd to fix TX problem01b,15jan00,mcg  fixed problems in initial driver startup01a,01oct99,mcg  Created*//*DESCRIPTIONThis driver is for the IBM EMAC (Ethernet Media Access Controller).  Thiscontroller is a peripheral available from the IBM Blue Logic ASIC core library.EMAC is normally part of a System on a Chip design, and it works together withanother ASIC peripheral core called the Memory Access Layer (MAL).  MAL has aseries of transmit and receive channels and its job is to DMA packet data andstatus between main memory and the EMAC (or other packet based communicationsmacros).  EMAC has two tranmsit channels and one receive channel.  Thesechannels are hardwired to channels on the MAL.  This driver works togetherwith the MAL driver (malLib).EMAC supports half-duplex and full-duplex operation for both 10Mbps and 100Mbpsdata rates.  It communctates with standard PHY devices using the MediaIndependent Interface (MII).  Chips with multiple EMACs often utilize theZMII bridge.  The ZMII bridge connects the MII interface of the EMAC(s), andallows the use of MII, RMII, or SMII physical layer devices.EMAC supports the following:        - Wake on LAN        - VLAN tagged packets        - hardware source address insertion or replacement        - Automatic FCS generation for transmitted frames        - Automatic padding of transmitted frames        - Automatic stripping of FCS and padding on received frames        - Unicast, multicast, broadcast, and promiscuous address filtering          (2 64 bit hash filters for unicast and multicast)        - Automatic retransmission of collided packets        - Programmable inter-packet gap        - Internal and external loopbackEXTERNAL SUPPORT REQUIREMENTSThis driver requires several external support functions, defined as macros:.CS    EMAC_INT_CONNECT(pDrvCtrl, routine, arg)    EMAC_INT_DISCONNECT (pDrvCtrl, routine, arg)    EMAC_INT_ENABLE(pDrvCtrl)    EMAC_INT_DISABLE(pDrvCtrl)    EMAC_REG_WRITE(pDrvCtrl, reg, data)    EMAC_REG_READ(pDrvCtrl, reg, data)    EMAC_ENET_ADDR_GET(pDrvCtrl, pAddress)    sysLanIbmEmacEnetAddrGet(pDrvCtrl, enetAdrs)    EMAC_CACHE_FLUSH(cache, adrs, bytes)    EMAC_CACHE_INVALIDATE(cache, adrs, bytes).CEThere are default values in the source code for these macros.  They presumememory mapped accesses to the device registers and the normal intConnect(),and intEnable() BSP functions.  The first argument to each is the devicecontroller structure. Thus, each has access back to all the device-specificinformation.  Having the pointer in the macro facilitates the additionof new features to this driver.The macros EMAC_INT_CONNECT, EMAC_INT_DISCONNECT, EMAC_INT_ENABLE,EMAC_INT_DISABLE, EMAC_CACHE_FLUSH, and EMAC_CACHE_INVALIDATE allow the driverto be customized for BSPs that use special versions of these routines.The macro EMAC_INT_CONNECT is used to connect the interrupt handler tothe appropriate vector.  By default it is the routine intConnect().The macro EMAC_INT_DISCONNECT is used to disconnect the interrupt handler priorto unloading the module.  By default this is a dummy routine thatreturns OK.The macro EMAC_INT_ENABLE is used to enable the interrupt level for theend device.  It is called once during initialization.  By default it is theroutine intEnable().The macro EMAC_INT_DISABLE is used to disable the interrupt level for theend device.  It is called during stop.  By default it is the routineinDisable().The macro EMAC_ENET_ADDR_GET is used get the ethernet hardware address of theof the EMAC core. This macro calls an external board level routine namelysysLanIbmEmacEnetAddrGet() to get the ethernet address.The macro EMAC_CACHE_FLUSH is used to flush a buffer (or a portion of a buffer)from the data cache to memory prior to transmitting the packet.The macro EMAC_CACHE_INVALIDATE is used to invalidate a buffer (or a portion ofa buffer) in the data cache after receiving a packet, but before handing thepacket off to the MUX layer.EXTERNAL INTERFACEBefore starting the EMAC driver,  MAL driver for the corresponding MAL shouldbe started first. The ibmEmacEnd driver provides a function ibmEmacEndLoad()that allows the caller to pass instance specific parameters to the driverwhen starting it. The instance specific parameters are passed to ibmEmacEndLoadin an ASCII string that contains tokens separated by colons.  The format of theASCII string is:   "<baseAdrs>:<malTxChn0>:<malTxChn1>:<malRxChn0>:<intVec>:<intLvl>:    <memAdrs>:<memSize>:<flags>:<phyAdrs>:<cacheLineSize>:<pMalData>:    <opbSpeedMhz>".IP <baseAdrs>The base address of the EMAC registers..IP <malTXChn0>The MAL channel number EMAC TX channel 0 is connected to..IP <malTXChn1>The MAL channel number EMAC TX channel 1 is connected to..IP <malRXChn0>The MAL channel number EMAC RX channel 0 is connected to..IP <vecNum>Ethernet Interrupt vector..IP <intLvl>Ethernet Interrupt level..IP <memAdrs>Memory address to hold buffers/clusters, or NONE (-1). If NONE, the driver willallocate memory for the buffers/clusters.  Descriptor table memory is allocatedby the MAL driver..IP <memSize>Memory size or zero..IP <flags>Driver specific flags.  Allows the customization of 3 parameters.EMAC_INPUT_TX_COPY:By default, the ibmEmacEnd driver uses a zero copy strategy whentransmitting a packet.  However, if this flag is set, the driverwill obtain a new buffer/cluster and copy the packet data fromthe mBlk into the new buffer before transmitting the packet.EMAC_INPUT_UNCACHED_BUF:If the ibmEmacDriver allocates its own memory for buffers/clusters, itby default allocates cached memory and then manages the data cachecoherency when transmitting (flush) and receiving (invalidate) packets.However, if this flags is set, the driver will allocate cache-safememory for buffer/clusters. NOTE: if the EMAC_INPUT_UNCACHED_BUF isset, the EMAC_INPUT_TX_COPY flag must also be set.EMAC_INPUT_TX_2_CHANNEL:By default, the ibmEmacEnd driver utilizes only 1 of the 2 transmitchannels.  However, if this flags is set, the driver will use bothtransmit channels in independent mode..IP <phyAdrs>Address of the PHY device attached to MII interface of EMAC (0-31)..IP <cacheLineSize>Size of the processor data cache line..IP <pMalData>Pointer to the MAL driver control structure this EMAC is attached to.  ThemalInit() function returns a pointer to this structure..IP <opbSpeedMhz>The speed of the OPB bus in MHz.INCLUDES:end.h endLib.h etherMultiLib.h malLib.hSEE ALSO: muxLib, endLib, netBufLib, malLib*/#include "vxWorks.h"#include "wdLib.h"#include "stdlib.h"#include "taskLib.h"#include "logLib.h"#include "intLib.h"#include "netLib.h"#include "stdio.h"#include "stdlib.h"#include "sysLib.h"#include "iv.h"#include "memLib.h"#include "semLib.h"#include "cacheLib.h"#include "sys/ioctl.h"#include "enetPhy.h"#ifndef DOC#include "net/mbuf.h"#endif  /* DOC */#include "net/protosw.h"#include "sys/socket.h"#include "errno.h"#include "net/if.h"#include "net/route.h"#include "netinet/in.h"#include "netinet/in_systm.h"#include "netinet/in_var.h"#include "netinet/ip.h"#include "netinet/if_ether.h"#include "net/if_subr.h"#include "m2Lib.h"#include "etherMultiLib.h"              /* multicast stuff. */#include "end.h"                        /* Common END structures. */#include "netBufLib.h"#include "muxLib.h"#include "wdLib.h"#define END_MACROS#include "endLib.h"#include "lstLib.h"#include "ibmEmacEnd.h"#include "malLib.h"/* forward declarations, must precede the include of zmiiLib.c */IMPORT void sysPlbOutLong(ULONG address, UINT data);IMPORT UINT sysPlbInLong(ULONG address);#ifdef INCLUDE_ZMII  #include "zmiiLib.c"              /* ZMII bridge code.                      */#endif/* Cache macros */#ifndef EMAC_CACHE_INVALIDATE#define EMAC_CACHE_INVALIDATE(address, len) \        CACHE_DRV_INVALIDATE (&pDrvCtrl->cacheFuncs, (address), (len))#endif  /* EMAC_CACHE_INVALIDATE */#ifndef EMAC_CACHE_FLUSH#define EMAC_CACHE_FLUSH(address, len) \        CACHE_DRV_FLUSH (&pDrvCtrl->cacheFuncs, (address), (len))#endif  /* EMAC_CACHE_FLUSH *//* * Default macro definitions for BSP interface. * These macros can be redefined in a wrapper file, to generate * a new module with an optimized interface. */#ifndef EMAC_INT_CONNECT#define EMAC_INT_CONNECT(pDrvCtrl,routine,arg,pResult) \    { \    *pResult = (intConnect) ((VOIDFUNCPTR *)INUM_TO_IVEC (pDrvCtrl->ivec), \                             routine, (int)arg); \    }#endif /*EMAC_INT_CONNECT*/#ifndef EMAC_INT_DISCONNECTLOCAL VOID dummyISR (void) { };#define EMAC_INT_DISCONNECT(pDrvCtrl,routine,arg,pResult) \    { \    *pResult = (intConnect) ((VOIDFUNCPTR *)INUM_TO_IVEC (pDrvCtrl->ivec), \                             dummyISR, (int)arg); \    }#endif /*EMAC_INT_DISCONNECT*/#ifndef EMAC_INT_ENABLE#define EMAC_INT_ENABLE(pDrvCtrl) \    { \    intEnable(pDrvCtrl->ilevel); \    }#endif /* EMAC_INT_ENABLE*/#ifndef EMAC_INT_DISABLE#   define EMAC_INT_DISABLE(pDrvCtrl) \    { \    intDisable(pDrvCtrl->ilevel); \    }#endif#ifndef EMAC_REG_WRITE#define EMAC_REG_WRITE(pDrvCtrl,addr,value) \    { \    (sysPlbOutLong((pDrvCtrl->baseAdrs + (addr)),(value))); \    }#endif /* EMAC_REG_WRITE */#ifndef EMAC_REG_READ#define EMAC_REG_READ(pDrvCtrl,addr,data) \    { \    ((data) = (sysPlbInLong((pDrvCtrl->baseAdrs + (addr)))));  \    }#endif /* EMAC_REG_READ */#ifndef EMAC_ENET_ADDR_GET#define EMAC_ENET_ADDR_GET(pDrvCtrl, pAddress) \    { \    IMPORT STATUS sysLanIbmEmacEnetAddrGet (EMAC_DRV_CTRL *pDrvCtrl, \                                          UINT8 *enetAdrs); \    sysLanIbmEmacEnetAddrGet (pDrvCtrl, pAddress); \    }#endif /* EMAC_ENET_ADDR_GET *//* A shortcut for getting the hardware address from the MIB II stuff. */#define END_HADDR(pEnd) \                ((pEnd)->mib2Tbl.ifPhysAddress.phyAddress)#define END_HADDR_LEN(pEnd) \                ((pEnd)->mib2Tbl.ifPhysAddress.addrLength)/* externs */IMPORT int endMultiLstCnt (END_OBJ *);IMPORT int netTaskId;                           /* from netwrs/netLib.c */#ifdef DRV_DEBUG                  /* For debugging purposes. See ibmEmacEnd.h */#undef  LOCAL#define LOCALEMAC_DRV_CTRL * ibmEmacDebugPtr;int     ibmEmacDebug = (                    /* DRV_DEBUG_RX       | */                    /* DRV_DEBUG_TX       | */                    /* DRV_DEBUG_INT      | */                       DRV_DEBUG_POLL     |                       DRV_DEBUG_POLL_RX  |                       DRV_DEBUG_POLL_TX  |                    /* DRV_DEBUG_LOAD     | */                    /* DRV_DEBUG_IOCTL    | */                    /* DRV_DEBUG_RESET    | */                    /* DRV_DEBUG_MCAST    | */                       DRV_DEBUG_ERROR    |                    /* DRV_DEBUG_INFO     | */                    /* DRV_DEBUG_START    | */                    /* DRV_DEBUG_SEND     | */                    /* DRV_DEBUG_RECV     | */                       DRV_DEBUG_ENET_INT |                    /* DRV_DEBUG_STATUS   | */                    /* DRV_DEBUG_TX_CLEAN | */                       DRV_DEBUG_CFG      |                       DRV_DEBUG_PHY

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美一二三四区| 一区二区三区在线视频观看| 欧美激情一区二区| 五月婷婷欧美视频| 91丨九色porny丨蝌蚪| 日韩欧美色综合网站| 亚洲电影视频在线| 国产麻豆视频精品| 欧美日本韩国一区二区三区视频| 精品国产百合女同互慰| 国产精品 欧美精品| 9l国产精品久久久久麻豆| 欧美性猛交xxxxxxxx| 亚洲欧美在线aaa| 日韩一区二区在线免费观看| 久久精品在这里| 婷婷久久综合九色综合绿巨人| va亚洲va日韩不卡在线观看| 精品噜噜噜噜久久久久久久久试看 | 性感美女极品91精品| 国产成都精品91一区二区三| 久久网站热最新地址| 日av在线不卡| 色综合天天在线| 亚洲视频在线一区| 99久久精品免费看| 亚洲丝袜精品丝袜在线| 色婷婷香蕉在线一区二区| 久久网这里都是精品| 国模娜娜一区二区三区| 欧美精品一区男女天堂| 国产一区二区三区四区五区入口 | 亚洲精品在线网站| 久色婷婷小香蕉久久| 欧美不卡在线视频| 懂色av中文字幕一区二区三区| 日本一区二区高清| 色噜噜久久综合| 午夜视频在线观看一区| 日韩一区二区三区av| 国产乱码精品一区二区三区忘忧草 | 午夜久久久久久| 精品三级在线观看| 国产成人免费在线观看不卡| 91视视频在线观看入口直接观看www| 亚洲天堂中文字幕| 亚洲欧美在线另类| 日韩二区在线观看| 国产精品亚洲午夜一区二区三区| 精品国内二区三区| 国产在线播放一区三区四| 久久综合九色综合97婷婷| 国产风韵犹存在线视精品| 久久精品欧美日韩精品| 成人免费观看视频| 国产精品国产三级国产有无不卡| 成人v精品蜜桃久久一区| 国产在线观看一区二区| 亚洲三级在线观看| 日韩手机在线导航| 一本色道久久综合狠狠躁的推荐 | 亚洲福利一二三区| 欧美成人艳星乳罩| 成人aa视频在线观看| 日韩影院免费视频| 亚洲欧美精品午睡沙发| 国产精品免费观看视频| 欧美电影免费观看高清完整版在线| 不卡欧美aaaaa| 精油按摩中文字幕久久| 日韩中文字幕不卡| 亚洲黄色小说网站| 国产欧美一二三区| 欧美大尺度电影在线| 欧美性感一类影片在线播放| 成人蜜臀av电影| 久久99热这里只有精品| 日韩中文字幕91| 亚洲一区在线观看免费| 亚洲免费av在线| 国产精品国产三级国产aⅴ原创| 678五月天丁香亚洲综合网| 色丁香久综合在线久综合在线观看| 黄色资源网久久资源365| 麻豆91精品视频| 国产一区二区三区四区在线观看 | 国产米奇在线777精品观看| 91免费精品国自产拍在线不卡| 国产女主播在线一区二区| 亚洲国产精品激情在线观看| 在线精品视频免费观看| 免费看日韩a级影片| 国产精品久久三区| 欧美日韩国产综合草草| 国产精品一品视频| 亚洲高清在线视频| 国产三级精品在线| 欧美日韩精品电影| 成人污污视频在线观看| 久久精品男人天堂av| 中文久久乱码一区二区| 亚洲人123区| 日一区二区三区| 国产一区二区0| 91在线免费播放| 在线观看视频欧美| 5566中文字幕一区二区电影| 欧美午夜免费电影| 欧美一区中文字幕| 国产精品毛片高清在线完整版 | 国产日韩欧美不卡在线| 国产精品视频免费| 亚洲一区视频在线| 国产一区二区在线视频| 99久久婷婷国产综合精品| 欧美精选午夜久久久乱码6080| 欧美一区二区三区男人的天堂| 国产欧美综合色| 日韩精品电影在线观看| 成人激情免费视频| 日韩精品一区二区三区三区免费| 欧美高清一级片在线观看| 亚洲chinese男男1069| 国产a级毛片一区| 欧美一区二区三区爱爱| 亚洲精品国产a久久久久久| 久久成人麻豆午夜电影| 欧美一三区三区四区免费在线看| 久久久久国产成人精品亚洲午夜| 国产91综合网| 777a∨成人精品桃花网| 精品少妇一区二区三区免费观看 | 国产欧美综合色| 亚洲人快播电影网| 精品黑人一区二区三区久久| 欧美日韩不卡视频| 日本韩国一区二区三区视频| 成人激情小说网站| 国产成人免费高清| 韩国av一区二区三区在线观看| 日韩国产欧美在线播放| 亚洲成人免费在线观看| 亚洲在线视频免费观看| 亚洲色图欧洲色图| 一区二区三区日韩在线观看| 国产精品538一区二区在线| 日韩视频一区在线观看| 亚洲成人精品在线观看| 91福利国产成人精品照片| 1区2区3区欧美| 99久久婷婷国产| 国产精品国产a| 不卡一卡二卡三乱码免费网站| 久久免费看少妇高潮| 极品尤物av久久免费看| 久久女同互慰一区二区三区| 国内欧美视频一区二区| 精品久久久网站| 国产一区二区91| 国产女同互慰高潮91漫画| 懂色中文一区二区在线播放| 欧美国产精品v| 色天天综合色天天久久| 一区二区三区精品视频| 欧美美女黄视频| 天天色综合天天| 精品国产乱码久久久久久闺蜜| 激情综合亚洲精品| 中文字幕一区二区三区在线观看 | 91丨九色丨蝌蚪富婆spa| 成人欧美一区二区三区小说 | 丝袜美腿亚洲一区| 欧美一区二区三区四区高清| 男人的j进女人的j一区| 欧美日韩国产综合视频在线观看| 成人看片黄a免费看在线| 99精品国产一区二区三区不卡| 在线视频你懂得一区二区三区| 国产亚洲欧美日韩日本| 中文字幕乱码一区二区免费| 国产精品嫩草影院av蜜臀| 亚洲欧美综合色| 亚洲国产三级在线| 麻豆91精品视频| 岛国精品在线观看| 在线国产电影不卡| 欧美丰满高潮xxxx喷水动漫| 日韩美一区二区三区| 国产午夜精品福利| 悠悠色在线精品| 国产伦精品一区二区三区免费| 国产精品欧美一区二区三区| 欧美三级日韩在线| 成人午夜av电影| 国产真实乱偷精品视频免| 亚洲一区二区三区四区中文字幕| 国产午夜亚洲精品羞羞网站| 91麻豆精品国产无毒不卡在线观看| 不卡的电影网站| 国产ts人妖一区二区|