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