1dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project/* $NetBSD: disassem.h,v 1.4 2001/03/04 04:15:58 matt Exp $ */ 2dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 3dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project/*- 4dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * Copyright (c) 1997 Mark Brinicombe. 5dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * Copyright (c) 1997 Causality Limited. 6dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * 7dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * All rights reserved. 8dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * 9dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * Redistribution and use in source and binary forms, with or without 10dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * modification, are permitted provided that the following conditions 11dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * are met: 12dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * 1. Redistributions of source code must retain the above copyright 13dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * notice, this list of conditions and the following disclaimer. 14dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * 2. Redistributions in binary form must reproduce the above copyright 15dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * notice, this list of conditions and the following disclaimer in the 16dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * documentation and/or other materials provided with the distribution. 17dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * 3. All advertising materials mentioning features or use of this software 18dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * must display the following acknowledgement: 19dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * This product includes software developed by Mark Brinicombe. 20dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * 4. The name of the company nor the name of the author may be used to 21dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * endorse or promote products derived from this software without specific 22dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * prior written permission. 23dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * 24dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED 25dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF 26dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 27dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 28dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 29dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 30dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 31dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 32dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 33dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 34dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * SUCH DAMAGE. 35dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * 36dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * Define the interface structure required by the disassembler. 37dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * 38dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project * $FreeBSD: /repoman/r/ncvs/src/sys/arm/include/disassem.h,v 1.2 2005/01/05 21:58:48 imp Exp $ 39dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project */ 40dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 41dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#ifndef ANDROID_MACHINE_DISASSEM_H 42dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#define ANDROID_MACHINE_DISASSEM_H 43dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 44dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#include <sys/types.h> 45dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 46dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#if __cplusplus 47dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Projectextern "C" { 48dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#endif 49dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 50dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Projecttypedef struct { 51dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project u_int (*di_readword)(u_int); 52dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project void (*di_printaddr)(u_int); 53dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project void (*di_printf)(const char *, ...); 54dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project} disasm_interface_t; 55dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 56dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project/* Prototypes for callable functions */ 57dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 58dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Projectu_int disasm(const disasm_interface_t *, u_int, int); 59dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Projectvoid disassemble(u_int); 60dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 61dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#if __cplusplus 62dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project} 63dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#endif 64dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project 65dd7bc3319deb2b77c5d07a51b7d6cd7e11b5beb0The Android Open Source Project#endif /* !ANDROID_MACHINE_DISASSEM_H */ 66