Main routines for the EBC interpreter. Includes the initialization and\r
main interpreter routines.\r
\r
-Copyright (c) 2006 - 2008, Intel Corporation. <BR>\r
+Copyright (c) 2006 - 2010, Intel Corporation. <BR>\r
All rights reserved. This program and the accompanying materials\r
are licensed and made available under the terms and conditions of the BSD License\r
which accompanies this distribution. The full text of the license may be found at\r
#define _EBC_INT_H_\r
\r
\r
-#include <PiDxe.h>\r
+#include <Uefi.h>\r
\r
#include <Protocol/DebugSupport.h>\r
#include <Protocol/Ebc.h>\r
typedef UINT32 EXCEPTION_FLAGS;\r
\r
typedef struct {\r
- VM_REGISTER R[8]; // General purpose registers.\r
- UINT64 Flags; // Flags register:\r
- // 0 Set to 1 if the result of the last compare was true\r
- // 1 Set to 1 if stepping\r
- // 2..63 Reserved.\r
+ VM_REGISTER Gpr[8]; // General purpose registers.\r
+ UINT64 Flags; // Flags register:\r
+ // 0 Set to 1 if the result of the last compare was true\r
+ // 1 Set to 1 if stepping\r
+ // 2..63 Reserved.\r
VMIP Ip; // Instruction pointer.\r
UINTN LastException; //\r
EXCEPTION_FLAGS ExceptionFlags; // to keep track of exceptions\r
The VM interpreter calls this function when an exception is detected.\r
\r
@param ExceptionType Specifies the processor exception detected.\r
- @param ExceptionFlags Specifies the exception context. \r
+ @param ExceptionFlags Specifies the exception context.\r
@param VmPtr Pointer to a VM context for passing info to the\r
EFI debugger.\r
\r
\r
//\r
// External low level functions that are native-processor dependent\r
-// \r
+//\r
/**\r
- The VM thunk code stuffs an EBC entry point into a processor \r
+ The VM thunk code stuffs an EBC entry point into a processor\r
register. Since we can't use inline assembly to get it from\r
the interpreter C code, stuff it into the return value\r
register and return.\r
- \r
+\r
@return The contents of the register in which the entry point is passed.\r
\r
**/\r
/**\r
This function is called to execute an EBC CALLEX instruction.\r
This instruction requires that we thunk out to external native\r
- code. For x64, we switch stacks, copy the arguments to the stack \r
+ code. For x64, we switch stacks, copy the arguments to the stack\r
and jump to the specified function.\r
On return, we restore the stack pointer to its original location.\r
Destroys no working registers.\r
/**\r
Returns the stack index and buffer assosicated with the Handle parameter.\r
\r
- @param Handle The EFI handle as the index to the EBC stack. \r
+ @param Handle The EFI handle as the index to the EBC stack.\r
@param StackBuffer A pointer to hold the returned stack buffer.\r
@param BufferIndex A pointer to hold the returned stack index.\r
- \r
+\r
@retval EFI_OUT_OF_RESOURCES The Handle parameter does not correspond to any\r
existing EBC stack.\r
@retval EFI_SUCCESS The stack index and buffer were found and\r
);\r
\r
/**\r
- Returns from the EBC stack by stack Index. \r
- \r
+ Returns from the EBC stack by stack Index.\r
+\r
@param Index Specifies which EBC stack to return from.\r
- \r
+\r
@retval EFI_SUCCESS The function completed successfully.\r
\r
**/\r
/**\r
Allocates memory to hold all the EBC stacks.\r
\r
- @retval EFI_SUCCESS The EBC stacks were allocated successfully. \r
+ @retval EFI_SUCCESS The EBC stacks were allocated successfully.\r
@retval EFI_OUT_OF_RESOURCES Not enough memory available for EBC stacks.\r
\r
**/\r
);\r
\r
/**\r
- Returns from the EBC stack associated with the Handle parameter. \r
- \r
+ Returns from the EBC stack associated with the Handle parameter.\r
+\r
@param Handle Specifies the EFI handle to find the EBC stack with.\r
- \r
+\r
@retval EFI_SUCCESS The function completed successfully.\r
\r
**/\r
ReturnEBCStackByHandle(\r
IN EFI_HANDLE Handle\r
);\r
+\r
+\r
//\r
// Defines for a simple EBC debugger interface\r
//\r
typedef\r
EFI_STATUS\r
(*EBC_DEBUGGER_SIGNAL_EXCEPTION) (\r
- IN EFI_EBC_SIMPLE_DEBUGGER_PROTOCOL * This,\r
- IN VM_CONTEXT * VmPtr,\r
+ IN EFI_EBC_SIMPLE_DEBUGGER_PROTOCOL *This,\r
+ IN VM_CONTEXT *VmPtr,\r
IN EFI_EXCEPTION_TYPE ExceptionType\r
);\r
\r
typedef\r
VOID\r
(*EBC_DEBUGGER_DEBUG) (\r
- IN EFI_EBC_SIMPLE_DEBUGGER_PROTOCOL * This,\r
- IN VM_CONTEXT * VmPtr\r
+ IN EFI_EBC_SIMPLE_DEBUGGER_PROTOCOL *This,\r
+ IN VM_CONTEXT *VmPtr\r
);\r
\r
typedef\r
UINT32\r
(*EBC_DEBUGGER_DASM) (\r
- IN EFI_EBC_SIMPLE_DEBUGGER_PROTOCOL * This,\r
- IN VM_CONTEXT * VmPtr,\r
+ IN EFI_EBC_SIMPLE_DEBUGGER_PROTOCOL *This,\r
+ IN VM_CONTEXT *VmPtr,\r
IN UINT16 *DasmString OPTIONAL,\r
IN UINT32 DasmStringSize\r
);\r
typedef\r
EFI_STATUS\r
(*EBC_DEBUGGER_CONFIGURE) (\r
- IN EFI_EBC_SIMPLE_DEBUGGER_PROTOCOL * This,\r
+ IN EFI_EBC_SIMPLE_DEBUGGER_PROTOCOL *This,\r
IN UINT32 ConfigId,\r
IN UINTN ConfigValue\r
);\r
VM_CONTEXT VmContext;\r
} EFI_EBC_THUNK_DATA;\r
\r
-#define EBC_PROTOCOL_PRIVATE_DATA_SIGNATURE EFI_SIGNATURE_32 ('e', 'b', 'c', 'p')\r
+#define EBC_PROTOCOL_PRIVATE_DATA_SIGNATURE SIGNATURE_32 ('e', 'b', 'c', 'p')\r
\r
\r
#define EBC_PROTOCOL_PRIVATE_DATA_FROM_THIS(a) \\r