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
#ifndef ULM2_UDB_H
#define ULM2_UDB_H

#include <stdbool.h>
#include <stddef.h>
#include <stdint.h>

#ifdef __cplusplus
extern "C" {
#endif // __cplusplus

enum UdbMod
{
    UDB_READ = 1,
    UDB_WRITE = 2,
    UDB_READ_WRITE = 3,
};

void ulm_halt(uint64_t code);

extern bool udb_on;
extern bool udb_inStep;
extern uint64_t udb_numPages;
extern bool udb_illegalInstruction;
extern bool udb_badAlignment;

void udb_addRegMsg(size_t regId, enum UdbMod udbMod);
void udb_addMemMsg(uint64_t addr, enum UdbMod udbMod);
void udb_notify();
void udb_clearMsg();

#ifdef __cplusplus
} // extern "C"
#endif // __cplusplus

#endif // ULM2_UDB_H