⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 el3c90xend.html

📁 vxworks相关论文
💻 HTML
📖 第 1 页 / 共 2 页
字号:
</blockquote><h4>EXTERNAL SUPPORT REQUIREMENTS</h4><blockquote><p><p>This driver requires several external support functions, defined as macros:<pre>    SYS_INT_CONNECT(pDrvCtrl, routine, arg)    SYS_INT_DISCONNECT (pDrvCtrl, routine, arg)    SYS_INT_ENABLE(pDrvCtrl)    SYS_INT_DISABLE(pDrvCtrl)    SYS_OUT_BYTE(pDrvCtrl, reg, data)    SYS_IN_BYTE(pDrvCtrl, reg, data)    SYS_OUT_WORD(pDrvCtrl, reg, data)    SYS_IN_WORD(pDrvCtrl, reg, data)    SYS_OUT_LONG(pDrvCtrl, reg, data)    SYS_IN_LONG(pDrvCtrl, reg, data)    SYS_DELAY (delay)    sysEl3c90xIntEnable(pDrvCtrl-&gt;intLevel)     sysEl3c90xIntDisable(pDrvCtrl-&gt;intLevel)    sysDelay (delay)</pre>There are default values in the source code for these macros.  They presumememory mapped accesses to the device registers and the normal <b><i><a href="./intArchLib.html#intConnect">intConnect</a></i>(&nbsp;)</b>,and <b><i><a href="./intArchLib.html#intEnable">intEnable</a></i>(&nbsp;)</b> 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 addition of new features to this driver.<p>The macros <b>SYS_INT_CONNECT</b>, <b>SYS_INT_DISCONNECT</b>, <b>SYS_INT_ENABLE</b> and<b>SYS_INT_DISABLE</b> allow the driver to be customized for BSPs that use specialversions of these routines.<p>The macro <b>SYS_INT_CONNECT</b> is used to connect the interrupt handler tothe appropriate vector.  By default it is the routine <b><i><a href="./intArchLib.html#intConnect">intConnect</a></i>(&nbsp;)</b>.<p>The macro <b>SYS_INT_DISCONNECT</b> is used to disconnect the interrupt handler priorto unloading the module.  By default this is a dummy routine thatreturns OK.<p>The macro <b>SYS_INT_ENABLE</b> is used to enable the interrupt level for theend device.  It is called once during initialization.  It calls anexternal board level routine <b><i>sysEl3c90xIntEnable</i>(&nbsp;)</b>. <p>The macro <b>SYS_INT_DISABLE</b> is used to disable the interrupt level for theend device.  It is called during stop.  It calls anexternal board level routine <b><i>sysEl3c90xIntDisable</i>(&nbsp;)</b>.<p>The macro <b>SYS_DELAY</b> is used for a delay loop. It calls an external boardlevel routine sysDelay(delay). The granularity of delay is one microsecond.<p></blockquote><h4>SYSTEM RESOURCE USAGE</h4><blockquote><p>When implemented, this driver requires the following system resources:<p>&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;one&nbsp;mutual&nbsp;exclusion&nbsp;semaphore<br>&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;one&nbsp;interrupt&nbsp;vector<br>&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;24072&nbsp;bytes&nbsp;in&nbsp;text&nbsp;for&nbsp;a&nbsp;I80486&nbsp;target<br>&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;112&nbsp;bytes&nbsp;in&nbsp;the&nbsp;initialized&nbsp;data&nbsp;section&nbsp;(data)<br>&nbsp;&nbsp;&nbsp;&nbsp;-&nbsp;0&nbsp;bytes&nbsp;in&nbsp;the&nbsp;uninitialized&nbsp;data&nbsp;section&nbsp;(BSS)<p>The driver allocates clusters of size 1536 bytes for receive frames andand transmit frames. There are 16 descriptors in the upload ringand 16 descriptors in the download ring. The buffer multiplier by defaultis 2, which means that the total number of clusters allocated by defaultare 64 ((upload descriptors + download descriptors)*2). There are as manyclBlks as the number of clusters. The number of mBlks allocated are twicethe number of clBlks. By default there are 64 clusters, 64 clBlks and 128mBlks allocated in the pool for the device. Depending on the load of thesystem increase the number of clusters allocated by incrementing the buffermultiplier.<p></blockquote><h4>INCLUDES</h4><blockquote><p><p><b>end.h</b> <b>endLib.h</b> <b>etherMultiLib.h</b> <b>el3c90xEnd.h</b><p></blockquote><h4>SEE ALSO</h4><blockquote><p><b><a href="./el3c90xEnd.html#top">el3c90xEnd</a></b>, <b><a href="./muxLib.html#top">muxLib</a></b>, <b><a href="./endLib.html#top">endLib</a></b>, <b><a href="./netBufLib.html#top">netBufLib</a></b><i>VxWorks Programmer's Guide: Writing and Enhanced Network Driver</i><p></blockquote><h4>BIBLIOGRAPHY</h4><blockquote><p><i>3COM 3c90x and 3c90xB NICs Technical reference.</i><p><hr><a name="el3c90xEndLoad"></a><p align=right><a href="rtnIndex.html"><i>Libraries :  Routines</i></a></p></blockquote><h1><i>el3c90xEndLoad</i>(&nbsp;)</h1> <blockquote></a></blockquote><h4>NAME</h4><blockquote>  <p><strong><i>el3c90xEndLoad</i>(&nbsp;)</strong> - initialize the driver and device</p></blockquote><h4>SYNOPSIS</h4><blockquote><p><pre>END_OBJ * el3c90xEndLoad    (    char * initString /* String to be parsed by the driver. */    )</pre></blockquote><h4>DESCRIPTION</h4><blockquote><p>This routine initializes the driver and the device to the operational state.All of the device-specific parameters are passed in <i>initString</i>, whichexpects a string of the following format:<p><i>unit</i>:<i>devMemAddr</i>:<i>devIoAddr</i>:<i>pciMemBase:<vecnum</i>:<i>intLvl</i>:<i>memAdrs</i>:<i>memSize</i>:<i>memWidth</i>:<i>flags</i>:<i>buffMultiplier</i><p>This routine can be called in two modes. If it is called with an empty butallocated string, it places the name of this device (that is, "elPci") into the <i>initString</i> and returns 0.<p>If the string is allocated and not empty, the routine attempts to loadthe driver using the values specified in the string.<p></blockquote><h4>RETURNS</h4><blockquote><p>An END object pointer, or NULL on error, or 0 and the name of thedevice if the <i>initString</i> was NULL.</blockquote><h4>SEE ALSO</h4><blockquote><p><b><a href="./el3c90xEnd.html#top">el3c90xEnd</a></b><hr><a name="el3c90xInitParse"></a><p align=right><a href="rtnIndex.html"><i>Libraries :  Routines</i></a></p></blockquote><h1><i>el3c90xInitParse</i>(&nbsp;)</h1> <blockquote></a></blockquote><h4>NAME</h4><blockquote>  <p><strong><i>el3c90xInitParse</i>(&nbsp;)</strong> - parse the initialization string</p></blockquote><h4>SYNOPSIS</h4><blockquote><p><pre>STATUS el3c90xInitParse    (    EL3C90X_DEVICE * pDrvCtrl,  /* pointer to the control structure */    char *           initString /* initialization string */    )</pre></blockquote><h4>DESCRIPTION</h4><blockquote><p>Parse the input string. This routine is called from <b><i><a href="./el3c90xEnd.html#el3c90xEndLoad">el3c90xEndLoad</a></i>(&nbsp;)</b> whichintializes some values in the driver control structure with the valuespassed in the intialization string.<p>The initialization string format is:<i>unit</i>:<i>devMemAddr</i>:<i>devIoAddr</i>:<i>pciMemBase:<vecNum</i>:<i>intLvl</i>:<i>memAdrs</i>:<i>memSize</i>:<i>memWidth</i>:<i>flags</i>:<i>buffMultiplier</i><p><dl><dt><i>unit</i><dd>Device unit number, a small integer.<p><dt><i>devMemAddr</i><dd>Device register base memory address<p><dt><i>devIoAddr</i><dd>Device register base IO address<p><dt><i>pciMemBase</i><dd>Base address of PCI memory space<p><dt><i>vecNum</i><dd>Interrupt vector number.<p><dt><i>intLvl</i><dd>Interrupt level.<p><dt><i>memAdrs</i><dd>Memory pool address or NONE.<p><dt><i>memSize</i><dd>Memory pool size or zero.<p><dt><i>memWidth</i><dd>Memory system size, 1, 2, or 4 bytes (optional).<p><dt><i>flags</i><dd>Device specific flags, for future use.<p><dt><i>buffMultiplier</i><dd> Buffer Multiplier or NONE. If NONE is specified, it defaults to 2<p></dl></blockquote><h4>RETURNS</h4><blockquote><p><p>&nbsp;OK,&nbsp;or&nbsp;ERROR&nbsp;if&nbsp;any&nbsp;arguments&nbsp;are&nbsp;invalid.</blockquote><h4>SEE ALSO</h4><blockquote><p><b><a href="./el3c90xEnd.html#top">el3c90xEnd</a></b></body></html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -