Lines Matching defs:sip_softc
202 struct sip_softc { struct
203 device_t sc_dev; /* generic device information */
204 device_suspensor_t sc_suspensor;
205 pmf_qual_t sc_qual;
207 bus_space_tag_t sc_st; /* bus space tag */
208 bus_space_handle_t sc_sh; /* bus space handle */
209 bus_size_t sc_sz; /* bus space size */
210 bus_dma_tag_t sc_dmat; /* bus DMA tag */
211 pci_chipset_tag_t sc_pc;
212 bus_dma_segment_t sc_seg;
213 struct ethercom sc_ethercom; /* ethernet common data */
215 const struct sip_product *sc_model; /* which model are we? */
216 bool sc_gigabit; /* 1: 83820, 0: other */
217 bool sc_dma64; /* using 64-bit DMA addresses */
218 int sc_rev; /* chip revision */
220 unsigned int sc_bufptr_idx;
221 unsigned int sc_cmdsts_idx;
222 unsigned int sc_extsts_idx; /* DP83820 only */
224 void *sc_ih; /* interrupt cookie */
226 struct mii_data sc_mii; /* MII/media information */
228 callout_t sc_tick_ch; /* tick callout */
230 bus_dmamap_t sc_cddmamap; /* control data DMA map */
236 struct sip_txsoft sc_txsoft[SIP_TXQUEUELEN];
237 struct sip_rxsoft sc_rxsoft[MAX_SIP_NRXDESC];
242 struct sip_control_data *sc_control_data;
250 struct evcnt sc_ev_txdstall; /* Tx stalled due to no txd */
251 struct evcnt sc_ev_txforceintr; /* Tx interrupts forced */
252 struct evcnt sc_ev_txdintr; /* Tx descriptor interrupts */
253 struct evcnt sc_ev_txiintr; /* Tx idle interrupts */
254 struct evcnt sc_ev_rxintr; /* Rx interrupts */
255 struct evcnt sc_ev_hiberr; /* HIBERR interrupts */
256 struct evcnt sc_ev_rxpause; /* PAUSE received */
258 struct evcnt sc_ev_txpause; /* PAUSE transmitted */
259 struct evcnt sc_ev_rxipsum; /* IP checksums checked in-bound */
260 struct evcnt sc_ev_rxtcpsum; /* TCP checksums checked in-bound */
261 struct evcnt sc_ev_rxudpsum; /* UDP checksums checked in-bound */
262 struct evcnt sc_ev_txipsum; /* IP checksums comp. out-bound */
263 struct evcnt sc_ev_txtcpsum; /* TCP checksums comp. out-bound */
264 struct evcnt sc_ev_txudpsum; /* UDP checksums comp. out-bound */
267 uint32_t sc_txcfg; /* prototype TXCFG register */
268 uint32_t sc_rxcfg; /* prototype RXCFG register */
269 uint32_t sc_imr; /* prototype IMR register */
270 uint32_t sc_rfcr; /* prototype RFCR register */
272 uint32_t sc_cfg; /* prototype CFG register */
274 uint32_t sc_gpior; /* prototype GPIOR register */
276 uint32_t sc_tx_fill_thresh; /* transmit fill threshold */
277 uint32_t sc_tx_drain_thresh; /* transmit drain threshold */
279 uint32_t sc_rx_drain_thresh; /* receive drain threshold */
281 int sc_flowflags; /* 802.3x flow control flags */
282 int sc_rx_flow_thresh; /* Rx FIFO threshold for flow control */
283 int sc_paused; /* paused indication */
285 int sc_txfree; /* number of free Tx descriptors */
286 int sc_txnext; /* next ready Tx descriptor */
287 int sc_txwin; /* Tx descriptors since last intr */
289 struct sip_txsq sc_txfreeq; /* free Tx descsofts */
290 struct sip_txsq sc_txdirtyq; /* dirty Tx descsofts */
293 struct {
300 } sc_prev;
302 u_short sc_if_flags;
304 int sc_rxptr; /* next ready Rx descriptor/descsoft */
305 int sc_rxdiscard;
306 int sc_rxlen;
307 struct mbuf *sc_rxhead;
308 struct mbuf *sc_rxtail;
309 struct mbuf **sc_rxtailp;
311 int sc_ntxdesc;
312 int sc_ntxdesc_mask;
314 int sc_nrxdesc_mask;
316 const struct sip_parm {
358 void (*sc_rxintr)(struct sip_softc *); argument
360 krndsource_t rnd_source; /* random source */