Rev 1702 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1702 | Rev 1780 | ||
---|---|---|---|
Line 42... | Line 42... | ||
42 | chardev_t ski_uconsole; |
42 | chardev_t ski_uconsole; |
43 | static bool kb_disable; |
43 | static bool kb_disable; |
44 | int kbd_uspace=0; |
44 | int kbd_uspace=0; |
45 | 45 | ||
46 | static void ski_putchar(chardev_t *d, const char ch); |
46 | static void ski_putchar(chardev_t *d, const char ch); |
47 | static __s32 ski_getchar(void); |
47 | static int32_t ski_getchar(void); |
48 | 48 | ||
49 | /** Display character on debug console |
49 | /** Display character on debug console |
50 | * |
50 | * |
51 | * Use SSC (Simulator System Call) to |
51 | * Use SSC (Simulator System Call) to |
52 | * display character on debug console. |
52 | * display character on debug console. |
Line 76... | Line 76... | ||
76 | * |
76 | * |
77 | * This call is non-blocking. |
77 | * This call is non-blocking. |
78 | * |
78 | * |
79 | * @return ASCII code of pressed key or 0 if no key pressed. |
79 | * @return ASCII code of pressed key or 0 if no key pressed. |
80 | */ |
80 | */ |
81 | __s32 ski_getchar(void) |
81 | int32_t ski_getchar(void) |
82 | { |
82 | { |
83 | __u64 ch; |
83 | uint64_t ch; |
84 | 84 | ||
85 | __asm__ volatile ( |
85 | __asm__ volatile ( |
86 | "mov r15=%1\n" |
86 | "mov r15=%1\n" |
87 | "break 0x80000;;\n" /* modifies r8 */ |
87 | "break 0x80000;;\n" /* modifies r8 */ |
88 | "mov %0=r8;;\n" |
88 | "mov %0=r8;;\n" |
Line 90... | Line 90... | ||
90 | : "=r" (ch) |
90 | : "=r" (ch) |
91 | : "i" (SKI_GETCHAR) |
91 | : "i" (SKI_GETCHAR) |
92 | : "r15", "r8" |
92 | : "r15", "r8" |
93 | ); |
93 | ); |
94 | 94 | ||
95 | return (__s32) ch; |
95 | return (int32_t) ch; |
96 | } |
96 | } |
97 | 97 | ||
98 | /** |
98 | /** |
99 | * This is a blocking wrapper for ski_getchar(). |
99 | * This is a blocking wrapper for ski_getchar(). |
100 | * To be used when the kernel crashes. |
100 | * To be used when the kernel crashes. |