1/* Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
2 * Use of this source code is governed by a BSD-style license that can be
3 * found in the LICENSE file.
4 */
5
6#define EFI_STATUS int
7#define VOID void
8#define INT16 int16_t
9#define UINT16 uint16_t
10#define INT8 int8_t
11#define UINT8 uint8_t
12#define INT32 int32_t
13#define UINT32 uint32_t
14#define STATIC static
15#define IN /**/
16#define OUT /**/
17#define EFIAPI /**/
18
19#define EFIERR(a) (a)
20#define EFI_SUCCESS               0
21#define EFI_LOAD_ERROR            EFIERR (1)
22#define EFI_INVALID_PARAMETER     EFIERR (2)
23#define EFI_UNSUPPORTED           EFIERR (3)
24#define EFI_BAD_BUFFER_SIZE       EFIERR (4)
25#define EFI_BUFFER_TOO_SMALL      EFIERR (5)
26#define EFI_NOT_READY             EFIERR (6)
27#define EFI_DEVICE_ERROR          EFIERR (7)
28#define EFI_WRITE_PROTECTED       EFIERR (8)
29#define EFI_OUT_OF_RESOURCES      EFIERR (9)
30#define EFI_VOLUME_CORRUPTED      EFIERR (10)
31#define EFI_VOLUME_FULL           EFIERR (11)
32#define EFI_NO_MEDIA              EFIERR (12)
33#define EFI_MEDIA_CHANGED         EFIERR (13)
34#define EFI_NOT_FOUND             EFIERR (14)
35#define EFI_ACCESS_DENIED         EFIERR (15)
36#define EFI_NO_RESPONSE           EFIERR (16)
37#define EFI_NO_MAPPING            EFIERR (17)
38#define EFI_TIMEOUT               EFIERR (18)
39#define EFI_NOT_STARTED           EFIERR (19)
40#define EFI_ALREADY_STARTED       EFIERR (20)
41#define EFI_ABORTED               EFIERR (21)
42#define EFI_ICMP_ERROR            EFIERR (22)
43#define EFI_TFTP_ERROR            EFIERR (23)
44#define EFI_PROTOCOL_ERROR        EFIERR (24)
45#define EFI_INCOMPATIBLE_VERSION  EFIERR (25)
46#define EFI_SECURITY_VIOLATION    EFIERR (26)
47#define EFI_CRC_ERROR             EFIERR (27)
48#define EFI_END_OF_MEDIA          EFIERR (28)
49#define EFI_END_OF_FILE           EFIERR (31)
50#define EFI_INVALID_LANGUAGE      EFIERR (32)
51
52#define EFIWARN(a) ((a)+EFI_INVALID_LANGUAGE)
53#define EFI_WARN_UNKNOWN_GLYPH    EFIWARN (1)
54#define EFI_WARN_DELETE_FAILURE   EFIWARN (2)
55#define EFI_WARN_WRITE_FAILURE    EFIWARN (3)
56#define EFI_WARN_BUFFER_TOO_SMALL EFIWARN (4)
57
58#define EFI_ERROR(Status) (Status != 0 && Status < EFIWARN(1))
59
60EFI_STATUS
61EfiCompress (
62  IN      UINT8   *SrcBuffer,
63  IN      UINT32  SrcSize,
64  IN      UINT8   *DstBuffer,
65  IN OUT  UINT32  *DstSize
66  );
67
68EFI_STATUS
69EFIAPI
70EfiGetInfo (
71  IN      VOID                    *Source,
72  IN      UINT32                  SrcSize,
73  OUT     UINT32                  *DstSize,
74  OUT     UINT32                  *ScratchSize
75  );
76
77EFI_STATUS
78EFIAPI
79EfiDecompress (
80  IN      VOID                    *Source,
81  IN      UINT32                  SrcSize,
82  IN OUT  VOID                    *Destination,
83  IN      UINT32                  DstSize,
84  IN OUT  VOID                    *Scratch,
85  IN      UINT32                  ScratchSize
86  );
87