diff --git a/efi.h b/efi.h index 4e3113e..ff85820 100644 --- a/efi.h +++ b/efi.h @@ -21,6 +21,7 @@ typedef struct { #include "protocols/boot_manager_policy.h" #include "protocols/console_support.h" #include "protocols/debugger.h" +#include "protocols/decompress.h" #include "protocols/device_path.h" #include "protocols/loaded_image.h" #include "protocols/media_access.h" diff --git a/protocols/decompress.h b/protocols/decompress.h new file mode 100644 index 0000000..1d3da6a --- /dev/null +++ b/protocols/decompress.h @@ -0,0 +1,39 @@ +#ifndef EFI_PROTOCOLS_DECOMPRESS_H +#define EFI_PROTOCOLS_DECOMPRESS_H + +//// +// Decompress Protocol +/// + +#define EFI_DECOMPRESS_PROTOCOL_GUID {0xd8117cfe,0x94a6,0x11d4, {0x9a,0x3a,0x00,0x90,0x27,0x3f,0xc1,0x4d}} + +typedef struct _EFI_DECOMPRESS_PROTOCOL EFI_DECOMPRESS_PROTOCOL; + +typedef +EFI_STATUS +(EFIAPI *EFI_DECOMPRESS_GET_INFO)( + IN EFI_DECOMPRESS_PROTOCOL *This, + IN VOID *Source, + IN UINT32 SourceSize, + OUT UINT32 *DestinationSize, + OUT UINT32 *ScratchSize +); + +typedef +EFI_STATUS +(EFIAPI *EFI_DECOMPRESS_DECOMPRESS)( + IN EFI_DECOMPRESS_PROTOCOL *This, + IN VOID *Source, + IN UINT32 SourceSize, + IN OUT VOID *Destination, + IN UINT32 DestinationSize, + IN OUT VOID *Scratch, + IN UINT32 ScratchSize +); + +typedef struct _EFI_DECOMPRESS_PROTOCOL { + EFI_DECOMPRESS_GET_INFO GetInfo; + EFI_DECOMPRESS_DECOMPRESS Decompress; +} EFI_DECOMPRESS_PROTOCOL; + +#endif /* EFI_PROTOCOLS_DECOMPRESS_H */