1 /*++
2
3 Copyright (c) 2004, Intel Corporation. All rights reserved.<BR>
4 This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution. The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
8
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11
12 Module Name:
13
14 CustomizedDecompress.c
15
16 Abstract:
17
18 Implementation file for Customized decompression routine
19
20 --*/
21 #include "TianoCommon.h"
22 #include "CustomizedDecompress.h"
23
24 EFI_CUSTOMIZED_DECOMPRESS_PROTOCOL mCustomizedDecompress = {
25 CustomizedGetInfo,
26 CustomizedDecompress
27 };
28
29 EFI_STATUS
InstallCustomizedDecompress(EFI_CUSTOMIZED_DECOMPRESS_PROTOCOL ** This)30 InstallCustomizedDecompress (
31 EFI_CUSTOMIZED_DECOMPRESS_PROTOCOL **This
32 )
33 /*++
34
35 Routine Description:
36
37 Install customeized decompress protocol.
38
39 Arguments:
40
41 This - The protocol that needs to be installed.
42
43 Returns:
44
45 EFI_SUCCESS - Always success
46
47 --*/
48 {
49 *This = &mCustomizedDecompress;
50 return EFI_SUCCESS;
51 }
52
53 EFI_STATUS
54 EFIAPI
CustomizedGetInfo(IN EFI_CUSTOMIZED_DECOMPRESS_PROTOCOL * This,IN VOID * Source,IN UINT32 SrcSize,OUT UINT32 * DstSize,OUT UINT32 * ScratchSize)55 CustomizedGetInfo (
56 IN EFI_CUSTOMIZED_DECOMPRESS_PROTOCOL *This,
57 IN VOID *Source,
58 IN UINT32 SrcSize,
59 OUT UINT32 *DstSize,
60 OUT UINT32 *ScratchSize
61 )
62 /*++
63
64 Routine Description:
65
66 The implementation of Customized GetInfo().
67
68 Arguments:
69 This - The EFI customized decompress protocol
70 Source - The source buffer containing the compressed data.
71 SrcSize - The size of source buffer
72 DstSize - The size of destination buffer.
73 ScratchSize - The size of scratch buffer.
74
75 Returns:
76
77 EFI_SUCCESS - The size of destination buffer and the size of scratch buffer are successull retrieved.
78 EFI_INVALID_PARAMETER - The source data is corrupted
79 EFI_UNSUPPORTED - Not supported
80
81 --*/
82 {
83 return EFI_UNSUPPORTED;
84 }
85
86 EFI_STATUS
87 EFIAPI
CustomizedDecompress(IN EFI_CUSTOMIZED_DECOMPRESS_PROTOCOL * This,IN VOID * Source,IN UINT32 SrcSize,IN OUT VOID * Destination,IN UINT32 DstSize,IN OUT VOID * Scratch,IN UINT32 ScratchSize)88 CustomizedDecompress (
89 IN EFI_CUSTOMIZED_DECOMPRESS_PROTOCOL *This,
90 IN VOID *Source,
91 IN UINT32 SrcSize,
92 IN OUT VOID *Destination,
93 IN UINT32 DstSize,
94 IN OUT VOID *Scratch,
95 IN UINT32 ScratchSize
96 )
97 /*++
98
99 Routine Description:
100
101 The implementation of Customized Decompress().
102
103 Arguments:
104
105 This - The protocol instance pointer
106 Source - The source buffer containing the compressed data.
107 SrcSize - The size of source buffer
108 Destination - The destination buffer to store the decompressed data
109 DstSize - The size of destination buffer.
110 Scratch - The buffer used internally by the decompress routine. This buffer is needed to store intermediate data.
111 ScratchSize - The size of scratch buffer.
112
113 Returns:
114
115 EFI_SUCCESS - Decompression is successfull
116 EFI_INVALID_PARAMETER - The source data is corrupted
117 EFI_UNSUPPORTED - Not supported
118
119 --*/
120 {
121 return EFI_UNSUPPORTED;
122 }
123