Forgot to commit this earlier.
[riscv-tests.git] / debug / programs / init.h
1 #ifndef INIT_H
2 #define INIT_H
3
4 #define MTIME (*(volatile long long *)(0x02000000 + 0xbff8))
5 #define MTIMECMP ((volatile long long *)(0x02000000 + 0x4000))
6
7 #define csr_read(csr) \
8 ({ \
9 register unsigned long __v; \
10 __asm__ __volatile__ ("csrr %0, " #csr \
11 : "=r" (__v)); \
12 __v; \
13 })
14
15 typedef void* (*trap_handler_t)(unsigned hartid, unsigned mcause, void *mepc,
16 void *sp);
17 void set_trap_handler(trap_handler_t handler);
18 void enable_timer_interrupts();
19
20 #endif