#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 */