7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek/******************************************************************************
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek * Name: acefiex.h - Extra OS specific defines, etc. for EFI
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek *****************************************************************************/
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek * Copyright (C) 2000 - 2016, Intel Corp.
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek * All rights reserved.
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek * Redistribution and use in source and binary forms, with or without
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek * modification, are permitted provided that the following conditions
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek * 1. Redistributions of source code must retain the above copyright
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek * notice, this list of conditions, and the following disclaimer,
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek * without modification.
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek * 2. Redistributions in binary form must reproduce at minimum a disclaimer
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek * substantially similar to the "NO WARRANTY" disclaimer below
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek * ("Disclaimer") and any redistribution must be conditioned upon
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek * including a substantially similar Disclaimer requirement for further
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek * binary redistribution.
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek * 3. Neither the names of the above-listed copyright holders nor the names
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek * of any contributors may be used to endorse or promote products derived
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek * from this software without specific prior written permission.
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek * Alternatively, this software may be distributed under the terms of the
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek * GNU General Public License ("GPL") version 2 as published by the Free
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek * Software Foundation.
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek * NO WARRANTY
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek * POSSIBILITY OF SUCH DAMAGES.
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinektypedef struct {
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinektypedef enum {
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinektypedef enum {
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek/* possible caching types for the memory range */
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek/* physical memory protection on range */
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek/* range requires a runtime mapping */
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinektypedef struct {
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek * Text output protocol
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek { 0x387477c2, 0x69c7, 0x11d2, {0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b} }
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinektypedef struct {
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek EFI_TEXT_SET_CURSOR_POSITION SetCursorPosition;
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek * Text input protocol
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek { 0x387477c1, 0x69c7, 0x11d2, {0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b} }
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinektypedef struct {
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek * Baseline unicode control chars
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek * Simple file system protocol
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek { 0x964e5b22, 0x6459, 0x11d2, {0x8e, 0x39, 0x0, 0xa0, 0xc9, 0x69, 0x72, 0x3b} }
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek#define EFI_FILE_IO_INTERFACE_REVISION 0x00010000
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek/* Values for OpenMode used above */
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek#define EFI_FILE_MODE_CREATE 0x8000000000000000
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek/* Values for Attribute used above */
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek * Loaded image protocol
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek { 0x5B1B31A1, 0x9562, 0x11d2, {0x8E, 0x3F, 0x00, 0xA0, 0xC9, 0x69, 0x72, 0x3B} }
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinektypedef struct {
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek#define NextMemoryDescriptor(Ptr,Size) ((EFI_MEMORY_DESCRIPTOR *) (((UINT8 *) Ptr) + Size))
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek * Protocol handler functions
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinektypedef enum {
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinektypedef enum {
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek#define EFI_OPEN_PROTOCOL_BY_HANDLE_PROTOCOL 0x00000001
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek#define EFI_OPEN_PROTOCOL_GET_PROTOCOL 0x00000002
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek#define EFI_OPEN_PROTOCOL_TEST_PROTOCOL 0x00000004
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek#define EFI_OPEN_PROTOCOL_BY_CHILD_CONTROLLER 0x00000008
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinektypedef struct {
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek EFI_OPEN_PROTOCOL_INFORMATION_ENTRY **EntryBuffer,
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek(EFIAPI *EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES) (
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek(EFIAPI *EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES) (
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek * EFI Boot Services Table
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek#define EFI_BOOT_SERVICES_SIGNATURE 0x56524553544f4f42
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek#define EFI_BOOT_SERVICES_REVISION (EFI_SPECIFICATION_MAJOR_REVISION<<16) | (EFI_SPECIFICATION_MINOR_REVISION)
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek EFI_INSTALL_PROTOCOL_INTERFACE InstallProtocolInterface;
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek EFI_REINSTALL_PROTOCOL_INTERFACE ReinstallProtocolInterface;
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek EFI_UNINSTALL_PROTOCOL_INTERFACE UninstallProtocolInterface;
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek EFI_REGISTER_PROTOCOL_NOTIFY RegisterProtocolNotify;
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek EFI_INSTALL_CONFIGURATION_TABLE InstallConfigurationTable;
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek EFI_GET_NEXT_MONOTONIC_COUNT GetNextMonotonicCount;
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek EFI_DISCONNECT_CONTROLLER DisconnectController;
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek EFI_OPEN_PROTOCOL_INFORMATION OpenProtocolInformation;
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek EFI_INSTALL_MULTIPLE_PROTOCOL_INTERFACES InstallMultipleProtocolInterfaces;
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek EFI_UNINSTALL_MULTIPLE_PROTOCOL_INTERFACES UninstallMultipleProtocolInterfaces;
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek * EFI System Table
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek * EFI Configuration Table and GUID definitions
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek { 0xeb9d2d30, 0x2d88, 0x11d3, {0x9a, 0x16, 0x0, 0x90, 0x27, 0x3f, 0xc1, 0x4d} }
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek { 0x8868e871, 0xe4f1, 0x11d3, {0xbc, 0x22, 0x0, 0x80, 0xc7, 0x3c, 0x88, 0x81} }
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek#define EFI_SYSTEM_TABLE_SIGNATURE 0x5453595320494249
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek#define EFI_SYSTEM_TABLE_REVISION (EFI_SPECIFICATION_MAJOR_REVISION<<16) | (EFI_SPECIFICATION_MINOR_REVISION)
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek/* GNU EFI definitions */
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek * This is needed to hide platform specific code from ACPICA
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek * EFI specific prototypes
7b1019a6d29ccb7999dc76cba3dde1c627e8e609Jerry Jelinek#endif /* __ACEFIEX_H__ */