about summary refs log tree commit diff stats
path: root/src/include/gdbjit.h
blob: f8cb9714753fddc034e3673631957216a8067a0b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#ifndef __GDBJIT_H__
#define __GDBJIT_H__

#if defined(DYNAREC) && defined(GDBJIT)
#include <gdb/jit-reader.h>
#include <stdio.h>
#include <stdint.h>

typedef struct gdbjit_block_s {
    char filename[32];
    FILE* file;
    GDB_CORE_ADDR start;
    GDB_CORE_ADDR end;
    uintptr_t x64start;
    size_t alloced;
    size_t nlines;
    struct gdb_line_mapping lines[0];
} gdbjit_block_t;


void GdbJITNewBlock(gdbjit_block_t* block, GDB_CORE_ADDR start, GDB_CORE_ADDR end, uintptr_t x64start);
gdbjit_block_t* GdbJITBlockAddLine(gdbjit_block_t* block, GDB_CORE_ADDR addr, const char* line);
void GdbJITBlockReady(gdbjit_block_t* block);
void GdbJITBlockCleanup(gdbjit_block_t* block);

#else

#define GdbJITNewBlock(a, b, c, d)
#define GdbJITBlockAddLine(a, b, c) NULL
#define GdbJITBlockReady(a)
#define GdbJITBlockCleanup(a)

#endif

#endif // __GDBJIT_H__