include/linux/pldmfw.h
Source file repositories/reference/linux-study-clean/include/linux/pldmfw.h
File Facts
- System
- Linux kernel
- Corpus path
include/linux/pldmfw.h- Extension
.h- Size
- 5032 bytes
- Lines
- 174
- Domain
- Core OS
- Bucket
- Core Kernel Interface
- Inferred role
- Core OS: implementation source
- Status
- source implementation candidate
Why This File Exists
Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/list.hlinux/firmware.h
Detected Declarations
struct pldmfw_recordstruct pldmfw_desc_tlvstruct pldmfw_componentstruct pldmfw_opsstruct pldmfwstruct pldmfw_opsenum pldmfw_update_mode
Annotated Snippet
struct pldmfw_record {
struct list_head entry;
/* List of descriptor TLVs */
struct list_head descs;
/* Component Set version string*/
const u8 *version_string;
u8 version_type;
u8 version_len;
/* Package Data length */
u16 package_data_len;
/* Bitfield of Device Update Flags */
u32 device_update_flags;
/* Package Data block */
const u8 *package_data;
/* Bitmap of components applicable to this record */
unsigned long *component_bitmap;
u16 component_bitmap_len;
};
/* Standard descriptor TLV identifiers */
#define PLDM_DESC_ID_PCI_VENDOR_ID 0x0000
#define PLDM_DESC_ID_IANA_ENTERPRISE_ID 0x0001
#define PLDM_DESC_ID_UUID 0x0002
#define PLDM_DESC_ID_PNP_VENDOR_ID 0x0003
#define PLDM_DESC_ID_ACPI_VENDOR_ID 0x0004
#define PLDM_DESC_ID_PCI_DEVICE_ID 0x0100
#define PLDM_DESC_ID_PCI_SUBVENDOR_ID 0x0101
#define PLDM_DESC_ID_PCI_SUBDEV_ID 0x0102
#define PLDM_DESC_ID_PCI_REVISION_ID 0x0103
#define PLDM_DESC_ID_PNP_PRODUCT_ID 0x0104
#define PLDM_DESC_ID_ACPI_PRODUCT_ID 0x0105
#define PLDM_DESC_ID_VENDOR_DEFINED 0xFFFF
struct pldmfw_desc_tlv {
struct list_head entry;
const u8 *data;
u16 type;
u16 size;
};
#define PLDM_CLASSIFICATION_UNKNOWN 0x0000
#define PLDM_CLASSIFICATION_OTHER 0x0001
#define PLDM_CLASSIFICATION_DRIVER 0x0002
#define PLDM_CLASSIFICATION_CONFIG_SW 0x0003
#define PLDM_CLASSIFICATION_APP_SW 0x0004
#define PLDM_CLASSIFICATION_INSTRUMENTATION 0x0005
#define PLDM_CLASSIFICATION_BIOS 0x0006
#define PLDM_CLASSIFICATION_DIAGNOSTIC_SW 0x0007
#define PLDM_CLASSIFICATION_OS 0x0008
#define PLDM_CLASSIFICATION_MIDDLEWARE 0x0009
#define PLDM_CLASSIFICATION_FIRMWARE 0x000A
#define PLDM_CLASSIFICATION_CODE 0x000B
#define PLDM_CLASSIFICATION_SERVICE_PACK 0x000C
#define PLDM_CLASSIFICATION_SOFTWARE_BUNDLE 0x000D
#define PLDM_ACTIVATION_METHOD_AUTO BIT(0)
#define PLDM_ACTIVATION_METHOD_SELF_CONTAINED BIT(1)
#define PLDM_ACTIVATION_METHOD_MEDIUM_SPECIFIC BIT(2)
#define PLDM_ACTIVATION_METHOD_REBOOT BIT(3)
#define PLDM_ACTIVATION_METHOD_DC_CYCLE BIT(4)
#define PLDM_ACTIVATION_METHOD_AC_CYCLE BIT(5)
#define PLDMFW_COMPONENT_OPTION_FORCE_UPDATE BIT(0)
#define PLDMFW_COMPONENT_OPTION_USE_COMPARISON_STAMP BIT(1)
struct pldmfw_component {
struct list_head entry;
/* component identifier */
u16 classification;
u16 identifier;
u16 options;
u16 activation_method;
u32 comparison_stamp;
u32 component_size;
const u8 *component_data;
/* Component version string */
const u8 *version_string;
u8 version_type;
Annotation
- Immediate include surface: `linux/list.h`, `linux/firmware.h`.
- Detected declarations: `struct pldmfw_record`, `struct pldmfw_desc_tlv`, `struct pldmfw_component`, `struct pldmfw_ops`, `struct pldmfw`, `struct pldmfw_ops`, `enum pldmfw_update_mode`.
- Atlas domain: Core OS / Core Kernel Interface.
- 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.