TEMU  3.0
The Terma Emulator
BinaryTranslation.h
Go to the documentation of this file.
1 //===--------------------------------------------------------------*- C -*-===//
2 //
3 // EMUBT: Binary Translation using LLVM
4 // © Terma 2018, 2019
5 // Authors: Mattias Holm <maho@terma.com>
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef TEMU_BINARY_TRANSLATOR_H
10 #define TEMU_BINARY_TRANSLATOR_H
11 #include "temu-c/Support/Objsys.h"
12 #include <stdint.h>
13 
14 typedef enum {
21 
22 typedef struct {
23  int (*translate)(void *Obj, uint64_t PA, unsigned NumInstrs);
24  int (*translateBlock)(void *Obj, uint64_t PA);
25 
26  // Manually chain blocks
27  int (*chainBlocks)(void *Obj, uint64_t SourceBlockPA, uint64_t TargetBlockPA, int Arm);
28 
29  int (*clearBlock)(void *Obj, uint64_t PA);
30  int (*clearBlocksOnPage)(void *Obj, uint64_t PA);
31  void (*enableStatistics)(void *Obj, temu_BTStatID ID);
32  void (*disableStatistics)(void *Obj, temu_BTStatID ID);
33  uint64_t (*getStatistics)(void *Obj, temu_BTStatID ID);
34  void (*clearStatistics)(void *Obj, temu_BTStatID ID);
35 
36  void (*enableKeepIR)(void *Obj);
37  void (*disableKeepIR)(void *Obj);
38 
39  const char* (*disassemble)(void *Obj, uint64_t Addr);
40  const char* (*disassembleIR)(void *Obj, uint64_t Addr);
41 } temu_BTIface;
42 #define TEMU_BT_IFACE_TYPE "BTIface"
44 
45 #endif // ! TEMU_BINARY_TRANSLATOR_H
Definition: BinaryTranslation.h:15
Definition: BinaryTranslation.h:22
Definition: BinaryTranslation.h:17
Definition: BinaryTranslation.h:19
Definition: BinaryTranslation.h:18
temu_BTStatID
Definition: BinaryTranslation.h:14
TEMU_IFACE_REFERENCE_TYPE(temu_BT)
Definition: BinaryTranslation.h:16