32 lines
543 B
C
32 lines
543 B
C
struct GTeth_desc
|
|
{
|
|
unsigned ed_cmdsts;
|
|
};
|
|
struct GTeth_softc
|
|
{
|
|
struct GTeth_desc txq_desc[32];
|
|
unsigned int txq_fi;
|
|
unsigned int txq_nactive;
|
|
};
|
|
|
|
void
|
|
GTeth_txq_free (struct GTeth_softc *sc)
|
|
{
|
|
struct GTeth_desc *txd = &sc->txq_desc[0];
|
|
txd->ed_cmdsts &= ~(1U << (31));
|
|
}
|
|
void
|
|
GTeth_txq_done (struct GTeth_softc *sc)
|
|
{
|
|
while (sc->txq_nactive > 0)
|
|
{
|
|
volatile struct GTeth_desc *txd = &sc->txq_desc[sc->txq_fi];
|
|
if (txd->ed_cmdsts)
|
|
{
|
|
if (sc->txq_nactive == 1)
|
|
return;
|
|
}
|
|
GTeth_txq_free (sc);
|
|
}
|
|
}
|