Disassembler.h revision 388fec12e6bbf5798281d266cac63630bcaba333
19347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien/* 2c72c4ddfcd79c74f70713da91a69569451b5c19eZonr Chang * Copyright 2011-2012, The Android Open Source Project 39347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien * 49347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien * Licensed under the Apache License, Version 2.0 (the "License"); 59347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien * you may not use this file except in compliance with the License. 69347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien * You may obtain a copy of the License at 79347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien * 89347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien * http://www.apache.org/licenses/LICENSE-2.0 99347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien * 109347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien * Unless required by applicable law or agreed to in writing, software 119347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien * distributed under the License is distributed on an "AS IS" BASIS, 129347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 139347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien * See the License for the specific language governing permissions and 149347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien * limitations under the License. 159347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien */ 169347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien 17c72c4ddfcd79c74f70713da91a69569451b5c19eZonr Chang#ifndef BCC_SUPPORT_DISASSEMBLER_H 18c72c4ddfcd79c74f70713da91a69569451b5c19eZonr Chang#define BCC_SUPPORT_DISASSEMBLER_H 199347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien 20388fec12e6bbf5798281d266cac63630bcaba333Shih-wei Liao#include <stdint.h> 21388fec12e6bbf5798281d266cac63630bcaba333Shih-wei Liao#include <stddef.h> 229347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien 239347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chiennamespace llvm { 24388fec12e6bbf5798281d266cac63630bcaba333Shih-wei Liao class raw_ostream; 25388fec12e6bbf5798281d266cac63630bcaba333Shih-wei Liao} // end namespace llvm 269347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien 279347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chiennamespace bcc { 289347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien 29388fec12e6bbf5798281d266cac63630bcaba333Shih-wei Liaoclass OutputFile; 309347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien 31388fec12e6bbf5798281d266cac63630bcaba333Shih-wei Liaoenum DisassembleResult { 32388fec12e6bbf5798281d266cac63630bcaba333Shih-wei Liao kDisassembleSuccess, 33388fec12e6bbf5798281d266cac63630bcaba333Shih-wei Liao kDisassemblerNotAvailable, 34388fec12e6bbf5798281d266cac63630bcaba333Shih-wei Liao kDisassembleInvalidOutput, 35388fec12e6bbf5798281d266cac63630bcaba333Shih-wei Liao kDisassembleFailedPrepareOutput, 36388fec12e6bbf5798281d266cac63630bcaba333Shih-wei Liao kDisassembleUnknownTarget, 37388fec12e6bbf5798281d266cac63630bcaba333Shih-wei Liao kDisassembleFailedSetup, 38388fec12e6bbf5798281d266cac63630bcaba333Shih-wei Liao kDisassembleOutOfMemory, 39388fec12e6bbf5798281d266cac63630bcaba333Shih-wei Liao kDisassembleInvalidInstruction, 40388fec12e6bbf5798281d266cac63630bcaba333Shih-wei Liao}; 419347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien 42388fec12e6bbf5798281d266cac63630bcaba333Shih-wei LiaoDisassembleResult Disassemble(llvm::raw_ostream &pOutput, const char *pTriple, 43388fec12e6bbf5798281d266cac63630bcaba333Shih-wei Liao const char *pFuncName, const uint8_t *pFunc, 44388fec12e6bbf5798281d266cac63630bcaba333Shih-wei Liao size_t pFuncSize); 459347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien 46388fec12e6bbf5798281d266cac63630bcaba333Shih-wei LiaoDisassembleResult Disassemble(OutputFile &pOutput, const char *pTriple, 47388fec12e6bbf5798281d266cac63630bcaba333Shih-wei Liao const char *pFuncName, const uint8_t *pFunc, 48388fec12e6bbf5798281d266cac63630bcaba333Shih-wei Liao size_t pFuncSize); 49388fec12e6bbf5798281d266cac63630bcaba333Shih-wei Liao 50388fec12e6bbf5798281d266cac63630bcaba333Shih-wei Liao} // end namespace bcc 519347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien 52c72c4ddfcd79c74f70713da91a69569451b5c19eZonr Chang#endif // BCC_SUPPORT_DISASSEMBLER_H 53