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