drivers/platform/x86/hp/hp-bioscfg/bioscfg.h

Source file repositories/reference/linux-study-clean/drivers/platform/x86/hp/hp-bioscfg/bioscfg.h

File Facts

System
Linux kernel
Corpus path
drivers/platform/x86/hp/hp-bioscfg/bioscfg.h
Extension
.h
Size
14172 bytes
Lines
490
Domain
Driver Families
Bucket
drivers/platform
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.

Dependency Surface

Detected Declarations

Annotated Snippet

struct bios_return {
	u32 sigpass;
	u32 return_code;
};

enum wmi_error_values {
	SUCCESS				= 0x00,
	CMD_FAILED			= 0x01,
	INVALID_SIGN			= 0x02,
	INVALID_CMD_VALUE		= 0x03,
	INVALID_CMD_TYPE		= 0x04,
	INVALID_DATA_SIZE		= 0x05,
	INVALID_CMD_PARAM		= 0x06,
	ENCRYP_CMD_REQUIRED		= 0x07,
	NO_SECURE_SESSION		= 0x08,
	SECURE_SESSION_FOUND		= 0x09,
	SECURE_SESSION_FAILED		= 0x0A,
	AUTH_FAILED			= 0x0B,
	INVALID_BIOS_AUTH		= 0x0E,
	NONCE_DID_NOT_MATCH		= 0x18,
	GENERIC_ERROR			= 0x1C,
	BIOS_ADMIN_POLICY_NOT_MET	= 0x28,
	BIOS_ADMIN_NOT_SET		= 0x38,
	P21_NO_PROVISIONED		= 0x1000,
	P21_PROVISION_IN_PROGRESS	= 0x1001,
	P21_IN_USE			= 0x1002,
	HEP_NOT_ACTIVE			= 0x1004,
	HEP_ALREADY_SET			= 0x1006,
	HEP_CHECK_STATE			= 0x1007,
};

struct common_data {
	u8 display_name[MAX_BUFF_SIZE];
	u8 path[MAX_BUFF_SIZE];
	u32 is_readonly;
	u32 display_in_ui;
	u32 requires_physical_presence;
	u32 sequence;
	u32 prerequisites_size;
	u8 prerequisites[MAX_PREREQUISITES_SIZE][MAX_BUFF_SIZE];
	u32 security_level;
};

struct string_data {
	struct common_data common;
	struct kobject *attr_name_kobj;
	u8 current_value[MAX_BUFF_SIZE];
	u8 new_value[MAX_BUFF_SIZE];
	u32 min_length;
	u32 max_length;
};

struct integer_data {
	struct common_data common;
	struct kobject *attr_name_kobj;
	u32 current_value;
	u32 new_value;
	u32 lower_bound;
	u32 upper_bound;
	u32 scalar_increment;
};

struct enumeration_data {
	struct common_data common;
	struct kobject *attr_name_kobj;
	u8 current_value[MAX_BUFF_SIZE];
	u8 new_value[MAX_BUFF_SIZE];
	u32 possible_values_size;
	u8 possible_values[MAX_VALUES_SIZE][MAX_BUFF_SIZE];
};

struct ordered_list_data {
	struct common_data common;
	struct kobject *attr_name_kobj;
	u8 current_value[MAX_BUFF_SIZE];
	u8 new_value[MAX_BUFF_SIZE];
	u32 elements_size;
	u8 elements[MAX_ELEMENTS_SIZE][MAX_BUFF_SIZE];
};

struct password_data {
	struct common_data common;
	struct kobject *attr_name_kobj;
	u8 current_password[MAX_PASSWD_SIZE];
	u8 new_password[MAX_PASSWD_SIZE];
	u32 min_password_length;
	u32 max_password_length;
	u32 encodings_size;
	u8 encodings[MAX_ENCODINGS_SIZE][MAX_BUFF_SIZE];
	bool is_enabled;

Annotation

Implementation Notes