Rev 3742 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 3742 | Rev 3745 | ||
|---|---|---|---|
| Line 104... | Line 104... | ||
| 104 | static void clrscr(void) |
104 | static void clrscr(void) |
| 105 | { |
105 | { |
| 106 | async_msg_0(fb_info.phone, FB_CLEAR); |
106 | async_msg_0(fb_info.phone, FB_CLEAR); |
| 107 | } |
107 | } |
| 108 | 108 | ||
| 109 | static void curs_visibility(int v) |
109 | static void curs_visibility(bool visible) |
| 110 | { |
110 | { |
| 111 | async_msg_1(fb_info.phone, FB_CURSOR_VISIBILITY, v); |
111 | async_msg_1(fb_info.phone, FB_CURSOR_VISIBILITY, visible); |
| - | 112 | } |
|
| - | 113 | ||
| - | 114 | static void curs_hide_sync(void) |
|
| - | 115 | { |
|
| - | 116 | ipc_call_sync_1_0(fb_info.phone, FB_CURSOR_VISIBILITY, false); |
|
| 112 | } |
117 | } |
| 113 | 118 | ||
| 114 | static void curs_goto(int row, int col) |
119 | static void curs_goto(int row, int col) |
| 115 | { |
120 | { |
| 116 | async_msg_2(fb_info.phone, FB_CURSOR_GOTO, row, col); |
121 | async_msg_2(fb_info.phone, FB_CURSOR_GOTO, row, col); |
| Line 195... | Line 200... | ||
| 195 | if (newcons == active_console) |
200 | if (newcons == active_console) |
| 196 | return; |
201 | return; |
| 197 | 202 | ||
| 198 | if (newcons == KERNEL_CONSOLE) { |
203 | if (newcons == KERNEL_CONSOLE) { |
| 199 | async_serialize_start(); |
204 | async_serialize_start(); |
| 200 | curs_visibility(0); |
205 | curs_hide_sync(); |
| 201 | gcons_in_kernel(); |
206 | gcons_in_kernel(); |
| 202 | async_serialize_end(); |
207 | async_serialize_end(); |
| 203 | 208 | ||
| 204 | if (__SYSCALL0(SYS_DEBUG_ENABLE_CONSOLE)) |
209 | if (__SYSCALL0(SYS_DEBUG_ENABLE_CONSOLE)) |
| 205 | active_console = KERNEL_CONSOLE; |
210 | active_console = KERNEL_CONSOLE; |
| 206 | else |
211 | else |
| 207 | newcons == active_console; |
212 | newcons = active_console; |
| 208 | } |
213 | } |
| 209 | 214 | ||
| 210 | if (newcons != KERNEL_CONSOLE) { |
215 | if (newcons != KERNEL_CONSOLE) { |
| 211 | async_serialize_start(); |
216 | async_serialize_start(); |
| 212 | 217 | ||
| Line 216... | Line 221... | ||
| 216 | active_console = newcons; |
221 | active_console = newcons; |
| 217 | gcons_change_console(newcons); |
222 | gcons_change_console(newcons); |
| 218 | conn = &connections[active_console]; |
223 | conn = &connections[active_console]; |
| 219 | 224 | ||
| 220 | set_style(&conn->screenbuffer.style); |
225 | set_style(&conn->screenbuffer.style); |
| 221 | curs_visibility(0); |
226 | curs_visibility(false); |
| 222 | if (interbuffer) { |
227 | if (interbuffer) { |
| 223 | for (i = 0; i < conn->screenbuffer.size_x; i++) |
228 | for (i = 0; i < conn->screenbuffer.size_x; i++) |
| 224 | for (j = 0; j < conn->screenbuffer.size_y; j++) { |
229 | for (j = 0; j < conn->screenbuffer.size_y; j++) { |
| 225 | unsigned int size_x; |
230 | unsigned int size_x; |
| 226 | 231 | ||