parent
31941c0813
commit
d7e684ad91
@ -0,0 +1,27 @@ |
|||||||
|
#include "sbi.h" |
||||||
|
|
||||||
|
#include <stdio.h> |
||||||
|
|
||||||
|
void sbi_call(rv32_cpu_t* cpu, uint32_t extension_id, uint32_t func_id) |
||||||
|
{ |
||||||
|
switch(extension_id) |
||||||
|
{ |
||||||
|
case SBI_EXTENSION_LEGACY_CONSOLE_PUTCHAR: |
||||||
|
{ |
||||||
|
printf("%c", cpu->regs.a0); |
||||||
|
cpu->regs.a0 = 0; |
||||||
|
break; |
||||||
|
} |
||||||
|
case SBI_EXTENSION_LEGACY_SHUTDOWN: |
||||||
|
{ |
||||||
|
printf("sbi_call: shutdown, goodbye !\n"); |
||||||
|
cpu->sim_ticks_left = 1; |
||||||
|
break; |
||||||
|
} |
||||||
|
default: |
||||||
|
{ |
||||||
|
fprintf(stderr, "sbi_call: unknown extension id 0x%x\n", extension_id); |
||||||
|
break; |
||||||
|
} |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,11 @@ |
|||||||
|
#ifndef SBI_H |
||||||
|
#define SBI_H |
||||||
|
|
||||||
|
#include "cpu/rv32cpu.h" |
||||||
|
|
||||||
|
#define SBI_EXTENSION_LEGACY_CONSOLE_PUTCHAR 0x1 |
||||||
|
#define SBI_EXTENSION_LEGACY_SHUTDOWN 0x8 |
||||||
|
|
||||||
|
void sbi_call(rv32_cpu_t* cpu, uint32_t extension_id, uint32_t func_id); |
||||||
|
|
||||||
|
#endif |
Loading…
Reference in new issue