📄 wlc_pio.h
字号:
/* * HND d11 PIO module * Broadcom 802.11abg Networking Device Driver * * Copyright 2005-2006, Broadcom Corporation * All Rights Reserved. * * THIS SOFTWARE IS OFFERED "AS IS", AND BROADCOM GRANTS NO WARRANTIES OF ANY * KIND, EXPRESS OR IMPLIED, BY STATUTE, COMMUNICATION OR OTHERWISE. BROADCOM * SPECIFICALLY DISCLAIMS ANY IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS * FOR A SPECIFIC PURPOSE OR NONINFRINGEMENT CONCERNING THIS SOFTWARE. * * $Id$ */#ifndef _wlc_pio_h_#define _wlc_pio_h_typedef struct pios pio_t;/* pio callback functions */typedef int (*pio_detach_t)(pio_t *pio);typedef int (*pio_reset_t)(pio_t *pio);typedef int (*pio_init_t)(pio_t *pio);typedef int (*pio_txsuspend_t)(pio_t *pio);typedef bool (*pio_txsuspended_t)(pio_t *pio);typedef int (*pio_txresume_t)(pio_t *pio);typedef bool (*pio_txavailable_t)(pio_t *pio, uint len, uint nfrags);typedef bool (*pio_rxfrmrdy_t)(pio_t *pio);typedef int (*pio_cntupd_t)(pio_t *pio, uint len);typedef char* (*pio_dump_t)(pio_t *pio, char *buf);typedef int (*pio_txfifodepthset_t)(pio_t *pio, uint len);typedef uint (*pio_txfifodepthget_t)(pio_t *pio);typedef void* (*pio_getnexttxp_t)(pio_t *pio);typedef void* (*pio_txreclaim_t)(pio_t *pio);typedef int (*pio_tx_t)(pio_t *pio, void *p0);typedef void* (*pio_rx_t)(pio_t *pio);/* pio opsvec */typedef struct piof_s { pio_reset_t reset; pio_init_t init; pio_rx_t rx; pio_tx_t tx; pio_txsuspend_t txsuspend; pio_txsuspended_t txsuspended; pio_txresume_t txresume; pio_rxfrmrdy_t rxfrmrdy; pio_txavailable_t txavailable; pio_cntupd_t cntupd; pio_dump_t dump; pio_txfifodepthset_t txdepthset; pio_txfifodepthget_t txdepthget; pio_getnexttxp_t nexttxp; pio_txreclaim_t txreclaim; pio_detach_t detach;}piof_t;struct pios { piof_t pio_fn; /* pio mode function pointers */};/* forward declaration */struct wlc_info;#ifdef WLPIOextern pio_t* wlc_pio_attach(wlc_pub_t *pub, struct wlc_info *wlc, uint fifo, void *txreg, void *rxreg);/* below function needs to be called after pio_attach to avoid overriden by default */extern void wlc_pio_register_fn(pio_t *pio, piof_t *fn);#define wlc_pio_detach(pio) ((pio)->pio_fn.detach(pio))#define wlc_pio_init(pio) ((pio)->pio_fn.init(pio))#define wlc_pio_reset(pio) ((pio)->pio_fn.reset(pio))#define wlc_pio_txsuspend(pio) ((pio)->pio_fn.txsuspend(pio))#define wlc_pio_txsuspended(pio) ((pio)->pio_fn.txsuspended(pio))#define wlc_pio_txresume(pio) ((pio)->pio_fn.txresume(pio))#define wlc_pio_rxfrmrdy(pio) ((pio)->pio_fn.rxfrmrdy(pio))#define wlc_pio_cntupd(pio, len) ((pio)->pio_fn.cntupd(pio, len))#define wlc_pio_dump(pio, buf) ((pio)->pio_fn.dump(pio, buf))#define wlc_pio_txdepthset(pio, len) ((pio)->pio_fn.txdepthset(pio, len))#define wlc_pio_txdepthget(pio) ((pio)->pio_fn.txdepthget(pio))#define wlc_pio_getnexttxp(pio) ((pio)->pio_fn.nexttxp(pio))#define wlc_pio_txreclaim(pio) ((pio)->pio_fn.txreclaim(pio))#define wlc_pio_txavailable(pio, len, frags) ((pio)->pio_fn.txavailable(pio, len, frags))#define wlc_pio_tx(pio, p0) ((pio)->pio_fn.tx(pio, p0))#define wlc_pio_rx(pio) ((pio)->pio_fn.rx(pio))#else#define wlc_pio_attach(pub, wlc, fifo, txreg, rxreg) (NULL)#define wlc_pio_register_fn(pio, fn) ASSERT(0)#define wlc_pio_detach(pio) ASSERT(0)#define wlc_pio_init(pio) ASSERT(0)#define wlc_pio_reset(pio) ASSERT(0)#define wlc_pio_txsuspend(pio) ASSERT(0)#define wlc_pio_txsuspended(pio) (FALSE)#define wlc_pio_txresume(pio) ASSERT(0)#define wlc_pio_txavailable(pio, l, f) (FALSE)#define wlc_pio_rxfrmrdy(pio) (FALSE)#define wlc_pio_cntupd(pio, len) ASSERT(0)#define wlc_pio_dump(pio, buf) (buf)#define wlc_pio_txdepthset(pio, len) ASSERT(0)#define wlc_pio_txdepthget(pio) (999)#define wlc_pio_getnexttxp(pio) (NULL)#define wlc_pio_txreclaim(pio) ASSERT(0)#define wlc_pio_tx(pio, p0) ASSERT(0)#define wlc_pio_rx(pio) (NULL)#endif /* WLPIO */#endif /* _wlc_pio_h_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -