drivers/hid/intel-ish-hid/ishtp/hbm.h
Source file repositories/reference/linux-study-clean/drivers/hid/intel-ish-hid/ishtp/hbm.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/hid/intel-ish-hid/ishtp/hbm.h- Extension
.h- Size
- 7146 bytes
- Lines
- 315
- Domain
- Driver Families
- Bucket
- drivers/hid
- 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.
- Touches IRQ or DMA behavior; this matters for the representative real-device path.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/uuid.h
Detected Declarations
struct ishtp_devicestruct ishtp_msg_hdrstruct ishtp_clstruct ishtp_msg_hdrstruct ishtp_bus_messagestruct ishtp_hbm_cl_cmdstruct hbm_versionstruct hbm_host_version_requeststruct hbm_host_version_responsestruct hbm_host_stop_requeststruct hbm_host_stop_responsestruct hbm_host_enum_requeststruct hbm_host_enum_responsestruct ishtp_client_propertiesstruct hbm_props_requeststruct hbm_props_responsestruct hbm_client_connect_requeststruct hbm_client_connect_responsestruct hbm_flow_controlstruct dma_alloc_notifystruct dma_xfer_hbmstruct ish_system_states_headerstruct ish_system_states_subscribestruct ish_system_states_statusstruct ish_system_states_query_subscribersstruct ish_system_states_state_change_reqenum ishtp_hbm_statefunction ishtp_hbm_hdr
Annotated Snippet
struct ishtp_msg_hdr {
uint32_t fw_addr:8;
uint32_t host_addr:8;
uint32_t length:9;
uint32_t reserved:6;
uint32_t msg_complete:1;
} __packed;
struct ishtp_bus_message {
uint8_t hbm_cmd;
uint8_t data[];
} __packed;
/**
* struct hbm_cl_cmd - client specific host bus command
* CONNECT, DISCONNECT, and FlOW CONTROL
*
* @hbm_cmd - bus message command header
* @fw_addr - address of the fw client
* @host_addr - address of the client in the driver
* @data
*/
struct ishtp_hbm_cl_cmd {
uint8_t hbm_cmd;
uint8_t fw_addr;
uint8_t host_addr;
uint8_t data;
};
struct hbm_version {
uint8_t minor_version;
uint8_t major_version;
} __packed;
struct hbm_host_version_request {
uint8_t hbm_cmd;
uint8_t reserved;
struct hbm_version host_version;
} __packed;
struct hbm_host_version_response {
uint8_t hbm_cmd;
uint8_t host_version_supported;
struct hbm_version fw_max_version;
} __packed;
struct hbm_host_stop_request {
uint8_t hbm_cmd;
uint8_t reason;
uint8_t reserved[2];
} __packed;
struct hbm_host_stop_response {
uint8_t hbm_cmd;
uint8_t reserved[3];
} __packed;
struct hbm_host_enum_request {
uint8_t hbm_cmd;
uint8_t reserved[3];
} __packed;
struct hbm_host_enum_response {
uint8_t hbm_cmd;
uint8_t reserved[3];
uint8_t valid_addresses[32];
} __packed;
struct ishtp_client_properties {
guid_t protocol_name;
uint8_t protocol_version;
uint8_t max_number_of_connections;
uint8_t fixed_address;
uint8_t single_recv_buf;
uint32_t max_msg_length;
uint8_t dma_hdr_len;
#define ISHTP_CLIENT_DMA_ENABLED 0x80
uint8_t reserved4;
uint8_t reserved5;
uint8_t reserved6;
} __packed;
struct hbm_props_request {
uint8_t hbm_cmd;
uint8_t address;
uint8_t reserved[2];
} __packed;
struct hbm_props_response {
uint8_t hbm_cmd;
Annotation
- Immediate include surface: `linux/uuid.h`.
- Detected declarations: `struct ishtp_device`, `struct ishtp_msg_hdr`, `struct ishtp_cl`, `struct ishtp_msg_hdr`, `struct ishtp_bus_message`, `struct ishtp_hbm_cl_cmd`, `struct hbm_version`, `struct hbm_host_version_request`, `struct hbm_host_version_response`, `struct hbm_host_stop_request`.
- Atlas domain: Driver Families / drivers/hid.
- Implementation status: source implementation candidate.
- IRQ or DMA behavior appears here, which is relevant to the selected PCIe/NVMe device path.
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.