drivers/net/ethernet/huawei/hinic/hinic_dev.h
Source file repositories/reference/linux-study-clean/drivers/net/ethernet/huawei/hinic/hinic_dev.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/ethernet/huawei/hinic/hinic_dev.h- Extension
.h- Size
- 2888 bytes
- Lines
- 133
- 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/netdevice.hlinux/types.hlinux/semaphore.hlinux/workqueue.hlinux/bitops.hhinic_hw_dev.hhinic_tx.hhinic_rx.hhinic_sriov.h
Detected Declarations
struct hinic_rx_mode_workstruct hinic_rss_typestruct hinic_intr_coal_infostruct hinic_debug_privstruct hinic_devstruct hinic_devlink_privenum hinic_flagsenum hinic_rss_hash_typeenum hinic_dbg_type
Annotated Snippet
struct hinic_rx_mode_work {
struct work_struct work;
u32 rx_mode;
};
struct hinic_rss_type {
u8 tcp_ipv6_ext;
u8 ipv6_ext;
u8 tcp_ipv6;
u8 ipv6;
u8 tcp_ipv4;
u8 ipv4;
u8 udp_ipv6;
u8 udp_ipv4;
};
enum hinic_rss_hash_type {
HINIC_RSS_HASH_ENGINE_TYPE_XOR,
HINIC_RSS_HASH_ENGINE_TYPE_TOEP,
HINIC_RSS_HASH_ENGINE_TYPE_MAX,
};
struct hinic_intr_coal_info {
u8 pending_limt;
u8 coalesce_timer_cfg;
u8 resend_timer_cfg;
};
enum hinic_dbg_type {
HINIC_DBG_SQ_INFO,
HINIC_DBG_RQ_INFO,
HINIC_DBG_FUNC_TABLE,
};
struct hinic_debug_priv {
struct hinic_dev *dev;
void *object;
enum hinic_dbg_type type;
struct dentry *root;
int field_id[64];
};
struct hinic_dev {
struct net_device *netdev;
struct hinic_hwdev *hwdev;
u32 msg_enable;
unsigned int tx_weight;
unsigned int rx_weight;
u16 num_qps;
u16 max_qps;
unsigned int flags;
struct semaphore mgmt_lock;
unsigned long *vlan_bitmap;
struct hinic_rx_mode_work rx_mode_work;
struct workqueue_struct *workq;
struct hinic_txq *txqs;
struct hinic_rxq *rxqs;
u16 sq_depth;
u16 rq_depth;
u8 rss_tmpl_idx;
u8 rss_hash_engine;
u16 num_rss;
u16 rss_limit;
struct hinic_rss_type rss_type;
u8 *rss_hkey_user;
s32 *rss_indir_user;
struct hinic_intr_coal_info *rx_intr_coalesce;
struct hinic_intr_coal_info *tx_intr_coalesce;
struct hinic_sriov_info sriov_info;
int lb_test_rx_idx;
int lb_pkt_len;
u8 *lb_test_rx_buf;
struct dentry *dbgfs_root;
struct dentry *sq_dbgfs;
struct dentry *rq_dbgfs;
struct dentry *func_tbl_dbgfs;
struct hinic_debug_priv *dbg;
struct devlink *devlink;
bool cable_unplugged;
bool module_unrecognized;
};
struct hinic_devlink_priv {
Annotation
- Immediate include surface: `linux/netdevice.h`, `linux/types.h`, `linux/semaphore.h`, `linux/workqueue.h`, `linux/bitops.h`, `hinic_hw_dev.h`, `hinic_tx.h`, `hinic_rx.h`.
- Detected declarations: `struct hinic_rx_mode_work`, `struct hinic_rss_type`, `struct hinic_intr_coal_info`, `struct hinic_debug_priv`, `struct hinic_dev`, `struct hinic_devlink_priv`, `enum hinic_flags`, `enum hinic_rss_hash_type`, `enum hinic_dbg_type`.
- 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.