drivers/net/fjes/fjes_hw.h
Source file repositories/reference/linux-study-clean/drivers/net/fjes/fjes_hw.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/net/fjes/fjes_hw.h- Extension
.h- Size
- 8560 bytes
- Lines
- 357
- 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.
- Allocates kernel memory; connect allocation flags and lifetime to context constraints.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/netdevice.hlinux/if_vlan.hlinux/vmalloc.hfjes_regs.h
Detected Declarations
struct fjes_hwstruct esmem_framestruct fjes_device_shared_infostruct fjes_device_command_paramstruct _ep_buffer_info_common_tstruct _ep_buffer_info_v1_tstruct fjes_drv_ep_statsstruct ep_share_mem_infostruct epbuf_handlerstruct es_device_tracestruct fjes_hw_infostruct fjes_hwstruct fjes_hw_resourceenum ep_partner_statusenum fjes_dev_command_request_typeenum fjes_dev_command_response_e
Annotated Snippet
struct esmem_frame {
__le32 frame_size;
u8 frame_data[];
};
/* EP partner status */
enum ep_partner_status {
EP_PARTNER_UNSHARE,
EP_PARTNER_SHARED,
EP_PARTNER_WAITING,
EP_PARTNER_COMPLETE,
EP_PARTNER_STATUS_MAX,
};
/* shared status region */
struct fjes_device_shared_info {
int epnum;
u8 ep_status[];
};
/* structures for command control request data*/
union fjes_device_command_req {
struct {
__le32 length;
} info;
struct {
__le32 length;
__le32 epid;
__le64 buffer[];
} share_buffer;
struct {
__le32 length;
__le32 epid;
} unshare_buffer;
struct {
__le32 length;
__le32 mode;
__le64 buffer_len;
__le64 buffer[];
} start_trace;
struct {
__le32 length;
} stop_trace;
};
/* structures for command control response data */
union fjes_device_command_res {
struct {
__le32 length;
__le32 code;
struct {
u8 es_status;
u8 zone;
} info[];
} info;
struct {
__le32 length;
__le32 code;
} share_buffer;
struct {
__le32 length;
__le32 code;
} unshare_buffer;
struct {
__le32 length;
__le32 code;
} start_trace;
struct {
__le32 length;
__le32 code;
} stop_trace;
};
/* request command type */
enum fjes_dev_command_request_type {
FJES_CMD_REQ_INFO = 0x0001,
FJES_CMD_REQ_SHARE_BUFFER = 0x0002,
FJES_CMD_REQ_UNSHARE_BUFFER = 0x0004,
FJES_CMD_REQ_START_DEBUG = 0x0100,
FJES_CMD_REQ_STOP_DEBUG = 0x0200,
};
/* parameter for command control */
struct fjes_device_command_param {
u32 req_len;
phys_addr_t req_start;
u32 res_len;
phys_addr_t res_start;
phys_addr_t share_start;
};
Annotation
- Immediate include surface: `linux/netdevice.h`, `linux/if_vlan.h`, `linux/vmalloc.h`, `fjes_regs.h`.
- Detected declarations: `struct fjes_hw`, `struct esmem_frame`, `struct fjes_device_shared_info`, `struct fjes_device_command_param`, `struct _ep_buffer_info_common_t`, `struct _ep_buffer_info_v1_t`, `struct fjes_drv_ep_stats`, `struct ep_share_mem_info`, `struct epbuf_handler`, `struct es_device_trace`.
- 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.