DevEFI.h revision e1fbd28a3d3f4b5c20c2d653dda8534bee1aed2d
0N/A * EFI for VirtualBox Common Definitions. 0N/A * WARNING: This header is used by both firmware and VBox device, 2362N/A * thus don't put anything here but numeric constants or helper 0N/A * Copyright (C) 2009-2012 Oracle Corporation 0N/A * This file is part of VirtualBox Open Source Edition (OSE), as 0N/A * you can redistribute it and/or modify it under the terms of the GNU 0N/A * General Public License (GPL) as published by the Free Software 0N/A * Foundation, in version 2 as it comes in the "COPYING" file of the 0N/A * VirtualBox OSE distribution. VirtualBox OSE is distributed in the 0N/A * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind. 0N/A/** @defgroup grp_devefi DevEFI <-> Firmware Interfaces 0N/A/** The base of the I/O ports used for interaction between the EFI firmware and DevEFI. */ 0N/A/** The number of ports. */ 0N/A/** Information querying. 0N/A * 32-bit write sets the info index and resets the reading, see EfiInfoIndex. 0N/A * 32-bit read returns the size of the info (in bytes). 0N/A * 8-bit reads returns the info as a byte sequence. */ 0N/A/** Information requests. 0N/A * @todo Put this in DEVEFIINFO, that's much easier to access. */ 0N/A * Write causes action to be taken according to the value written, 0N/A * see the EFI_PANIC_CMD_* defines below. 0N/A * Reading from the port has no effect. */ 0N/A/** @defgroup grp_devefi_panic_cmd Panic Commands for EFI_PANIC_PORT 0N/A/** Used by the EfiThunk.asm to signal ORG inconsistency. */ 0N/A/** Used by the EfiThunk.asm to signal unexpected trap or interrupt. */ 0N/A * Makes sure the panic message buffer is empty. */ 0N/A/** Ends a panic message and enters guru meditation state. */ 0N/A/** The first panic message command. 0N/A * The low byte of the command is the char to be added to the panic message. */ 0N/A/** The last panic message command. */ 0N/A/** Makes a panic message command from a char. */ 0N/A/** Extracts the char from a panic message command. */ 0N/A/** Undefined port. */ 0N/A * The chars written goes to the log. 0N/A * Reading has no effect. 0N/A * @remarks The port number is the same as on of those used by the PC BIOS. */ 0N/A/** The top of the EFI stack. 0N/A * The firmware expects a 128KB stack. 0N/A * @todo Move this to 1MB + 128KB and drop the stack relocation the firmware 0N/A * does. It expects the stack to be within the temporary memory that 0N/A * SEC hands to PEI and the VBoxAutoScan PEIM reports. */ 0N/A/** The max number of variables allowed. */ 0N/A/** The max variable name length (in bytes, including the zero terminator). */ 0N/A/** The max value length (in bytes). */ 0N/A * DevEFI Info stored at DEVEFI_INFO_PHYS_ADDR 0N/A /** 0x00 - The physical address of the firmware entry point. */ 0N/A /** 0x04 - Spaced reserved for the high part of a 64-bit entrypoint address. */ 0N/A /** 0x08 - The address of the firmware volume. */ 0N/A /** 0x10 - The size of the firmware volume. */ 0N/A /** 0x14 - Amount of memory below 4GB (in bytes). */ 0N/A /** 0x18 - Amount of memory above 4GB (in bytes). */ 0N/A /** 0x20 - see flags values below */ 0N/A /** 0x24 - The nubmer of Virtual CPUs. */ 0N/A /** 0x28 - Reserved for future use, must be zero. */ 0N/A /** 0x2c - Reserved for future use, must be zero. */ 0N/A/** Pointer to a DevEFI info structure. */ 0N/A/** Pointer to a const DevEFI info structure. */ 0N/A/** The physical address where DEVEFIINFO can be found. */ 0N/A#
define KB(x) ((x) *
1024)