| #include <arch/console.h> | 
 | #include <pmap.h> | 
 | #include <atomic.h> | 
 | #include <smp.h> | 
 | #include <kmalloc.h> | 
 | #include <monitor.h> | 
 | #include <process.h> | 
 |  | 
 | int cons_get_any_char(void) | 
 | { | 
 | 	assert(0); | 
 | } | 
 |  | 
 | void cons_init() | 
 | { | 
 | 	mtpcr(PCR_SR, mfpcr(PCR_SR) | (1 << (IRQ_HOST+SR_IM_SHIFT))); | 
 | 	while (mtpcr(PCR_TOHOST, 0x01L << 56)); | 
 | } | 
 |  | 
 | // `High'-level console I/O.  Used by readline and cprintf. | 
 |  | 
 | void | 
 | cputbuf(const char* str, int len) | 
 | { | 
 | 	for (int i = 0; i < len; i++) | 
 | 		cputchar(str[i]); | 
 | } | 
 |  | 
 | void poll_keyboard() | 
 | { | 
 | } | 
 |  | 
 | // Low-level console I/O | 
 |  | 
 | void | 
 | cputchar(int c) | 
 | { | 
 | 	while (mtpcr(PCR_TOHOST, 0x0101000000000000 | (unsigned char)c)); | 
 | } | 
 |  | 
 | int | 
 | getchar(void) | 
 | { | 
 | 	char c = 'x'; | 
 |  | 
 | 	#warning "implement me" | 
 | 	/* maybe do a qio read */ | 
 |  | 
 | 	return c; | 
 | } | 
 |  | 
 | int | 
 | iscons(int fdnum) | 
 | { | 
 | 	// used by readline | 
 | 	return 1; | 
 | } |