drivers/net/wireless/realtek/rtw88/hci.h
Source file repositories/reference/linux-study-clean/drivers/net/wireless/realtek/rtw88/hci.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/wireless/realtek/rtw88/hci.h- Extension
.h- Size
- 6864 bytes
- Lines
- 290
- Domain
- Driver Families
- Bucket
- drivers/net
- Inferred role
- Driver Families: implementation source
- Status
- source implementation candidate
Why This File Exists
Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
- No C-style include directives detected by the generator.
Detected Declarations
struct rtw_hci_opsfunction rtw_hci_tx_writefunction rtw_hci_tx_kick_offfunction rtw_hci_setupfunction rtw_hci_startfunction rtw_hci_stopfunction rtw_hci_deep_psfunction rtw_hci_link_psfunction rtw_hci_interface_cfgfunction rtw_hci_dynamic_rx_aggfunction rtw_hci_write_firmware_pagefunction rtw_hci_write_data_rsvd_pagefunction rtw_hci_write_data_h2cfunction rtw_read8function rtw_read16function rtw_read32function rtw_write8function rtw_write16function rtw_write32function rtw_write8_setfunction rtw_write16_setfunction rtw_write32_setfunction rtw_write8_clrfunction rtw_write16_clrfunction rtw_write32_clrfunction rtw_read_rffunction rtw_write_rffunction rtw_read32_maskfunction rtw_read16_maskfunction rtw_read8_maskfunction rtw_write32_maskfunction rtw_write8_maskfunction rtw_hci_typefunction rtw_hci_flush_queuesfunction rtw_hci_flush_all_queues
Annotated Snippet
struct rtw_hci_ops {
int (*tx_write)(struct rtw_dev *rtwdev,
struct rtw_tx_pkt_info *pkt_info,
struct sk_buff *skb);
void (*tx_kick_off)(struct rtw_dev *rtwdev);
void (*flush_queues)(struct rtw_dev *rtwdev, u32 queues, bool drop);
int (*setup)(struct rtw_dev *rtwdev);
int (*start)(struct rtw_dev *rtwdev);
void (*stop)(struct rtw_dev *rtwdev);
void (*deep_ps)(struct rtw_dev *rtwdev, bool enter);
void (*link_ps)(struct rtw_dev *rtwdev, bool enter);
void (*interface_cfg)(struct rtw_dev *rtwdev);
void (*dynamic_rx_agg)(struct rtw_dev *rtwdev, bool enable);
void (*write_firmware_page)(struct rtw_dev *rtwdev, u32 page,
const u8 *data, u32 size);
int (*write_data_rsvd_page)(struct rtw_dev *rtwdev, u8 *buf, u32 size);
int (*write_data_h2c)(struct rtw_dev *rtwdev, u8 *buf, u32 size);
u8 (*read8)(struct rtw_dev *rtwdev, u32 addr);
u16 (*read16)(struct rtw_dev *rtwdev, u32 addr);
u32 (*read32)(struct rtw_dev *rtwdev, u32 addr);
void (*write8)(struct rtw_dev *rtwdev, u32 addr, u8 val);
void (*write16)(struct rtw_dev *rtwdev, u32 addr, u16 val);
void (*write32)(struct rtw_dev *rtwdev, u32 addr, u32 val);
};
static inline int rtw_hci_tx_write(struct rtw_dev *rtwdev,
struct rtw_tx_pkt_info *pkt_info,
struct sk_buff *skb)
{
return rtwdev->hci.ops->tx_write(rtwdev, pkt_info, skb);
}
static inline void rtw_hci_tx_kick_off(struct rtw_dev *rtwdev)
{
return rtwdev->hci.ops->tx_kick_off(rtwdev);
}
static inline int rtw_hci_setup(struct rtw_dev *rtwdev)
{
return rtwdev->hci.ops->setup(rtwdev);
}
static inline int rtw_hci_start(struct rtw_dev *rtwdev)
{
return rtwdev->hci.ops->start(rtwdev);
}
static inline void rtw_hci_stop(struct rtw_dev *rtwdev)
{
rtwdev->hci.ops->stop(rtwdev);
}
static inline void rtw_hci_deep_ps(struct rtw_dev *rtwdev, bool enter)
{
rtwdev->hci.ops->deep_ps(rtwdev, enter);
}
static inline void rtw_hci_link_ps(struct rtw_dev *rtwdev, bool enter)
{
rtwdev->hci.ops->link_ps(rtwdev, enter);
}
static inline void rtw_hci_interface_cfg(struct rtw_dev *rtwdev)
{
rtwdev->hci.ops->interface_cfg(rtwdev);
}
static inline void rtw_hci_dynamic_rx_agg(struct rtw_dev *rtwdev, bool enable)
{
if (rtwdev->hci.ops->dynamic_rx_agg)
rtwdev->hci.ops->dynamic_rx_agg(rtwdev, enable);
}
static inline void rtw_hci_write_firmware_page(struct rtw_dev *rtwdev, u32 page,
const u8 *data, u32 size)
{
rtwdev->hci.ops->write_firmware_page(rtwdev, page, data, size);
}
static inline int
rtw_hci_write_data_rsvd_page(struct rtw_dev *rtwdev, u8 *buf, u32 size)
{
return rtwdev->hci.ops->write_data_rsvd_page(rtwdev, buf, size);
}
static inline int
rtw_hci_write_data_h2c(struct rtw_dev *rtwdev, u8 *buf, u32 size)
{
Annotation
- Detected declarations: `struct rtw_hci_ops`, `function rtw_hci_tx_write`, `function rtw_hci_tx_kick_off`, `function rtw_hci_setup`, `function rtw_hci_start`, `function rtw_hci_stop`, `function rtw_hci_deep_ps`, `function rtw_hci_link_ps`, `function rtw_hci_interface_cfg`, `function rtw_hci_dynamic_rx_agg`.
- Atlas domain: Driver Families / drivers/net.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.