Annotation of sys/dev/pci/if_nfevar.h, Revision 1.1.1.1
1.1 nbrk 1: /* $OpenBSD: if_nfevar.h,v 1.11 2006/02/19 13:57:02 damien Exp $ */
2:
3: /*-
4: * Copyright (c) 2005 Jonathan Gray <jsg@openbsd.org>
5: *
6: * Permission to use, copy, modify, and distribute this software for any
7: * purpose with or without fee is hereby granted, provided that the above
8: * copyright notice and this permission notice appear in all copies.
9: *
10: * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11: * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12: * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13: * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14: * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15: * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16: * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17: */
18:
19: #define NFE_IFQ_MAXLEN 64
20:
21: struct nfe_tx_data {
22: bus_dmamap_t map;
23: bus_dmamap_t active;
24: struct mbuf *m;
25: };
26:
27: struct nfe_tx_ring {
28: bus_dmamap_t map;
29: bus_dma_segment_t seg;
30: bus_addr_t physaddr;
31: struct nfe_desc32 *desc32;
32: struct nfe_desc64 *desc64;
33: struct nfe_tx_data data[NFE_TX_RING_COUNT];
34: int queued;
35: int cur;
36: int next;
37: };
38:
39: struct nfe_jbuf {
40: caddr_t buf;
41: bus_addr_t physaddr;
42: SLIST_ENTRY(nfe_jbuf) jnext;
43: };
44:
45: struct nfe_rx_data {
46: bus_dmamap_t map;
47: struct mbuf *m;
48: };
49:
50: struct nfe_rx_ring {
51: bus_dmamap_t map;
52: bus_dma_segment_t seg;
53: bus_dmamap_t jmap;
54: bus_dma_segment_t jseg;
55: bus_addr_t physaddr;
56: struct nfe_desc32 *desc32;
57: struct nfe_desc64 *desc64;
58: caddr_t jpool;
59: struct nfe_rx_data data[NFE_RX_RING_COUNT];
60: struct nfe_jbuf jbuf[NFE_JPOOL_COUNT];
61: SLIST_HEAD(, nfe_jbuf) jfreelist;
62: int bufsz;
63: int cur;
64: int next;
65: };
66:
67: struct nfe_softc {
68: struct device sc_dev;
69: struct arpcom sc_arpcom;
70: bus_space_handle_t sc_memh;
71: bus_space_tag_t sc_memt;
72: void *sc_ih;
73: bus_dma_tag_t sc_dmat;
74: struct mii_data sc_mii;
75: struct timeout sc_tick_ch;
76: void *sc_powerhook;
77:
78: int sc_if_flags;
79: u_int sc_flags;
80: #define NFE_JUMBO_SUP 0x01
81: #define NFE_40BIT_ADDR 0x02
82: #define NFE_HW_CSUM 0x04
83: #define NFE_HW_VLAN 0x08
84: #define NFE_USE_JUMBO 0x10
85:
86: uint32_t rxtxctl;
87: uint8_t mii_phyaddr;
88:
89: struct nfe_tx_ring txq;
90: struct nfe_rx_ring rxq;
91: };
CVSweb