161362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson/* Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
261362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson * Use of this source code is governed by a BSD-style license that can be
361362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson * found in the LICENSE file.
461362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson */
561362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson
661362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define EFI_STATUS int
761362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define VOID void
861362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define INT16 int16_t
961362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define UINT16 uint16_t
1061362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define INT8 int8_t
1161362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define UINT8 uint8_t
1261362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define INT32 int32_t
1361362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define UINT32 uint32_t
1461362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define STATIC static
1561362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define IN /**/
1661362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define OUT /**/
1761362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define EFIAPI /**/
1861362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson
1961362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define EFIERR(a) (a)
2061362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define EFI_SUCCESS               0
2161362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define EFI_LOAD_ERROR            EFIERR (1)
2261362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define EFI_INVALID_PARAMETER     EFIERR (2)
2361362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define EFI_UNSUPPORTED           EFIERR (3)
2461362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define EFI_BAD_BUFFER_SIZE       EFIERR (4)
2561362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define EFI_BUFFER_TOO_SMALL      EFIERR (5)
2661362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define EFI_NOT_READY             EFIERR (6)
2761362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define EFI_DEVICE_ERROR          EFIERR (7)
2861362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define EFI_WRITE_PROTECTED       EFIERR (8)
2961362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define EFI_OUT_OF_RESOURCES      EFIERR (9)
3061362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define EFI_VOLUME_CORRUPTED      EFIERR (10)
3161362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define EFI_VOLUME_FULL           EFIERR (11)
3261362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define EFI_NO_MEDIA              EFIERR (12)
3361362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define EFI_MEDIA_CHANGED         EFIERR (13)
3461362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define EFI_NOT_FOUND             EFIERR (14)
3561362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define EFI_ACCESS_DENIED         EFIERR (15)
3661362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define EFI_NO_RESPONSE           EFIERR (16)
3761362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define EFI_NO_MAPPING            EFIERR (17)
3861362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define EFI_TIMEOUT               EFIERR (18)
3961362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define EFI_NOT_STARTED           EFIERR (19)
4061362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define EFI_ALREADY_STARTED       EFIERR (20)
4161362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define EFI_ABORTED               EFIERR (21)
4261362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define EFI_ICMP_ERROR            EFIERR (22)
4361362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define EFI_TFTP_ERROR            EFIERR (23)
4461362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define EFI_PROTOCOL_ERROR        EFIERR (24)
4561362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define EFI_INCOMPATIBLE_VERSION  EFIERR (25)
4661362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define EFI_SECURITY_VIOLATION    EFIERR (26)
4761362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define EFI_CRC_ERROR             EFIERR (27)
4861362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define EFI_END_OF_MEDIA          EFIERR (28)
4961362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define EFI_END_OF_FILE           EFIERR (31)
5061362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define EFI_INVALID_LANGUAGE      EFIERR (32)
5161362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson
5261362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define EFIWARN(a) ((a)+EFI_INVALID_LANGUAGE)
5361362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define EFI_WARN_UNKNOWN_GLYPH    EFIWARN (1)
5461362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define EFI_WARN_DELETE_FAILURE   EFIWARN (2)
5561362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define EFI_WARN_WRITE_FAILURE    EFIWARN (3)
5661362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define EFI_WARN_BUFFER_TOO_SMALL EFIWARN (4)
5761362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson
5861362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson#define EFI_ERROR(Status) (Status != 0 && Status < EFIWARN(1))
5961362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson
6061362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill RichardsonEFI_STATUS
6161362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill RichardsonEfiCompress (
6261362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson  IN      UINT8   *SrcBuffer,
6361362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson  IN      UINT32  SrcSize,
6461362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson  IN      UINT8   *DstBuffer,
6561362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson  IN OUT  UINT32  *DstSize
6661362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson  );
6761362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson
6861362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill RichardsonEFI_STATUS
6961362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill RichardsonEFIAPI
7061362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill RichardsonEfiGetInfo (
7161362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson  IN      VOID                    *Source,
7261362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson  IN      UINT32                  SrcSize,
7361362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson  OUT     UINT32                  *DstSize,
7461362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson  OUT     UINT32                  *ScratchSize
7561362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson  );
7661362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson
7761362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill RichardsonEFI_STATUS
7861362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill RichardsonEFIAPI
7961362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill RichardsonEfiDecompress (
8061362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson  IN      VOID                    *Source,
8161362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson  IN      UINT32                  SrcSize,
8261362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson  IN OUT  VOID                    *Destination,
8361362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson  IN      UINT32                  DstSize,
8461362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson  IN OUT  VOID                    *Scratch,
8561362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson  IN      UINT32                  ScratchSize
8661362d65fcdd6f6aff90fc5be51237b39cfeb9aeBill Richardson  );
87