📄 ultraend.html
字号:
<html><head><!-- /vobs/wpwr/docs/vxworks/ref/ultraEnd.html - generated by refgen from ultraEnd.c --> <title> ultraEnd </title></head><body bgcolor="#FFFFFF"> <hr><a name="top"></a><p align=right><a href="libIndex.html"><i>VxWorks Reference Manual : Libraries</i></a></p></blockquote><h1>ultraEnd</h1> <blockquote></a></blockquote><h4>NAME</h4><blockquote> <p><strong>ultraEnd</strong> - SMC Ultra Elite END network interface driver </p></blockquote><h4>ROUTINES</h4><blockquote><p><p><b><i><a href="./ultraEnd.html#ultraLoad">ultraLoad</a></i>( )</b> - initialize the driver and device<br><b><i><a href="./ultraEnd.html#ultraParse">ultraParse</a></i>( )</b> - parse the init string<br><b><i><a href="./ultraEnd.html#ultraMemInit">ultraMemInit</a></i>( )</b> - initialize memory for the chip<br><b><i><a href="./ultraEnd.html#ultraAddrFilterSet">ultraAddrFilterSet</a></i>( )</b> - set the address filter for multicast addresses<br><p></blockquote><h4>DESCRIPTION</h4><blockquote><p>This module implements the SMC Elite Ultra Ethernt network interface driver.<p>This driver supports single transmission and multiple reception. TheCurrent register is a write pointer to the ring. The Bound registeris a read pointer from the ring. This driver gets the Currentregister at the interrupt level and sets the Bound register at thetask level. The interrupt is only masked during configuration or inpolled mode.<p></blockquote><h4>CONFIGURATION</h4><blockquote><p>The W1 jumper should be set in the position of "Software Configuration".The defined I/O address in <b>config.h</b> must match the one stored in EEROM. The RAM address, the RAM size, and the IRQ level are defined in <b>config.h</b>. IRQ levels 2,3,5,7,10,11,15 are supported.<p></blockquote><h4>EXTERNAL SUPPORT REQUIREMENTS</h4><blockquote><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_IN_BYTE(pDrvCtrl, reg, pData) SYS_OUT_BYTE(pDrvCtrl, reg, pData)</pre>These macros allow the driver to be customized for BSPs that usespecial versions 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>( )</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>sysUltraIntEnable</i>( )</b>.<p>The macro <b>SYS_INT_DISABLE</b> is used to disable the interrupt level for theend device. It is called once during shutdown. It calls anexternal board level routine <b><i>sysUltraIntDisable</i>( )</b>.<p>The macros <b>SYS_IN_BYTE</b> and <b>SYS_OUT_BYTE</b> are used for accessing theultra device. The default macros map these operations onto<b><i><a href="../bsp/evb403/sysLib.html#sysInByte" >sysInByte</a></i>( )</b> and <b><i><a href="../bsp/evb403/sysLib.html#sysOutByte" >sysOutByte</a></i>( )</b>.<p></blockquote><h4>INCLUDES</h4><blockquote><p><p><b>end.h</b> <b>endLib.h</b> <b>etherMultiLib.h</b><p></blockquote><h4>SEE ALSO</h4><blockquote><p><b><a href="./ultraEnd.html#top">ultraEnd</a></b>, <b><a href="./muxLib.html#top">muxLib</a></b>, <b><a href="./endLib.html#top">endLib</a></b><i>Writing an Enhanced Network Driver </i><hr><a name="ultraLoad"></a><p align=right><a href="rtnIndex.html"><i>Libraries : Routines</i></a></p></blockquote><h1><i>ultraLoad</i>( )</h1> <blockquote></a></blockquote><h4>NAME</h4><blockquote> <p><strong><i>ultraLoad</i>( )</strong> - initialize the driver and device</p></blockquote><h4>SYNOPSIS</h4><blockquote><p><pre>END_OBJ* ultraLoad ( 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>ioAddr</i>:<i>memAddr</i>:<i>vecNum</i>:<i>intLvl</i>:<i>config</i>:<i>offset</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, "ultra") 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="./ultraEnd.html#top">ultraEnd</a></b><hr><a name="ultraParse"></a><p align=right><a href="rtnIndex.html"><i>Libraries : Routines</i></a></p></blockquote><h1><i>ultraParse</i>( )</h1> <blockquote></a></blockquote><h4>NAME</h4><blockquote> <p><strong><i>ultraParse</i>( )</strong> - parse the init string</p></blockquote><h4>SYNOPSIS</h4><blockquote><p><pre>STATUS ultraParse ( ULTRA_DEVICE * pDrvCtrl, /* device pointer */ char * initString /* information string */ )</pre></blockquote><h4>DESCRIPTION</h4><blockquote><p>Parse the input string. Fill in values in the driver control structure.The initialization string format is:<i>unit</i>:<i>ioAddr</i>:<i>memAddr</i>:<i>vecNum</i>:<i>intLvl</i>:<i>config</i>:<i>offset</i>"<p><dl><dt><i>unit</i><dd>Device unit number, a small integer.<p><dt><i>ioAddr</i><dd>I/O address<p><dt><i>memAddr</i><dd>Memory address, assumed to be 16k bytes in length.<p><dt><i>vecNum</i><dd>Interrupt vector number (used with <b><i>sysIntConnect</i>( )</b>).<p><dt><i>intLvl</i><dd>Interrupt level.<p><dt><i>config</i><dd>Ultra config (0: RJ45 + AUI(Thick) 1: RJ45 + BNC(Thin)).<p><dt><i>offset</i><dd> Memory offset for alignment.<p></dl></blockquote><h4>RETURNS</h4><blockquote><p><p> OK, or ERROR if any arguments are invalid.</blockquote><h4>SEE ALSO</h4><blockquote><p><b><a href="./ultraEnd.html#top">ultraEnd</a></b><hr><a name="ultraMemInit"></a><p align=right><a href="rtnIndex.html"><i>Libraries : Routines</i></a></p></blockquote><h1><i>ultraMemInit</i>( )</h1> <blockquote></a></blockquote><h4>NAME</h4><blockquote> <p><strong><i>ultraMemInit</i>( )</strong> - initialize memory for the chip</p></blockquote><h4>SYNOPSIS</h4><blockquote><p><pre>STATUS ultraMemInit ( ULTRA_DEVICE * pDrvCtrl, /* device to be initialized */ int clNum /* number of clusters to allocate */ )</pre></blockquote><h4>DESCRIPTION</h4><blockquote><p>Using data in the control structure, setup and initialize the memoryareas needed. If the memory address is not already specified, then allocatecache safe memory.<p></blockquote><h4>RETURNS</h4><blockquote><p>OK or ERROR.</blockquote><h4>SEE ALSO</h4><blockquote><p><b><a href="./ultraEnd.html#top">ultraEnd</a></b><hr><a name="ultraAddrFilterSet"></a><p align=right><a href="rtnIndex.html"><i>Libraries : Routines</i></a></p></blockquote><h1><i>ultraAddrFilterSet</i>( )</h1> <blockquote></a></blockquote><h4>NAME</h4><blockquote> <p><strong><i>ultraAddrFilterSet</i>( )</strong> - set the address filter for multicast addresses</p></blockquote><h4>SYNOPSIS</h4><blockquote><p><pre>void ultraAddrFilterSet ( ULTRA_DEVICE * pDrvCtrl /* device pointer */ )</pre></blockquote><h4>DESCRIPTION</h4><blockquote><p>This routine goes through all of the multicast addresses on the listof addresses (added with the <b><i>ultraMCastAdd</i>( )</b> routine) and sets thedevice's filter correctly.<p></blockquote><h4>RETURNS</h4><blockquote><p>N/A.</blockquote><h4>SEE ALSO</h4><blockquote><p><b><a href="./ultraEnd.html#top">ultraEnd</a></b></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -