]> CyberLeo.Net >> Repos - FreeBSD/releng/7.2.git/blob - sys/dev/ie/if_ievar.h
Create releng/7.2 from stable/7 in preparation for 7.2-RELEASE.
[FreeBSD/releng/7.2.git] / sys / dev / ie / if_ievar.h
1 /*-
2  * $FreeBSD$
3  */
4
5 enum ie_hardware {
6         IE_NONE,
7         IE_STARLAN10,
8         IE_EN100,
9         IE_SLFIBER,
10         IE_3C507,
11         IE_NI5210,
12         IE_EE16,
13         IE_UNKNOWN
14 };
15
16 /*
17  * Ethernet status, per interface.
18  */
19 struct ie_softc {
20         struct   ifnet *ifp;
21         void     (*ie_reset_586) (struct ie_softc *);
22         void     (*ie_chan_attn) (struct ie_softc *);
23         enum     ie_hardware hard_type;
24         int      hard_vers;
25         int      unit;
26         u_char   enaddr[6];
27
28         device_t                dev;
29
30         struct resource *       io_res;
31         int                     io_rid;
32         bus_space_tag_t         io_bt;
33         bus_space_handle_t      io_bh;
34
35         struct resource *       irq_res;
36         int                     irq_rid;
37         void *                  irq_ih;
38
39         struct resource *       mem_res;
40         int                     mem_rid;
41         bus_space_tag_t         mem_bt;
42         bus_space_handle_t      mem_bh;
43
44         u_int    port;          /* i/o base address for this interface */
45         caddr_t  iomem;         /* memory size */
46         caddr_t  iomembot;      /* memory base address */
47         unsigned iosize;
48         int      bus_use;       /* 0 means 16bit, 1 means 8 bit adapter */
49
50         int      want_mcsetup;
51         int      promisc;
52         int      nframes;
53         int      nrxbufs;
54         int      ntxbufs;
55         volatile struct ie_int_sys_conf_ptr *iscp;
56         volatile struct ie_sys_ctl_block *scb;
57         volatile struct ie_recv_frame_desc **rframes;   /* nframes worth */
58         volatile struct ie_recv_buf_desc **rbuffs;      /* nrxbufs worth */
59         volatile u_char **cbuffs;                       /* nrxbufs worth */
60         int      rfhead, rftail, rbhead, rbtail;
61
62         volatile struct ie_xmit_cmd **xmit_cmds;        /* ntxbufs worth */
63         volatile struct ie_xmit_buf **xmit_buffs;       /* ntxbufs worth */
64         volatile u_char  **xmit_cbuffs;                 /* ntxbufs worth */
65         int      xmit_count;
66
67         struct   ie_en_addr mcast_addrs[MAXMCAST + 1];
68         int      mcast_count;
69
70         u_short  irq_encoded;   /* encoded interrupt on IEE16 */
71 };
72 #define PORT(sc)        sc->port
73 #define MEM(sc)         sc->iomem
74
75 void            ie_intr                 (void *);
76 int             ie_alloc_resources      (device_t);
77 void            ie_release_resources    (device_t);
78 int             ie_attach               (device_t);
79 int             ie_detach               (device_t);
80
81 void            el_reset_586            (struct ie_softc *);
82 void            el_chan_attn            (struct ie_softc *);
83
84 void            sl_reset_586            (struct ie_softc *);
85 void            sl_chan_attn            (struct ie_softc *);
86
87 void            ee16_reset_586          (struct ie_softc *);
88 void            ee16_chan_attn          (struct ie_softc *);
89
90 void            sl_read_ether           (struct ie_softc *, unsigned char *);
91 int             check_ie_present        (struct ie_softc *);
92