1 /** @file
2 
3 Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
4 This program and the accompanying materials
5 are licensed and made available under the terms and conditions of the BSD License
6 which accompanies this distribution.  The full text of the license may be found at
7 http://opensource.org/licenses/bsd-license.php
8 
9 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
10 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
11 
12 
13 **/
14 
15 #ifndef _EFI_EDB_DISASM_H_
16 #define _EFI_EDB_DISASM_H_
17 
18 #include <Uefi.h>
19 
20 //
21 // Definition for instruction OPCODE, MODIFIER, and OPERAND
22 //
23 #define GET_OPCODE(Addr)       (UINT8)((*(UINT8 *)(UINTN)(Addr)) & 0x3F)
24 #define GET_MODIFIERS(Addr)    (UINT8)((*(UINT8 *)(UINTN)(Addr)) & 0xC0)
25 #define GET_OPCODE_BYTE(Addr)  (UINT8)(*(UINT8 *)(UINTN)(Addr))
26 #define GET_OPERANDS(Addr)     (UINT8)(*(UINT8 *)(UINTN)((Addr) + 1))
27 
28 typedef
29 UINTN
30 (* EDB_DISASM_INSTRUCTION) (
31   IN     EFI_PHYSICAL_ADDRESS      InstructionAddress,
32   IN     EFI_SYSTEM_CONTEXT        SystemContext,
33   OUT    CHAR16                    **DisAsmString
34   );
35 
36 #endif
37