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