📄 if_elt.html
字号:
<html><head><!-- /vobs/wpwr/docs/vxworks/ref/if_elt.html - generated by refgen from if_elt.c --> <title> if_elt </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>if_elt</h1> <blockquote></a></blockquote><h4>NAME</h4><blockquote> <p><strong>if_elt</strong> - 3Com 3C509 Ethernet network interface driver </p></blockquote><h4>ROUTINES</h4><blockquote><p><p><b><i><a href="./if_elt.html#eltattach">eltattach</a></i>( )</b> - publish the <b>elt</b> interface and initialize the driver and device<br><b><i><a href="./if_elt.html#eltTxOutputStart">eltTxOutputStart</a></i>( )</b> - start output on the board<br><b><i><a href="./if_elt.html#eltShow">eltShow</a></i>( )</b> - display statistics for the 3C509 <b>elt</b> network interface<br><p></blockquote><h4>DESCRIPTION</h4><blockquote><p>This module implements the 3Com 3C509 network adapter driver.<p>The 3C509 (EtherLink® III) is not well-suited for use in real-time systems.Its meager on-board buffering (4K total; 2K transmit, 2K receive) forces thehost processor to service the board at a high priority. 3Com makes a virtueof this necessity by adding fancy lookahead support and adding the label"Parallel Tasking" to the outside of the box. Using 3Com's drivers, this boardwill look good in benchmarks that measure raw link speed.The board is greatly simplified by using the host CPU as a DMA controller.<p></blockquote><h4>BOARD LAYOUT</h4><blockquote><p>This device is soft-configured by a DOS-hosted program supplied by themanufacturer. No jumpering diagram is required.<p></blockquote><h4>EXTERNAL INTERFACE</h4><blockquote><p>This driver provides the standard external interface with the followingexceptions. All initialization is performed within the attach routine andthere is no separate initialization routine. Thus, in the global interfacestructure, the function pointer to the initialization routine is NULL.<p>There are two user-callable routines:<dl><dt><b><i><a href="./if_elt.html#eltattach">eltattach</a></i>( )</b><dd>publishes the <b>elt</b> interface and initializes the driver and device.<p><dt><b><i><a href="./if_elt.html#eltShow">eltShow</a></i>( )</b><dd>displays statistics that are collected in the interrupt handler. </dl><p>See the manual entries for these routines for more detail.<p></blockquote><h4>SYSTEM RESOURCE USAGE</h4><blockquote><p>- one mutual exclusion semaphore<br> - one interrupt vector<br> - 16 bytes in the uninitialized data section (bss)<br> - 180 bytes (plus overhead) of malloc'ed memory per unit<br> - 1530 bytes (plus overhead) of malloc'ed memory per frame buffer,<br> minimum 5 frame buffers.<p></blockquote><h4>SHORTCUTS</h4><blockquote><p>The EISA and MCA versions of the board are not supported.<p>Attachment selection assumes the board is in power-on reset state; a warmrestart will not clear the old attachment selection out of the hardware,and certain new selections may not clear it either. For example, if RJ45was selected, the system is warm-booted, and AUI is selected, the RJ45connector is still functional.<p>Attachment type selection is not validated against the board's capabilities,even though there is a register that describes which connectors exist.<p>The loaned buffer cluster type is <b>MC_EI</b>; no new type is defined yet.<p>Although it seems possible to put the transmitter into a non-functioningstate, it is not obvious either how to do this or how to detect the resultingstate. There is therefore no transmit watchdog timer.<p>No use is made of the tuning features of the board; it is possible thatproper dynamic tuning would reduce or eliminate the receive overrunsthat occur when receiving under task control (instead of in the ISR).<p></blockquote><h4>TUNING HINTS</h4><blockquote><p>More receive buffers (than the default 20) could help by allowing moreloaning in cases of massive reception; four per receiving TCP connection plusfour extras should be considered a minimum.<p></blockquote><h4>SEE ALSO</h4><blockquote><p><b><a href="./if_elt.html#top">if_elt</a></b>, <b><a href="./ifLib.html#top">ifLib</a></b><hr><a name="eltattach"></a><p align=right><a href="rtnIndex.html"><i>Libraries : Routines</i></a></p></blockquote><h1><i>eltattach</i>( )</h1> <blockquote></a></blockquote><h4>NAME</h4><blockquote> <p><strong><i>eltattach</i>( )</strong> - publish the <b>elt</b> interface and initialize the driver and device</p></blockquote><h4>SYNOPSIS</h4><blockquote><p><pre>STATUS eltattach ( int unit, /* unit number */ int port, /* base I/O address */ int ivec, /* interrupt vector number */ int intLevel, /* interrupt level */ int nRxFrames, /* # of receive frames (0=default) */ int attachment, /* Ethernet connector to use */ char * ifName /* interface name */ )</pre></blockquote><h4>DESCRIPTION</h4><blockquote><p>The routine publishes the <b>elt</b> interface by filling in a network interfacerecord and adding this record to the system list. This routine alsoinitializes the driver and the device to the operational state.<p></blockquote><h4>RETURNS</h4><blockquote><p>OK or ERROR.<p></blockquote><h4>SEE ALSO</h4><blockquote><p><b><a href="./if_elt.html#top">if_elt</a></b>, <b><a href="./ifLib.html#top">ifLib</a></b><hr><a name="eltTxOutputStart"></a><p align=right><a href="rtnIndex.html"><i>Libraries : Routines</i></a></p></blockquote><h1><i>eltTxOutputStart</i>( )</h1> <blockquote></a></blockquote><h4>NAME</h4><blockquote> <p><strong><i>eltTxOutputStart</i>( )</strong> - start output on the board</p></blockquote><h4>SYNOPSIS</h4><blockquote><p><pre>#ifdef BSD43_DRIVER static void eltTxOutputStart ( int unit )</pre></blockquote><h4>DESCRIPTION</h4><blockquote><p>This routine is called from <b><i>ether_output</i>( )</b> when a new packet is enqueuedin the interface mbuf queue.<p>Note that this function is ALWAYS called between an <b><i>splnet</i>( )</b> and an <b><i>splx</i>( )</b>.This is true because <b><i><a href="./netLib.html#netTask">netTask</a></i>( )</b>, and <b><i>ether_output</i>( )</b> take care ofthis when calling this function. Therefore, no calls to these spl functionsare needed anywhere in this output thread.</blockquote><h4>SEE ALSO</h4><blockquote><p><b><a href="./if_elt.html#top">if_elt</a></b><hr><a name="eltShow"></a><p align=right><a href="rtnIndex.html"><i>Libraries : Routines</i></a></p></blockquote><h1><i>eltShow</i>( )</h1> <blockquote></a></blockquote><h4>NAME</h4><blockquote> <p><strong><i>eltShow</i>( )</strong> - display statistics for the 3C509 <b>elt</b> network interface</p></blockquote><h4>SYNOPSIS</h4><blockquote><p><pre>void eltShow ( int unit, /* interface unit */ BOOL zap /* 1 = zero totals */ )</pre></blockquote><h4>DESCRIPTION</h4><blockquote><p>This routine displays statistics about the <b>elt</b> Ethernet network interface.It has two parameters: <dl><dt><i>unit</i><dd>interface unit; should be 0.<p><dt><i>zap</i><dd> if 1, all collected statistics are cleared to zero. </dl><p></blockquote><h4>RETURNS</h4><blockquote><p>N/A</blockquote><h4>SEE ALSO</h4><blockquote><p><b><a href="./if_elt.html#top">if_elt</a></b></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -