45#define KUE_CMD_GET_ETHER_DESCRIPTOR 0x00
46#define KUE_CMD_SET_MCAST_FILTERS 0x01
47#define KUE_CMD_SET_PKT_FILTER 0x02
48#define KUE_CMD_GET_ETHERSTATS 0x03
49#define KUE_CMD_GET_GPIO 0x04
50#define KUE_CMD_SET_GPIO 0x05
51#define KUE_CMD_SET_MAC 0x06
52#define KUE_CMD_GET_MAC 0x07
53#define KUE_CMD_SET_URB_SIZE 0x08
54#define KUE_CMD_SET_SOFS 0x09
55#define KUE_CMD_SET_EVEN_PKTS 0x0A
56#define KUE_CMD_SEND_SCAN 0xFF
69#define KUE_ETHERSTATS(x) UGETDW((x)->sc_desc.kue_etherstats)
70#define KUE_MAXSEG(x) UGETW((x)->sc_desc.kue_maxseg)
71#define KUE_MCFILTCNT(x) (UGETW((x)->sc_desc.kue_mcastfilt) & 0x7FFF)
72#define KUE_MCFILT(x, y) \
73 (char *)&(sc->sc_mcfilters[y * ETHER_ADDR_LEN])
75#define KUE_STAT_TX_OK 0x00000001
76#define KUE_STAT_RX_OK 0x00000002
77#define KUE_STAT_TX_ERR 0x00000004
78#define KUE_STAT_RX_ERR 0x00000008
79#define KUE_STAT_RX_NOBUF 0x00000010
80#define KUE_STAT_TX_UCAST_BYTES 0x00000020
81#define KUE_STAT_TX_UCAST_FRAMES 0x00000040
82#define KUE_STAT_TX_MCAST_BYTES 0x00000080
83#define KUE_STAT_TX_MCAST_FRAMES 0x00000100
84#define KUE_STAT_TX_BCAST_BYTES 0x00000200
85#define KUE_STAT_TX_BCAST_FRAMES 0x00000400
86#define KUE_STAT_RX_UCAST_BYTES 0x00000800
87#define KUE_STAT_RX_UCAST_FRAMES 0x00001000
88#define KUE_STAT_RX_MCAST_BYTES 0x00002000
89#define KUE_STAT_RX_MCAST_FRAMES 0x00004000
90#define KUE_STAT_RX_BCAST_BYTES 0x00008000
91#define KUE_STAT_RX_BCAST_FRAMES 0x00010000
92#define KUE_STAT_RX_CRCERR 0x00020000
93#define KUE_STAT_TX_QUEUE_LENGTH 0x00040000
94#define KUE_STAT_RX_ALIGNERR 0x00080000
95#define KUE_STAT_TX_SINGLECOLL 0x00100000
96#define KUE_STAT_TX_MULTICOLL 0x00200000
97#define KUE_STAT_TX_DEFERRED 0x00400000
98#define KUE_STAT_TX_MAXCOLLS 0x00800000
99#define KUE_STAT_RX_OVERRUN 0x01000000
100#define KUE_STAT_TX_UNDERRUN 0x02000000
101#define KUE_STAT_TX_SQE_ERR 0x04000000
102#define KUE_STAT_TX_CARRLOSS 0x08000000
103#define KUE_STAT_RX_LATECOLL 0x10000000
105#define KUE_RXFILT_PROMISC 0x0001
106#define KUE_RXFILT_ALLMULTI 0x0002
107#define KUE_RXFILT_UNICAST 0x0004
108#define KUE_RXFILT_BROADCAST 0x0008
109#define KUE_RXFILT_MULTICAST 0x0010
111#define KUE_TIMEOUT 1000
112#define KUE_MIN_FRAMELEN 60
114#define KUE_CTL_READ 0x01
115#define KUE_CTL_WRITE 0x02
117#define KUE_CONFIG_IDX 0
118#define KUE_IFACE_IDX 0
121#define KUE_ENDPT_MAX 4
136#define KUE_FLAG_LINK 0x0001
141#define KUE_LOCK(_sc) mtx_lock(&(_sc)->sc_mtx)
142#define KUE_UNLOCK(_sc) mtx_unlock(&(_sc)->sc_mtx)
143#define KUE_LOCK_ASSERT(_sc, t) mtx_assert(&(_sc)->sc_mtx, t)
struct kue_ether_desc __packed
uint8_t kue_macaddr[ETHER_ADDR_LEN]
uint8_t kue_etherstats[4]
struct kue_ether_desc sc_desc
struct usb_xfer * sc_xfer[KUE_N_TRANSFER]