lib/pldmfw/pldmfw_private.h
Source file repositories/reference/linux-study-clean/lib/pldmfw/pldmfw_private.h
File Facts
- System
- Linux kernel
- Corpus path
lib/pldmfw/pldmfw_private.h- Extension
.h- Size
- 7898 bytes
- Lines
- 239
- Domain
- Kernel Services
- Bucket
- lib
- Inferred role
- Kernel Services: implementation source
- Status
- source implementation candidate
Why This File Exists
Shared kernel service surface used by multiple subsystems, including helpers, cryptography, virtualization support, and async I/O infrastructure.
- Shared kernel service surface used by multiple subsystems, including helpers, cryptography, virtualization support, and async I/O infrastructure.
- 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 __pldm_timestampstruct __pldm_headerstruct __pldmfw_record_infostruct __pldmfw_desc_tlvstruct __pldmfw_record_areastruct __pldmfw_component_infostruct __pldmfw_component_area
Annotated Snippet
struct __pldm_timestamp {
u8 b[PLDM_TIMESTAMP_SIZE];
} __packed __aligned(1);
/* Package Header Information */
struct __pldm_header {
uuid_t id; /* PackageHeaderIdentifier */
u8 revision; /* PackageHeaderFormatRevision */
__le16 size; /* PackageHeaderSize */
struct __pldm_timestamp release_date; /* PackageReleaseDateTime */
__le16 component_bitmap_len; /* ComponentBitmapBitLength */
u8 version_type; /* PackageVersionStringType */
u8 version_len; /* PackageVersionStringLength */
/*
* DSP0267 also includes the following variable length fields at the
* end of this structure:
*
* PackageVersionString, length is version_len.
*
* The total size of this section is
* sizeof(pldm_header) + version_len;
*/
u8 version_string[]; /* PackageVersionString */
} __packed __aligned(1);
/* Firmware Device ID Record */
struct __pldmfw_record_info {
__le16 record_len; /* RecordLength */
u8 descriptor_count; /* DescriptorCount */
__le32 device_update_flags; /* DeviceUpdateOptionFlags */
u8 version_type; /* ComponentImageSetVersionType */
u8 version_len; /* ComponentImageSetVersionLength */
__le16 package_data_len; /* FirmwareDevicePackageDataLength */
/*
* DSP0267 also includes the following variable length fields at the
* end of this structure:
*
* ApplicableComponents, length is component_bitmap_len from header
* ComponentImageSetVersionString, length is version_len
* RecordDescriptors, a series of TLVs with 16bit type and length
* FirmwareDevicePackageData, length is package_data_len
*
* The total size of each record is
* sizeof(pldmfw_record_info) +
* component_bitmap_len (converted to bytes!) +
* version_len +
* <length of RecordDescriptors> +
* package_data_len
*/
u8 variable_record_data[];
} __packed __aligned(1);
/* Firmware Descriptor Definition */
struct __pldmfw_desc_tlv {
__le16 type; /* DescriptorType */
__le16 size; /* DescriptorSize */
u8 data[]; /* DescriptorData */
} __aligned(1);
/* Firmware Device Identification Area */
struct __pldmfw_record_area {
u8 record_count; /* DeviceIDRecordCount */
/* This is not a struct type because the size of each record varies */
u8 records[];
} __aligned(1);
/* Individual Component Image Information */
struct __pldmfw_component_info {
__le16 classification; /* ComponentClassfication */
__le16 identifier; /* ComponentIdentifier */
__le32 comparison_stamp; /* ComponentComparisonStamp */
__le16 options; /* componentOptions */
__le16 activation_method; /* RequestedComponentActivationMethod */
__le32 location_offset; /* ComponentLocationOffset */
__le32 size; /* ComponentSize */
u8 version_type; /* ComponentVersionStringType */
u8 version_len; /* ComponentVersionStringLength */
/*
* DSP0267 also includes the following variable length fields at the
* end of this structure:
*
* ComponentVersionString, length is version_len
*
* The total size of this section is
* sizeof(pldmfw_component_info) + version_len;
*/
u8 version_string[]; /* ComponentVersionString */
Annotation
- Detected declarations: `struct __pldm_timestamp`, `struct __pldm_header`, `struct __pldmfw_record_info`, `struct __pldmfw_desc_tlv`, `struct __pldmfw_record_area`, `struct __pldmfw_component_info`, `struct __pldmfw_component_area`.
- Atlas domain: Kernel Services / lib.
- 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.