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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
|
#ifndef __API_MAKIDEBUG_H
#define __API_MAKIDEBUG_H
/*---------------------------------------------------------
api_makiDebugger
void debugger_trace();
int debugger_isActive();
int debugger_getVIP();
int debugger_getVSD();
int debugger_getVCC();
int debugger_getVSP();
int debugger_filterEvent(int vcpuid, int eventid);
void debugger_eventComplete();
MakiJITD *debugger_createJITD(int vcpuid, int bringitup=1);
int debugger_readStack(int n);
int debugger_getCodeBlock(int vcpuid);
---------------------------------------------------------*/
#include <wasabicfg.h>
#ifndef WASABI_COMPILE_SCRIPT
#error "This module requires the script api"
#endif
#ifndef WASABI_COMPILE_MAKIDEBUG
#error "This module requires the script debugger api"
#endif
#include <bfc/dispatch.h>
#include <api/script/scriptvar.h>
class MakiJITD;
class NOVTABLE api_makiDebugger : public Dispatchable {
public:
void debugger_trace();
int debugger_isActive();
int debugger_getVIP();
int debugger_getVSD();
int debugger_getVCC();
int debugger_getVSP();
int debugger_filterEvent(int vcpuid, int eventid);
void debugger_eventComplete();
MakiJITD *debugger_createJITD(int vcpuid, int bringitup=1);
scriptVar debugger_readStack(int n);
const char *debugger_getCodeBlock(int vcpuid);
enum {
API_MAKIDEBUGGER_DEBUGGER_TRACE = 0,
API_MAKIDEBUGGER_DEBUGGER_ISACTIVE = 10,
API_MAKIDEBUGGER_DEBUGGER_GETVIP = 20,
API_MAKIDEBUGGER_DEBUGGER_GETVSD = 30,
API_MAKIDEBUGGER_DEBUGGER_GETVCC = 40,
API_MAKIDEBUGGER_DEBUGGER_GETVSP = 50,
API_MAKIDEBUGGER_DEBUGGER_FILTEREVENT = 60,
API_MAKIDEBUGGER_DEBUGGER_EVENTCOMPLETE = 70,
API_MAKIDEBUGGER_DEBUGGER_CREATEJITD = 80,
API_MAKIDEBUGGER_DEBUGGER_READSTACK = 90,
API_MAKIDEBUGGER_DEBUGGER_GETCODEBLOCK = 100,
};
};
inline void api_makiDebugger::debugger_trace() {
_voidcall(API_MAKIDEBUGGER_DEBUGGER_TRACE);
}
inline int api_makiDebugger::debugger_isActive() {
return _call(API_MAKIDEBUGGER_DEBUGGER_ISACTIVE, (int)0);
}
inline int api_makiDebugger::debugger_getVIP() {
return _call(API_MAKIDEBUGGER_DEBUGGER_GETVIP, (int)0);
}
inline int api_makiDebugger::debugger_getVSD() {
return _call(API_MAKIDEBUGGER_DEBUGGER_GETVSD, (int)0);
}
inline int api_makiDebugger::debugger_getVCC() {
return _call(API_MAKIDEBUGGER_DEBUGGER_GETVCC, (int)0);
}
inline int api_makiDebugger::debugger_getVSP() {
return _call(API_MAKIDEBUGGER_DEBUGGER_GETVSP, (int)0);
}
inline int api_makiDebugger::debugger_filterEvent(int vcpuid, int eventid) {
return _call(API_MAKIDEBUGGER_DEBUGGER_FILTEREVENT, (int)0, vcpuid, eventid);
}
inline void api_makiDebugger::debugger_eventComplete() {
_voidcall(API_MAKIDEBUGGER_DEBUGGER_EVENTCOMPLETE);
}
inline MakiJITD *api_makiDebugger::debugger_createJITD(int vcpuid, int bringitup) {
return _call(API_MAKIDEBUGGER_DEBUGGER_CREATEJITD, (MakiJITD *)NULL, vcpuid, bringitup);
}
inline const char *api_makiDebugger::debugger_getCodeBlock(int vcpuid) {
return _call(API_MAKIDEBUGGER_DEBUGGER_GETCODEBLOCK, (const char *)NULL, vcpuid);
}
inline scriptVar api_makiDebugger::debugger_readStack(int n) {
scriptVar v={0,0};
return _call(API_MAKIDEBUGGER_DEBUGGER_READSTACK, v, n);
}
class api_makiDebuggerI : public api_makiDebugger {
public:
virtual void debugger_trace()=0;
virtual int debugger_isActive()=0;
virtual int debugger_getVIP()=0;
virtual int debugger_getVSD()=0;
virtual int debugger_getVCC()=0;
virtual int debugger_getVSP()=0;
virtual int debugger_filterEvent(int vcpuid, int eventid)=0;
virtual void debugger_eventComplete()=0;
virtual MakiJITD *debugger_createJITD(int vcpuid, int bringitup=1)=0;
virtual scriptVar debugger_readStack(int n)=0;
virtual const char *debugger_getCodeBlock(int vcpuid)=0;
protected:
RECVS_DISPATCH;
};
// {858E4B64-AF1E-4b64-8D27-EFFAD9F82BB4}
static const GUID makiDebugApiServiceGuid =
{ 0x858e4b64, 0xaf1e, 0x4b64, { 0x8d, 0x27, 0xef, 0xfa, 0xd9, 0xf8, 0x2b, 0xb4 } };
extern api_makiDebugger *debugApi;
#endif
|