drivers/net/wireless/marvell/libertas_tf/libertas_tf.h
Source file repositories/reference/linux-study-clean/drivers/net/wireless/marvell/libertas_tf/libertas_tf.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/wireless/marvell/libertas_tf/libertas_tf.h- Extension
.h- Size
- 12476 bytes
- Lines
- 518
- 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/spinlock.hlinux/device.hlinux/kthread.hnet/mac80211.hdeb_defs.h
Detected Declarations
struct lbtf_privatestruct lbtf_offset_valuestruct channel_rangestruct if_usb_cardstruct lbtf_opsstruct lbtf_privatestruct txpdstruct rxpdstruct cmd_headerstruct cmd_ctrl_nodestruct cmd_ds_get_hw_specstruct cmd_ds_mac_controlstruct cmd_ds_802_11_mac_addressstruct cmd_ds_mac_multicast_addrstruct cmd_ds_set_modestruct cmd_ds_set_bssidstruct cmd_ds_802_11_radio_controlstruct cmd_ds_802_11_rf_channelstruct cmd_ds_set_boot2_verstruct cmd_ds_802_11_resetstruct cmd_ds_802_11_beacon_controlstruct cmd_ds_802_11_beacon_setstruct cmd_ctrl_nodeenum lbtf_modeenum mv_ms_type
Annotated Snippet
struct lbtf_offset_value {
u32 offset;
u32 value;
};
struct channel_range {
u8 regdomain;
u8 start;
u8 end; /* exclusive (channel must be less than end) */
};
struct if_usb_card;
struct lbtf_ops {
/** Hardware access */
int (*hw_host_to_card)(struct lbtf_private *priv, u8 type,
u8 *payload, u16 nb);
int (*hw_prog_firmware)(struct lbtf_private *priv);
int (*hw_reset_device)(struct lbtf_private *priv);
};
/** Private structure for the MV device */
struct lbtf_private {
void *card;
struct ieee80211_hw *hw;
const struct lbtf_ops *ops;
/* Command response buffer */
u8 cmd_resp_buff[LBS_UPLD_SIZE];
/* Download sent:
bit0 1/0=data_sent/data_tx_done,
bit1 1/0=cmd_sent/cmd_tx_done,
all other bits reserved 0 */
struct ieee80211_vif *vif;
struct work_struct cmd_work;
struct work_struct tx_work;
/** Wlan adapter data structure*/
/** STATUS variables */
u32 fwrelease;
u32 fwcapinfo;
/* protected with big lock */
struct mutex lock;
/** command-related variables */
u16 seqnum;
/* protected by big lock */
struct cmd_ctrl_node *cmd_array;
/** Current command */
struct cmd_ctrl_node *cur_cmd;
/** command Queues */
/** Free command buffers */
struct list_head cmdfreeq;
/** Pending command buffers */
struct list_head cmdpendingq;
/** spin locks */
spinlock_t driver_lock;
/** Timers */
struct timer_list command_timer;
int nr_retries;
int cmd_timed_out;
u8 cmd_response_rxed;
/** capability Info used in Association, start, join */
u16 capability;
/** MAC address information */
u8 current_addr[ETH_ALEN];
u8 multicastlist[MRVDRV_MAX_MULTICAST_LIST_SIZE][ETH_ALEN];
u32 nr_of_multicastmacaddr;
int cur_freq;
struct sk_buff *skb_to_tx;
struct sk_buff *tx_skb;
/** NIC Operation characteristics */
u16 mac_control;
u16 regioncode;
struct channel_range range;
u8 radioon;
u32 preamble;
struct ieee80211_channel channels[14];
Annotation
- Immediate include surface: `linux/spinlock.h`, `linux/device.h`, `linux/kthread.h`, `net/mac80211.h`, `deb_defs.h`.
- Detected declarations: `struct lbtf_private`, `struct lbtf_offset_value`, `struct channel_range`, `struct if_usb_card`, `struct lbtf_ops`, `struct lbtf_private`, `struct txpd`, `struct rxpd`, `struct cmd_header`, `struct cmd_ctrl_node`.
- 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.