]> git.proxmox.com Git - mirror_edk2.git/blob - MdeModulePkg/Universal/EbcDxe/EbcDebugger/EdbDisasm.h
a765d14179e4805fd097aecd198516efd31f58ae
[mirror_edk2.git] / MdeModulePkg / Universal / EbcDxe / EbcDebugger / EdbDisasm.h
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