Disassembler.h revision c72c4ddfcd79c74f70713da91a69569451b5c19e
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
20c72c4ddfcd79c74f70713da91a69569451b5c19eZonr Chang#include "bcc/Config/Config.h"
219347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien
229347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien#if USE_DISASSEMBLER
239347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien
249347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien#include <string>
259347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien
269347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chiennamespace llvm {
279347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien  class Target;
289347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien  class TargetMachine;
299347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien}
309347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien
319347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chiennamespace bcc {
329347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien
33c72c4ddfcd79c74f70713da91a69569451b5c19eZonr Changvoid InitializeDisassembler();
349347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien
35c72c4ddfcd79c74f70713da91a69569451b5c19eZonr Changvoid Disassemble(char const *OutputFileName,
36c72c4ddfcd79c74f70713da91a69569451b5c19eZonr Chang                 llvm::Target const *Target,
37c72c4ddfcd79c74f70713da91a69569451b5c19eZonr Chang                 llvm::TargetMachine *TM,
38c72c4ddfcd79c74f70713da91a69569451b5c19eZonr Chang                 std::string const &Name,
39c72c4ddfcd79c74f70713da91a69569451b5c19eZonr Chang                 unsigned char const *Func,
40c72c4ddfcd79c74f70713da91a69569451b5c19eZonr Chang                 size_t FuncSize);
419347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien
42c72c4ddfcd79c74f70713da91a69569451b5c19eZonr Chang} // end namespace bcc
439347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien
449347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien#endif // USE_DISASSEMBLER
459347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien
46c72c4ddfcd79c74f70713da91a69569451b5c19eZonr Chang#endif // BCC_SUPPORT_DISASSEMBLER_H
47