Rev 893 | Rev 1570 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 893 | Rev 1507 | ||
---|---|---|---|
Line 27... | Line 27... | ||
27 | */ |
27 | */ |
28 | 28 | ||
29 | #include <arch/ski/ski.h> |
29 | #include <arch/ski/ski.h> |
30 | #include <console/console.h> |
30 | #include <console/console.h> |
31 | #include <console/chardev.h> |
31 | #include <console/chardev.h> |
- | 32 | #include <arch/interrupt.h> |
|
- | 33 | #include <sysinfo/sysinfo.h> |
|
32 | 34 | ||
33 | static chardev_t ski_console; |
35 | chardev_t ski_console; |
- | 36 | chardev_t ski_uconsole; |
|
34 | static bool kb_disable; |
37 | static bool kb_disable; |
- | 38 | int kbd_uspace=0; |
|
35 | 39 | ||
36 | static void ski_putchar(chardev_t *d, const char ch); |
40 | static void ski_putchar(chardev_t *d, const char ch); |
37 | static __s32 ski_getchar(void); |
41 | static __s32 ski_getchar(void); |
38 | 42 | ||
39 | /** Display character on debug console |
43 | /** Display character on debug console |
Line 109... | Line 113... | ||
109 | return; |
113 | return; |
110 | 114 | ||
111 | ch = ski_getchar(); |
115 | ch = ski_getchar(); |
112 | if(ch == '\r') |
116 | if(ch == '\r') |
113 | ch = '\n'; |
117 | ch = '\n'; |
114 | if (ch) |
118 | if (ch){ |
- | 119 | if(kbd_uspace){ |
|
- | 120 | chardev_push_character(&ski_uconsole, ch); |
|
- | 121 | virtual_interrupt(IRQ_KBD,NULL); |
|
- | 122 | } |
|
- | 123 | else { |
|
115 | chardev_push_character(&ski_console, ch); |
124 | chardev_push_character(&ski_console, ch); |
- | 125 | ||
- | 126 | } |
|
- | 127 | ||
- | 128 | } |
|
116 | } |
129 | } |
117 | 130 | ||
118 | /* Called from getc(). */ |
131 | /* Called from getc(). */ |
119 | static void ski_kb_enable(chardev_t *d) |
132 | static void ski_kb_enable(chardev_t *d) |
120 | { |
133 | { |
Line 150... | Line 163... | ||
150 | : "i" (SKI_INIT_CONSOLE) |
163 | : "i" (SKI_INIT_CONSOLE) |
151 | : "r15", "r8" |
164 | : "r15", "r8" |
152 | ); |
165 | ); |
153 | 166 | ||
154 | chardev_initialize("ski_console", &ski_console, &ski_ops); |
167 | chardev_initialize("ski_console", &ski_console, &ski_ops); |
- | 168 | chardev_initialize("ski_uconsole", &ski_uconsole, &ski_ops); |
|
155 | stdin = &ski_console; |
169 | stdin = &ski_console; |
156 | stdout = &ski_console; |
170 | stdout = &ski_console; |
- | 171 | ||
- | 172 | } |
|
- | 173 | /** Setup console sysinfo (i.e. Keyboard IRQ) |
|
- | 174 | * |
|
- | 175 | * Because sysinfo neads memory allocation/dealocation |
|
- | 176 | * this functions should be called separetely from init. |
|
- | 177 | * |
|
- | 178 | */ |
|
- | 179 | void ski_set_console_sysinfo(void) |
|
- | 180 | { |
|
- | 181 | sysinfo_set_item_val("kbd",NULL,true); |
|
- | 182 | sysinfo_set_item_val("kbd.irq",NULL,IRQ_KBD); |
|
157 | } |
183 | } |