/******************************************************************************
*
* Name: acefiex.h - Extra OS specific defines, etc. for EFI
*
*****************************************************************************/
/*
* Copyright (C) 2000 - 2016, Intel Corp.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions, and the following disclaimer,
* without modification.
* 2. Redistributions in binary form must reproduce at minimum a disclaimer
* substantially similar to the "NO WARRANTY" disclaimer below
* ("Disclaimer") and any redistribution must be conditioned upon
* including a substantially similar Disclaimer requirement for further
* binary redistribution.
* 3. Neither the names of the above-listed copyright holders nor the names
* of any contributors may be used to endorse or promote products derived
* from this software without specific prior written permission.
*
* Alternatively, this software may be distributed under the terms of the
* GNU General Public License ("GPL") version 2 as published by the Free
* Software Foundation.
*
* NO WARRANTY
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
* HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
* STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
* IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGES.
*/
#ifndef __ACEFIEX_H__
#define __ACEFIEX_H__
#define EFI_SUCCESS 0
typedef struct {
} EFI_GUID;
typedef struct _EFI_DEVICE_PATH {
typedef enum {
typedef enum {
/* possible caching types for the memory range */
/* physical memory protection on range */
/* range requires a runtime mapping */
typedef struct {
typedef struct _EFI_TABLE_HEARDER {
typedef
void);
/*
* Text output protocol
*/
#define SIMPLE_TEXT_OUTPUT_PROTOCOL \
{ 0x387477c2, 0x69c7, 0x11d2, {0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b} }
typedef
struct _SIMPLE_TEXT_OUTPUT_INTERFACE *This,
typedef
struct _SIMPLE_TEXT_OUTPUT_INTERFACE *This,
typedef
struct _SIMPLE_TEXT_OUTPUT_INTERFACE *This,
typedef
struct _SIMPLE_TEXT_OUTPUT_INTERFACE *This,
typedef
struct _SIMPLE_TEXT_OUTPUT_INTERFACE *This,
typedef
struct _SIMPLE_TEXT_OUTPUT_INTERFACE *This,
typedef
struct _SIMPLE_TEXT_OUTPUT_INTERFACE *This);
typedef
struct _SIMPLE_TEXT_OUTPUT_INTERFACE *This,
typedef
struct _SIMPLE_TEXT_OUTPUT_INTERFACE *This,
typedef struct {
typedef struct _SIMPLE_TEXT_OUTPUT_INTERFACE {
/*
* Text input protocol
*/
#define SIMPLE_TEXT_INPUT_PROTOCOL \
{ 0x387477c1, 0x69c7, 0x11d2, {0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b} }
typedef struct {
/*
* Baseline unicode control chars
*/
typedef
struct _SIMPLE_INPUT_INTERFACE *This,
typedef
struct _SIMPLE_INPUT_INTERFACE *This,
EFI_INPUT_KEY *Key);
typedef struct _SIMPLE_INPUT_INTERFACE {
/*
* Simple file system protocol
*/
#define SIMPLE_FILE_SYSTEM_PROTOCOL \
{ 0x964e5b22, 0x6459, 0x11d2, {0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b} }
typedef
struct _EFI_FILE_IO_INTERFACE *This,
struct _EFI_FILE_HANDLE **Root);
typedef struct _EFI_FILE_IO_INTERFACE {
typedef
struct _EFI_FILE_HANDLE *File,
struct _EFI_FILE_HANDLE **NewHandle,
/* Values for OpenMode used above */
/* Values for Attribute used above */
typedef
struct _EFI_FILE_HANDLE *File);
typedef
struct _EFI_FILE_HANDLE *File);
typedef
struct _EFI_FILE_HANDLE *File,
typedef
struct _EFI_FILE_HANDLE *File,
typedef
struct _EFI_FILE_HANDLE *File,
typedef
struct _EFI_FILE_HANDLE *File,
typedef
struct _EFI_FILE_HANDLE *File,
typedef
struct _EFI_FILE_HANDLE *File,
typedef
struct _EFI_FILE_HANDLE *File);
typedef struct _EFI_FILE_HANDLE {
/*
* Loaded image protocol
*/
#define LOADED_IMAGE_PROTOCOL \
{ 0x5B1B31A1, 0x9562, 0x11d2, {0x8E, 0x3F, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B} }
typedef
struct _EFI_SYSTEM_TABLE *SystemTable);
typedef
typedef
typedef
typedef
typedef struct {
/*
* EFI Memory
*/
typedef
typedef
typedef
typedef
typedef
/*
* Protocol handler functions
*/
typedef enum {
typedef enum {
typedef
typedef
VOID *NewInterface);
typedef
typedef
typedef
VOID **Registration);
typedef
EFI_HANDLE *Buffer);
typedef
EFI_HANDLE *Device);
typedef
typedef
typedef
typedef struct {
typedef
UINTN *EntryCount);
typedef
typedef
EFI_HANDLE **Buffer);
typedef
typedef
...);
typedef
...);
typedef
typedef
typedef
/*
* EFI Boot Services Table
*/
#define EFI_BOOT_SERVICES_REVISION (EFI_SPECIFICATION_MAJOR_REVISION<<16) | (EFI_SPECIFICATION_MINOR_REVISION)
typedef struct _EFI_BOOT_SERVICES {
#if 0
#else
#endif
#if 0
#else
#endif
#if 0
#else
#endif
#if 0
#else
#endif
#if 0
#else
#endif
/*
* EFI System Table
*/
/*
* EFI Configuration Table and GUID definitions
*/
#define ACPI_TABLE_GUID \
{ 0xeb9d2d30, 0x2d88, 0x11d3, {0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
#define ACPI_20_TABLE_GUID \
{ 0x8868e871, 0xe4f1, 0x11d3, {0xbc, 0x22, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81} }
typedef struct _EFI_CONFIGURATION_TABLE {
#define EFI_SYSTEM_TABLE_REVISION (EFI_SPECIFICATION_MAJOR_REVISION<<16) | (EFI_SPECIFICATION_MINOR_REVISION)
typedef struct _EFI_SYSTEM_TABLE {
#if 0
#else
#endif
/* GNU EFI definitions */
#if defined(_GNU_EFI)
/*
* This is needed to hide platform specific code from ACPICA
*/
/*
* EFI specific prototypes
*/
efi_main (
int
int argc,
char *argv[]);
#endif
extern EFI_GUID AcpiGbl_LoadedImageProtocol;
extern EFI_GUID AcpiGbl_TextInProtocol;
extern EFI_GUID AcpiGbl_TextOutProtocol;
extern EFI_GUID AcpiGbl_FileSystemProtocol;
#endif /* __ACEFIEX_H__ */