MSI-X: Minor changes
[akaros.git] / kern / arch / riscv / console.c
1 #include <arch/console.h>
2 #include <console.h>
3 #include <pmap.h>
4 #include <atomic.h>
5 #include <smp.h>
6 #include <kmalloc.h>
7 #include <monitor.h>
8 #include <process.h>
9
10 int cons_get_any_char(void)
11 {
12         assert(0);
13 }
14
15 void cons_init()
16 {
17         mtpcr(PCR_SR, mfpcr(PCR_SR) | (1 << (IRQ_HOST+SR_IM_SHIFT)));
18         while (mtpcr(PCR_TOHOST, 0x01L << 56));
19 }
20
21 // `High'-level console I/O.  Used by readline and cprintf.
22
23 void
24 cputbuf(const char* str, int len)
25 {
26         for (int i = 0; i < len; i++)
27                 cputchar(str[i]);
28 }
29
30 void poll_keyboard()
31 {
32 }
33
34 // Low-level console I/O
35
36 void
37 cputchar(int c)
38 {
39         while (mtpcr(PCR_TOHOST, 0x0101000000000000 | (unsigned char)c));
40 }
41
42 int
43 getchar(void)
44 {
45         char c;
46         kb_get_from_buf(&cons_buf, &c, 1);
47         return c;
48 }
49
50 int
51 iscons(int fdnum)
52 {
53         // used by readline
54         return 1;
55 }