Newer
Older
ubixos-old / doc / doxygen / html / lnc_8h-source.html
@CloudNine CloudNine on 28 Apr 2004 11 KB doxygen documentation added
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>Ubixos: lnc.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.3.3 -->
<h1>lnc.h</h1><div class="fragment"><pre>00001 <span class="preprocessor">#ifndef _LNC_H</span>
00002 <span class="preprocessor"></span><span class="preprocessor">#define _LNC_H</span>
00003 <span class="preprocessor"></span>
00004 <span class="preprocessor">#include &lt;ubixos/types.h&gt;</span>
00005 
00006 <span class="preprocessor">#define NDESC(len2) (1 &lt;&lt; len2)</span>
00007 <span class="preprocessor"></span><span class="preprocessor">#define NORMAL 0</span>
00008 <span class="preprocessor"></span><span class="preprocessor">#define MEM_SLEW 8</span>
00009 <span class="preprocessor"></span><span class="preprocessor">#define TRANSBUFSIZE 1518</span>
00010 <span class="preprocessor"></span><span class="preprocessor">#define RECVBUFSIZE 1518</span>
00011 <span class="preprocessor"></span><span class="preprocessor">#define NRDRE 3</span>
00012 <span class="preprocessor"></span><span class="preprocessor">#define NTDRE 3</span>
00013 <span class="preprocessor"></span><span class="preprocessor">#define    ETHER_ADDR_LEN          6</span>
00014 <span class="preprocessor"></span><span class="preprocessor">#define NE2100_IOSIZE  24</span>
00015 <span class="preprocessor"></span><span class="preprocessor">#define PCNET_RDP    0x10        </span><span class="comment">/* Register Data Port */</span>
00016 <span class="preprocessor">#define PCNET_RAP    0x12        </span><span class="comment">/* Register Address Port */</span>
00017 <span class="preprocessor">#define PCNET_RESET  0x14</span>
00018 <span class="preprocessor"></span><span class="preprocessor">#define PCNET_BDP    0x16</span>
00019 <span class="preprocessor"></span><span class="preprocessor">#define PCNET_VSW    0x18</span>
00020 <span class="preprocessor"></span><span class="preprocessor">#define NE2100          2</span>
00021 <span class="preprocessor"></span>
00022 <span class="comment">/* mem_mode values */</span>
00023 <span class="preprocessor">#define DMA_FIXED       1</span>
00024 <span class="preprocessor"></span><span class="preprocessor">#define DMA_MBUF        2</span>
00025 <span class="preprocessor"></span><span class="preprocessor">#define SHMEM           4</span>
00026 <span class="preprocessor"></span>
00027 
00028 <span class="comment">/********** Chip Types **********/</span>
00029 <span class="preprocessor">#define UNKNOWN         0        </span><span class="comment">/* Unknown  */</span>
00030 <span class="preprocessor">#define LANCE           1        </span><span class="comment">/* Am7990   */</span>
00031 <span class="preprocessor">#define C_LANCE         2        </span><span class="comment">/* Am79C90  */</span>
00032 <span class="preprocessor">#define PCnet_ISA       3        </span><span class="comment">/* Am79C960 */</span>
00033 <span class="preprocessor">#define PCnet_ISAplus   4        </span><span class="comment">/* Am79C961 */</span>
00034 <span class="preprocessor">#define PCnet_ISA_II    5        </span><span class="comment">/* Am79C961A */</span>
00035 <span class="preprocessor">#define PCnet_32        6        </span><span class="comment">/* Am79C965 */</span>
00036 <span class="preprocessor">#define PCnet_PCI       7        </span><span class="comment">/* Am79C970 */</span>
00037 <span class="preprocessor">#define PCnet_PCI_II    8        </span><span class="comment">/* Am79C970A */</span>
00038 <span class="preprocessor">#define PCnet_FAST      9        </span><span class="comment">/* Am79C971 */</span>
00039 <span class="preprocessor">#define PCnet_FASTplus  10       </span><span class="comment">/* Am79C972 */</span>
00040 <span class="preprocessor">#define PCnet_Home      11       </span><span class="comment">/* Am79C978 */</span>
00041 
00042 <span class="comment">/******** AM7990 Specifics **************/</span>
00043 <span class="preprocessor">#define CSR0    0x0000</span>
00044 <span class="preprocessor"></span><span class="preprocessor">#define CSR1    1</span>
00045 <span class="preprocessor"></span><span class="preprocessor">#define CSR2    2</span>
00046 <span class="preprocessor"></span><span class="preprocessor">#define CSR3    3</span>
00047 <span class="preprocessor"></span><span class="preprocessor">#define CSR88   88</span>
00048 <span class="preprocessor"></span><span class="preprocessor">#define CSR89   89</span>
00049 <span class="preprocessor"></span>
00050 <span class="preprocessor">#define ERR     0x8000</span>
00051 <span class="preprocessor"></span><span class="preprocessor">#define BABL    0x4000</span>
00052 <span class="preprocessor"></span><span class="preprocessor">#define CERR    0x2000</span>
00053 <span class="preprocessor"></span><span class="preprocessor">#define MISS    0x1000</span>
00054 <span class="preprocessor"></span><span class="preprocessor">#define MERR    0x0800</span>
00055 <span class="preprocessor"></span><span class="preprocessor">#define RINT    0x0400</span>
00056 <span class="preprocessor"></span><span class="preprocessor">#define TINT    0x0200</span>
00057 <span class="preprocessor"></span><span class="preprocessor">#define IDON    0x0100</span>
00058 <span class="preprocessor"></span><span class="preprocessor">#define INTR    0x0080</span>
00059 <span class="preprocessor"></span><span class="preprocessor">#define INEA    0x0040</span>
00060 <span class="preprocessor"></span><span class="preprocessor">#define RXON    0x0020</span>
00061 <span class="preprocessor"></span><span class="preprocessor">#define TXON    0x0010</span>
00062 <span class="preprocessor"></span><span class="preprocessor">#define TDMD    0x0008</span>
00063 <span class="preprocessor"></span><span class="preprocessor">#define STOP    0x0004</span>
00064 <span class="preprocessor"></span><span class="preprocessor">#define STRT    0x0002</span>
00065 <span class="preprocessor"></span><span class="preprocessor">#define INIT    0x0001</span>
00066 <span class="preprocessor"></span>
00067 
00068 <span class="comment">/* CSR88-89: Chip ID masks */</span>
00069 <span class="preprocessor">#define AMD_MASK  0x003</span>
00070 <span class="preprocessor"></span><span class="preprocessor">#define PART_MASK 0xffff</span>
00071 <span class="preprocessor"></span><span class="preprocessor">#define Am79C960  0x0003</span>
00072 <span class="preprocessor"></span><span class="preprocessor">#define Am79C961  0x2260</span>
00073 <span class="preprocessor"></span><span class="preprocessor">#define Am79C961A 0x2261</span>
00074 <span class="preprocessor"></span><span class="preprocessor">#define Am79C965  0x2430</span>
00075 <span class="preprocessor"></span><span class="preprocessor">#define Am79C970  0x0242</span>
00076 <span class="preprocessor"></span><span class="preprocessor">#define Am79C970A 0x2621</span>
00077 <span class="preprocessor"></span><span class="preprocessor">#define Am79C971  0x2623</span>
00078 <span class="preprocessor"></span><span class="preprocessor">#define Am79C972  0x2624</span>
00079 <span class="preprocessor"></span><span class="preprocessor">#define Am79C973  0x2625</span>
00080 <span class="preprocessor"></span><span class="preprocessor">#define Am79C978  0x2626</span>
00081 <span class="preprocessor"></span>
00082 <span class="comment">/********** Structs **********/</span>
00083 
00084 
00085 
00086 
00087 <span class="keyword">struct </span>initBlock {
00088   uInt16 mode;           <span class="comment">/* Mode register                        */</span>
00089   uInt8  padr[6];        <span class="comment">/* Ethernet address                     */</span>
00090   uInt8  ladrf[8];       <span class="comment">/* Logical address filter (multicast)   */</span>
00091   uInt16 rdra;           <span class="comment">/* Low order pointer to receive ring    */</span>
00092   uInt16 rlen;           <span class="comment">/* High order pointer and no. rings     */</span>
00093   uInt16 tdra;           <span class="comment">/* Low order pointer to transmit ring   */</span>
00094   uInt16 tlen;           <span class="comment">/* High order pointer and no rings      */</span>
00095   };
00096 
00097 <span class="keyword">struct </span>mds {
00098   uInt16 md0;
00099   uInt16 md1;
00100   <span class="keywordtype">short</span>  md2;
00101   uInt16 md3;
00102   };
00103 
00104 <span class="keyword">struct </span>hostRingEntry {
00105   <span class="keyword">struct </span>mds *md;
00106   <span class="keyword">union </span>{
00107     <span class="comment">//struct mbuf *mbuf;</span>
00108     <span class="keywordtype">char</span> *data;
00109     }buff;
00110   };
00111 
00112 <span class="keyword">struct </span>arpcom {
00113   <span class="comment">//struct  ifnet ac_if;            /* network-visible interface */</span>
00114   uInt8  ac_enaddr[6];           <span class="comment">/* ethernet hardware address */</span>
00115   <span class="keywordtype">int</span>    ac_multicnt;            <span class="comment">/* length of ac_multiaddrs list */</span>
00116   <span class="keywordtype">void</span>   *ac_netgraph;           <span class="comment">/* ng_ether(4) netgraph node info */</span>
00117   };
00118 
00119 <span class="keyword">struct </span>nicInfo {
00120   <span class="keywordtype">int</span> ident;         <span class="comment">/* Type of card */</span>
00121   <span class="keywordtype">int</span> ic;            <span class="comment">/* Type of ic, Am7990, Am79C960 etc. */</span>
00122   <span class="keywordtype">int</span> memMode;
00123   <span class="keywordtype">int</span> iobase;
00124   <span class="keywordtype">int</span> mode;          <span class="comment">/* Mode setting at initialization */</span>
00125   };
00126 
00127 <span class="keyword">struct </span>lncInfo {
00128   <span class="keyword">struct </span>arpcom        arpcom;
00129   <span class="keyword">struct </span>nicInfo       nic;
00130   <span class="keyword">struct </span>hostRingEntry *recvRing;
00131   <span class="keyword">struct </span>hostRingEntry *transRings;
00132   <span class="keyword">struct </span>initBlock     *initBloack;
00133   <span class="keywordtype">int</span>                  rap;
00134   <span class="keywordtype">int</span>                  rdp;
00135   <span class="keywordtype">int</span>                  bdp;
00136   <span class="keywordtype">int</span>                  nrdre;
00137   <span class="keywordtype">int</span>                  ntdre;
00138   };
00139 
00140 <span class="keyword">extern</span> <span class="keyword">struct </span>lncInfo *lnc;
00141 
00142 <span class="keywordtype">void</span> writeCsr(<span class="keyword">struct</span> lncInfo *lnc, uInt16 port, uInt16 val);
00143 uInt16 readCsr(<span class="keyword">struct</span> lncInfo *lnc, uInt16 port);
00144 <span class="keywordtype">void</span> writeBcr(<span class="keyword">struct</span> lncInfo *lnc, uInt16 port, uInt16 val);
00145 uInt16 readBcr(<span class="keyword">struct</span> lncInfo *lnc, uInt16 port);
00146 
00147 <span class="keywordtype">void</span> initLNC();
00148 <span class="keywordtype">int</span> probe(<span class="keyword">struct</span> lncInfo *lnc);
00149 <span class="keywordtype">int</span> lanceProbe(<span class="keyword">struct</span> lncInfo *lnc);
00150 <span class="keywordtype">int</span> lncAttach(<span class="keyword">struct</span> lncInfo *lnc,<span class="keywordtype">int</span> unit);
00151 
00152 
00153 <span class="keywordtype">void</span> lncInt();
00154 <span class="keywordtype">void</span> _lncInt();
00155 
00156 <span class="preprocessor">#endif</span>
00157 <span class="preprocessor"></span>
</pre></div><hr size="1"><address style="align: right;"><small>Generated on Wed Apr 28 17:49:37 2004 for Ubixos by
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border=0 > 
</a>1.3.3 </small></address>
</body>
</html>