Fully implemented UEFI Driver Model protocols

This commit is contained in:
Jozef Nagy 2024-03-29 23:27:59 +01:00
parent b335041b4f
commit 46942dc800
No known key found for this signature in database
GPG key ID: 5B49DC29F09685D6
12 changed files with 337 additions and 0 deletions

55
protocols/driver_health.h Normal file
View file

@ -0,0 +1,55 @@
#ifndef EFI_PROTOCOLS_DRIVER_HEALTH_H
#define EFI_PROTOCOLS_DRIVER_HEALTH_H
#define EFI_DRIVER_HEALTH_PROTOCOL_GUID {0x2a534210,0x9280,0x41d8, {0xae,0x79,0xca,0xda,0x01,0xa2,0xb1,0x27}}
typedef struct _EFI_DRIVER_HEALTH_PROTOCOL EFI_DRIVER_HEALTH_PROTOCOL;
typedef enum {
EfiDriverHealthStatusHealthy,
EfiDriverHealthStatusRepairRequired,
EfiDriverHealthStatusConfigurationRequired,
EfiDriverHealthStatusFailed,
EfiDriverHealthStatusReconnectRequired,
EfiDriverHealthStatusRebootRequired
} EFI_DRIVER_HEALTH_STATUS;
typedef struct {
EFI_HII_HANDLE HiiHandle;
EFI_STRING_ID StringId;
UINT64 MessageCode;
} EFI_DRIVER_HEALTH_HII_MESSAGE;
typedef
EFI_STATUS
(EFIAPI *EFI_DRIVER_HEALTH_GET_HEALTH_STATUS)(
IN EFI_DRIVER_HEALTH_PROTOCOL *This,
IN EFI_HANDLE ControllerHandle OPTIONAL,
IN EFI_HANDLE ChildHandle OPTIONAL,
OUT EFI_DRIVER_HEALTH_STATUS *HealthStatus,
OUT EFI_DRIVER_HEALTH_HII_MESSAGE **MessageList OPTIONAL,
OUT EFI_HII_HANDLE *FormHiiHandle OPTIONAL
);
typedef
EFI_STATUS
(EFIAPI *EFI_DRIVER_HEALTH_REPAIR_NOTIFY)(
IN UINTN Value,
IN UINTN Limit
);
typedef
EFI_STATUS
(EFIAPI *EFI_DRIVER_HEALTH_REPAIR)(
IN EFI_DRIVER_HEALTH_PROTOCOL *This,
IN EFI_HANDLE ControllerHandle,
IN EFI_HANDLE ChildHandle OPTIONAL,
IN EFI_DRIVER_HEALTH_REPAIR_NOTIFY RepairNotify OPTIONAL
);
typedef struct _EFI_DRIVER_HEALTH_PROTOCOL {
EFI_DRIVER_HEALTH_GET_HEALTH_STATUS GetHealthStatus;
EFI_DRIVER_HEALTH_REPAIR Repair;
} EFI_DRIVER_HEALTH_PROTOCOL;
#endif /* EFI_PROTOCOLS_DRIVER_HEALTH_H */