Home | History | Annotate | Download | only in Library
      1 /** @file
      2 
      3   Copyright (c) 2008 - 2010, Apple Inc. All rights reserved.<BR>
      4 
      5   This program and the accompanying materials
      6   are licensed and made available under the terms and conditions of the BSD License
      7   which accompanies this distribution.  The full text of the license may be found at
      8   http://opensource.org/licenses/bsd-license.php
      9 
     10   THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
     11   WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
     12 
     13 **/
     14 
     15 #ifndef __ARM_DISASSEBLER_LIB_H__
     16 #define __ARM_DISASSEBLER_LIB_H__
     17 
     18 /**
     19   Place a dissasembly of of **OpCodePtr into buffer, and update OpCodePtr to
     20   point to next instructin.
     21 
     22   We cheat and only decode instructions that access
     23   memory. If the instruction is not found we dump the instruction in hex.
     24 
     25   @param  OpCodePtrPtr  Pointer to pointer of ARM Thumb instruction to disassemble.
     26   @param  Thumb         TRUE for Thumb(2), FALSE for ARM instruction stream
     27   @param  Extended      TRUE dump hex for instruction too.
     28   @param  ItBlock       Size of IT Block
     29   @param  Buf           Buffer to sprintf disassembly into.
     30   @param  Size          Size of Buf in bytes.
     31 
     32 **/
     33 VOID
     34 DisassembleInstruction (
     35   IN  UINT8     **OpCodePtr,
     36   IN  BOOLEAN   Thumb,
     37   IN  BOOLEAN   Extended,
     38   IN OUT UINT32 *ItBlock,
     39   OUT CHAR8     *Buf,
     40   OUT UINTN     Size
     41   );
     42 
     43 #endif
     44