1 
2 #ifndef __CONSOLE_H__
3 #define __CONSOLE_H__
4 
5 #include <sys/spinlock.h>
6 
7 #define KEY_F1		0xF1
8 #define KEY_F2		0xF2
9 #define KEY_F3		0XF3
10 #define KEY_F4		0xF4
11 #define KEY_F5		0xF5
12 #define KEY_F6		0xF6
13 #define KEY_F7		0xF7
14 #define KEY_F8		0xF8
15 #define KEY_F9		0xF9
16 #define KEY_F10		0xFA
17 #define KEY_F11		0xFB
18 #define KEY_F12		0XFC
19 
20 #define CONSOLE_KEYBUF_MAXLEN   256
21 
22 typedef struct Console {
23     // Keyboard Buffer
24     int nextKey;
25     int lastKey;
26     char keyBuf[CONSOLE_KEYBUF_MAXLEN];
27     Spinlock keyLock;
28 } Console;
29 
30 void Console_Init();
31 char Console_Getc();
32 void Console_Gets(char *str, size_t n);
33 void Console_Putc(char ch);
34 void Console_Puts(const char *str);
35 
36 void Console_EnqueueKey(char key);
37 
38 #endif /* __CONSOLE_H__ */
39 
40