drivers/infiniband/hw/hfi1/platform.h
Source file repositories/reference/linux-study-clean/drivers/infiniband/hw/hfi1/platform.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/infiniband/hw/hfi1/platform.h- Extension
.h- Size
- 10494 bytes
- Lines
- 372
- Domain
- Driver Families
- Bucket
- drivers/infiniband
- 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 platform_configstruct platform_config_datastruct platform_config_cacheenum platform_config_table_type_encodingenum platform_config_system_table_fieldsenum platform_config_port_table_fieldsenum platform_config_rx_preset_table_fieldsenum platform_config_tx_preset_table_fieldsenum platform_config_qsfp_attn_table_fieldsenum platform_config_variable_settings_table_fieldsenum platform_config_qsfp_power_class_encodingenum platform_config_port_type_encodingenum platform_config_link_speed_supported_encodingenum platform_config_link_width_supported_encodingenum platform_config_virtual_lane_capability_encodingenum platform_config_mtu_capability_encodingenum platform_config_local_max_timeout_encodingenum link_tuning_encoding
Annotated Snippet
struct platform_config {
size_t size;
const u8 *data;
};
struct platform_config_data {
u32 *table;
u32 *table_metadata;
u32 num_table;
};
/*
* This struct acts as a quick reference into the platform_data binary image
* and is populated by parse_platform_config(...) depending on the specific
* META_VERSION
*/
struct platform_config_cache {
u8 cache_valid;
struct platform_config_data config_tables[PLATFORM_CONFIG_TABLE_MAX];
};
/* This section defines default values and encodings for the
* fields defined for each table above
*/
/*
* =====================================================
* System table encodings
* =====================================================
*/
#define PLATFORM_CONFIG_MAGIC_NUM 0x3d4f5041
#define PLATFORM_CONFIG_MAGIC_NUMBER_LEN 4
/*
* These power classes are the same as defined in SFF 8636 spec rev 2.4
* describing byte 129 in table 6-16, except enumerated in a different order
*/
enum platform_config_qsfp_power_class_encoding {
QSFP_POWER_CLASS_1 = 1,
QSFP_POWER_CLASS_2,
QSFP_POWER_CLASS_3,
QSFP_POWER_CLASS_4,
QSFP_POWER_CLASS_5,
QSFP_POWER_CLASS_6,
QSFP_POWER_CLASS_7
};
/*
* ====================================================
* Port table encodings
* ====================================================
*/
enum platform_config_port_type_encoding {
PORT_TYPE_UNKNOWN,
PORT_TYPE_DISCONNECTED,
PORT_TYPE_FIXED,
PORT_TYPE_VARIABLE,
PORT_TYPE_QSFP,
PORT_TYPE_MAX
};
enum platform_config_link_speed_supported_encoding {
LINK_SPEED_SUPP_12G = 1,
LINK_SPEED_SUPP_25G,
LINK_SPEED_SUPP_12G_25G,
LINK_SPEED_SUPP_MAX
};
/*
* This is a subset (not strict) of the link downgrades
* supported. The link downgrades supported are expected
* to be supplied to the driver by another entity such as
* the fabric manager
*/
enum platform_config_link_width_supported_encoding {
LINK_WIDTH_SUPP_1X = 1,
LINK_WIDTH_SUPP_2X,
LINK_WIDTH_SUPP_2X_1X,
LINK_WIDTH_SUPP_3X,
LINK_WIDTH_SUPP_3X_1X,
LINK_WIDTH_SUPP_3X_2X,
LINK_WIDTH_SUPP_3X_2X_1X,
LINK_WIDTH_SUPP_4X,
LINK_WIDTH_SUPP_4X_1X,
LINK_WIDTH_SUPP_4X_2X,
LINK_WIDTH_SUPP_4X_2X_1X,
LINK_WIDTH_SUPP_4X_3X,
LINK_WIDTH_SUPP_4X_3X_1X,
LINK_WIDTH_SUPP_4X_3X_2X,
LINK_WIDTH_SUPP_4X_3X_2X_1X,
Annotation
- Detected declarations: `struct platform_config`, `struct platform_config_data`, `struct platform_config_cache`, `enum platform_config_table_type_encoding`, `enum platform_config_system_table_fields`, `enum platform_config_port_table_fields`, `enum platform_config_rx_preset_table_fields`, `enum platform_config_tx_preset_table_fields`, `enum platform_config_qsfp_attn_table_fields`, `enum platform_config_variable_settings_table_fields`.
- Atlas domain: Driver Families / drivers/infiniband.
- 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.