drivers/net/wireless/realtek/rtl818x/rtl8187/rtl8187.h
Source file repositories/reference/linux-study-clean/drivers/net/wireless/realtek/rtl818x/rtl8187/rtl8187.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/wireless/realtek/rtl818x/rtl8187/rtl8187.h- Extension
.h- Size
- 4514 bytes
- Lines
- 211
- 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
linux/cache.hrtl818x.hleds.h
Detected Declarations
struct rtl8187_rx_infostruct rtl8187_rx_hdrstruct rtl8187b_rx_hdrstruct rtl8187_tx_hdrstruct rtl8187b_tx_hdrstruct rtl8187_vifstruct rtl8187_privfunction rtl818x_ioread8function rtl818x_ioread16function rtl818x_ioread32function rtl818x_iowrite8function rtl818x_iowrite16function rtl818x_iowrite32
Annotated Snippet
struct rtl8187_rx_info {
struct urb *urb;
struct ieee80211_hw *dev;
};
struct rtl8187_rx_hdr {
__le32 flags;
u8 noise;
u8 signal;
u8 agc;
u8 reserved;
__le64 mac_time;
} __packed;
struct rtl8187b_rx_hdr {
__le32 flags;
__le64 mac_time;
u8 sq;
u8 rssi;
u8 agc;
u8 flags2;
__le16 snr_long2end;
s8 pwdb_g12;
u8 fot;
} __packed;
/* {rtl8187,rtl8187b}_tx_info is in skb */
struct rtl8187_tx_hdr {
__le32 flags;
__le16 rts_duration;
__le16 len;
__le32 retry;
} __packed;
struct rtl8187b_tx_hdr {
__le32 flags;
__le16 rts_duration;
__le16 len;
__le32 unused_1;
__le16 unused_2;
__le16 tx_duration;
__le32 unused_3;
__le32 retry;
__le32 unused_4[2];
} __packed;
enum {
DEVICE_RTL8187,
DEVICE_RTL8187B
};
struct rtl8187_vif {
struct ieee80211_hw *dev;
/* beaconing */
struct delayed_work beacon_work;
bool enable_beacon;
};
struct rtl8187_priv {
/* common between rtl818x drivers */
struct rtl818x_csr *map;
const struct rtl818x_rf_ops *rf;
struct ieee80211_vif *vif;
/* The mutex protects the TX loopback state.
* Any attempt to set channels concurrently locks the device.
*/
struct mutex conf_mutex;
/* rtl8187 specific */
struct ieee80211_channel channels[14];
struct ieee80211_rate rates[12];
struct ieee80211_supported_band band;
struct usb_device *udev;
u32 rx_conf;
struct usb_anchor anchored;
struct delayed_work work;
struct ieee80211_hw *dev;
#ifdef CONFIG_RTL8187_LEDS
struct rtl8187_led led_radio;
struct rtl8187_led led_tx;
struct rtl8187_led led_rx;
struct delayed_work led_on;
struct delayed_work led_off;
#endif
u16 txpwr_base;
u8 asic_rev;
u8 is_rtl8187b;
Annotation
- Immediate include surface: `linux/cache.h`, `rtl818x.h`, `leds.h`.
- Detected declarations: `struct rtl8187_rx_info`, `struct rtl8187_rx_hdr`, `struct rtl8187b_rx_hdr`, `struct rtl8187_tx_hdr`, `struct rtl8187b_tx_hdr`, `struct rtl8187_vif`, `struct rtl8187_priv`, `function rtl818x_ioread8`, `function rtl818x_ioread16`, `function rtl818x_ioread32`.
- 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.