drivers/net/ethernet/fungible/funcore/fun_hci.h
Source file repositories/reference/linux-study-clean/drivers/net/ethernet/fungible/funcore/fun_hci.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/ethernet/fungible/funcore/fun_hci.h- Extension
.h- Size
- 30098 bytes
- Lines
- 1243
- 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 fun_admin_req_commonstruct fun_admin_rsp_commonstruct fun_admin_write48_reqstruct fun_admin_write48_rspstruct fun_admin_read48_reqstruct fun_admin_read48_rspstruct fun_admin_bind_entrystruct fun_admin_bind_reqstruct fun_admin_bind_rspstruct fun_admin_simple_subopstruct fun_admin_generic_destroy_reqstruct fun_admin_generic_create_rspstruct fun_admin_res_count_reqstruct fun_admin_res_count_rspstruct fun_admin_epcq_reqstruct fun_admin_epcq_create_reqstruct fun_admin_epcq_modify_reqstruct fun_admin_epsq_reqstruct fun_admin_epsq_create_reqstruct fun_subop_immstruct fun_dataop_glstruct fun_dataop_immstruct fun_subop_sglstruct fun_dataop_rqbufstruct fun_dataop_hdrstruct fun_admin_port_reqstruct fun_admin_port_create_reqstruct fun_admin_port_write_reqstruct fun_admin_port_read_reqstruct fun_admin_port_xcvr_read_reqstruct fun_admin_port_inetaddr_event_reqstruct fun_admin_port_rspstruct fun_admin_port_create_rspstruct fun_admin_port_write_rspstruct fun_admin_port_read_rspstruct fun_admin_port_inetaddr_event_rspstruct fun_admin_port_xcvr_read_rspstruct fun_admin_port_notifstruct fun_admin_rss_reqstruct fun_admin_rss_create_reqstruct fun_admin_vi_reqstruct fun_admin_vi_create_reqstruct fun_admin_eth_reqstruct fun_admin_eth_create_reqstruct fun_admin_swu_reqstruct fun_admin_swu_create_reqstruct fun_admin_swu_upgrade_reqstruct fun_admin_swu_upgrade_data_req
Annotated Snippet
struct fun_admin_req_common {
__u8 op;
__u8 len8;
__be16 flags;
__u8 suboff8;
__u8 rsvd0;
__be16 cid;
};
#define FUN_ADMIN_REQ_COMMON_INIT(_op, _len8, _flags, _suboff8, _cid) \
(struct fun_admin_req_common) { \
.op = (_op), .len8 = (_len8), .flags = cpu_to_be16(_flags), \
.suboff8 = (_suboff8), .cid = cpu_to_be16(_cid), \
}
#define FUN_ADMIN_REQ_COMMON_INIT2(_op, _len) \
(struct fun_admin_req_common) { \
.op = (_op), .len8 = (_len) / 8, \
}
struct fun_admin_rsp_common {
__u8 op;
__u8 len8;
__be16 flags;
__u8 suboff8;
__u8 ret;
__be16 cid;
};
struct fun_admin_write48_req {
__be64 key_to_data;
};
#define FUN_ADMIN_WRITE48_REQ_KEY_S 56U
#define FUN_ADMIN_WRITE48_REQ_KEY_M 0xff
#define FUN_ADMIN_WRITE48_REQ_KEY_P_NOSWAP(x) \
(((__u64)x) << FUN_ADMIN_WRITE48_REQ_KEY_S)
#define FUN_ADMIN_WRITE48_REQ_DATA_S 0U
#define FUN_ADMIN_WRITE48_REQ_DATA_M 0xffffffffffff
#define FUN_ADMIN_WRITE48_REQ_DATA_P_NOSWAP(x) \
(((__u64)x) << FUN_ADMIN_WRITE48_REQ_DATA_S)
#define FUN_ADMIN_WRITE48_REQ_INIT(key, data) \
(struct fun_admin_write48_req) { \
.key_to_data = cpu_to_be64( \
FUN_ADMIN_WRITE48_REQ_KEY_P_NOSWAP(key) | \
FUN_ADMIN_WRITE48_REQ_DATA_P_NOSWAP(data)), \
}
struct fun_admin_write48_rsp {
__be64 key_to_data;
};
struct fun_admin_read48_req {
__be64 key_pack;
};
#define FUN_ADMIN_READ48_REQ_KEY_S 56U
#define FUN_ADMIN_READ48_REQ_KEY_M 0xff
#define FUN_ADMIN_READ48_REQ_KEY_P_NOSWAP(x) \
(((__u64)x) << FUN_ADMIN_READ48_REQ_KEY_S)
#define FUN_ADMIN_READ48_REQ_INIT(key) \
(struct fun_admin_read48_req) { \
.key_pack = \
cpu_to_be64(FUN_ADMIN_READ48_REQ_KEY_P_NOSWAP(key)), \
}
struct fun_admin_read48_rsp {
__be64 key_to_data;
};
#define FUN_ADMIN_READ48_RSP_KEY_S 56U
#define FUN_ADMIN_READ48_RSP_KEY_M 0xff
#define FUN_ADMIN_READ48_RSP_KEY_G(x) \
((be64_to_cpu(x) >> FUN_ADMIN_READ48_RSP_KEY_S) & \
FUN_ADMIN_READ48_RSP_KEY_M)
#define FUN_ADMIN_READ48_RSP_RET_S 48U
#define FUN_ADMIN_READ48_RSP_RET_M 0xff
#define FUN_ADMIN_READ48_RSP_RET_G(x) \
((be64_to_cpu(x) >> FUN_ADMIN_READ48_RSP_RET_S) & \
FUN_ADMIN_READ48_RSP_RET_M)
#define FUN_ADMIN_READ48_RSP_DATA_S 0U
#define FUN_ADMIN_READ48_RSP_DATA_M 0xffffffffffff
#define FUN_ADMIN_READ48_RSP_DATA_G(x) \
((be64_to_cpu(x) >> FUN_ADMIN_READ48_RSP_DATA_S) & \
FUN_ADMIN_READ48_RSP_DATA_M)
Annotation
- Detected declarations: `struct fun_admin_req_common`, `struct fun_admin_rsp_common`, `struct fun_admin_write48_req`, `struct fun_admin_write48_rsp`, `struct fun_admin_read48_req`, `struct fun_admin_read48_rsp`, `struct fun_admin_bind_entry`, `struct fun_admin_bind_req`, `struct fun_admin_bind_rsp`, `struct fun_admin_simple_subop`.
- 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.