Disassembler.h revision 9347e0bdf9d9cb691c3681ea06c87716b6251af4
19347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien/*
29347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien * Copyright 2011, 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
179347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien#ifndef BCC_DISASSEMBLER_H
189347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien#define BCC_DISASSEMBLER_H
199347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien
209347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien#include "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
339347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien  void InitializeDisassembler();
349347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien
359347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien  void Disassemble(char const *OutputFileName,
369347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien                   llvm::Target const *Target,
379347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien                   llvm::TargetMachine *TM,
389347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien                   std::string const &Name,
399347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien                   unsigned char const *Func,
409347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien                   size_t FuncSize);
419347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien
429347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien} // namespace bcc
439347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien
449347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien#endif // USE_DISASSEMBLER
459347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien
469347e0bdf9d9cb691c3681ea06c87716b6251af4Logan Chien#endif // BCC_DISASSEMBLER_H
47