Rx_list
static int tl_add_RxBuff(tl_softc_t *, struct Rx_list *, struct mbuf *);
tl_add_RxBuff(tl_softc_t *sc, struct Rx_list *Rx, struct mbuf *oldm)
sc->Rx_list = NULL;
if (sc->Rx_list) {
if (sc->Rx_list[i].m) {
sc->Rx_list[i].m_dmamap);
m_freem(sc->Rx_list[i].m);
sc->Rx_list[i].m_dmamap);
sc->Rx_list[i].m = NULL;
free(sc->Rx_list, M_DEVBUF);
sc->Rx_list = NULL;
sc->Rx_list = malloc(sizeof(struct Rx_list) * TL_NBUF, M_DEVBUF,
if (sc->Rx_list == NULL || sc->Tx_list == NULL) {
&sc->Rx_list[i].m_dmamap);
sc->Rx_list[i].hw_list = &sc->hw_Rx_list[i];
sc->Rx_list[i].hw_listaddr = sc->Rx_dmamap->dm_segs[0].ds_addr
if (tl_add_RxBuff(sc, &sc->Rx_list[i], NULL) == 0) {
sc->Rx_list[i - 1].next = &sc->Rx_list[i];
htole32(sc->Rx_list[i].hw_listaddr);
sc->Rx_list[TL_NBUF - 1].next = NULL;
sc->active_Rx = &sc->Rx_list[0];
sc->last_Rx = &sc->Rx_list[TL_NBUF - 1];
TL_HR_WRITE(sc, TL_HOST_CH_PARM, sc->Rx_list[0].hw_listaddr);
struct Rx_list *Rx;
struct Rx_list *next;
struct Rx_list *Rx_list; /* Receive and transmit lists */
struct Rx_list *active_Rx, *last_Rx;