#ifndef __CUSTOM_DECPOMPRESS_LIB_H__\r
#define __CUSTOM_DECPOMPRESS_LIB_H__\r
\r
+/**
+ Decompress GetInfo fucntion.\r
+\r
+ @param[in] DecompressGuid The guid matches this decompress method.
+ @param[in] Source The source buffer containing the compressed data.
+ @param[in] SourceSize The size of source buffer
+ @param[out] DestinationSize The size of destination buffer.
+ @param[out] ScratchSize The size of scratch buffer.
+
+ @retval RETURN_SUCCESS The size of destination buffer and the size of scratch buffer are successull retrieved.\r
+ @retval RETURN_INVALID_PARAMETER The source data is corrupted
+
+**/\r
RETURN_STATUS\r
EFIAPI\r
CustomDecompressGetInfo (\r
+ IN CONST GUID *DecompressGuid,\r
IN CONST VOID *Source,\r
IN UINT32 SourceSize,\r
OUT UINT32 *DestinationSize,\r
OUT UINT32 *ScratchSize\r
);\r
\r
+/**
+ Decompress fucntion.\r
+\r
+ @param[in] DecompressGuid The guid matches this decompress method.
+ @param[in] Source The source buffer containing the compressed data.
+ @param[in] Destination The destination buffer to store the decompressed data
+ @param[out] Scratch The buffer used internally by the decompress routine. This buffer is needed to store intermediate data.\r
+
+ @retval RETURN_SUCCESS Decompression is successfull\r
+ @retval RETURN_INVALID_PARAMETER The source data is corrupted
+
+**/\r
RETURN_STATUS\r
EFIAPI\r
CustomDecompress (\r
- IN CONST VOID *Source,\r
- IN OUT VOID *Destination,\r
- IN OUT VOID *Scratch\r
+ IN CONST GUID *DecompressGuid,\r
+ IN CONST VOID *Source,\r
+ IN OUT VOID *Destination,\r
+ IN OUT VOID *Scratch\r
+ );\r
+\r
+/**
+ Get decompress method guid list.\r
+\r
+ @param[in, out] AlgorithmGuidTable The decompress method guid list.
+ @param[in, out] NumberOfAlgorithms The number of decompress methods.
+
+ @retval RETURN_SUCCESS Get all algorithmes list successfully..
+**/\r
+RETURN_STATUS\r
+EFIAPI\r
+CustomDecompressGetAlgorithms (\r
+ IN OUT GUID **AlgorithmGuidTable,\r
+ IN OUT UINTN *NumberOfAlgorithms\r
);\r
\r
#endif\r