Rev 4263 | Rev 4581 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4263 | Rev 4327 | ||
---|---|---|---|
Line 139... | Line 139... | ||
139 | static void curs_goto(int row, int col) |
139 | static void curs_goto(int row, int col) |
140 | { |
140 | { |
141 | async_msg_2(fb_info.phone, FB_CURSOR_GOTO, row, col); |
141 | async_msg_2(fb_info.phone, FB_CURSOR_GOTO, row, col); |
142 | } |
142 | } |
143 | 143 | ||
- | 144 | static void screen_yield(void) |
|
- | 145 | { |
|
- | 146 | ipc_call_sync_0_0(fb_info.phone, FB_SCREEN_YIELD); |
|
- | 147 | } |
|
- | 148 | ||
- | 149 | static void screen_reclaim(void) |
|
- | 150 | { |
|
- | 151 | ipc_call_sync_0_0(fb_info.phone, FB_SCREEN_RECLAIM); |
|
- | 152 | } |
|
- | 153 | ||
144 | static void set_style(int style) |
154 | static void set_style(int style) |
145 | { |
155 | { |
146 | async_msg_1(fb_info.phone, FB_SET_STYLE, style); |
156 | async_msg_1(fb_info.phone, FB_SET_STYLE, style); |
147 | } |
157 | } |
148 | 158 | ||
Line 328... | Line 338... | ||
328 | 338 | ||
329 | if (newcons == KERNEL_CONSOLE) { |
339 | if (newcons == KERNEL_CONSOLE) { |
330 | async_serialize_start(); |
340 | async_serialize_start(); |
331 | curs_hide_sync(); |
341 | curs_hide_sync(); |
332 | gcons_in_kernel(); |
342 | gcons_in_kernel(); |
- | 343 | screen_yield(); |
|
333 | async_serialize_end(); |
344 | async_serialize_end(); |
- | 345 | ||
334 | 346 | ||
335 | if (__SYSCALL0(SYS_DEBUG_ENABLE_CONSOLE)) { |
347 | if (__SYSCALL0(SYS_DEBUG_ENABLE_CONSOLE)) { |
336 | prev_console = active_console; |
348 | prev_console = active_console; |
337 | active_console = KERNEL_CONSOLE; |
349 | active_console = KERNEL_CONSOLE; |
338 | } else |
350 | } else |
Line 340... | Line 352... | ||
340 | } |
352 | } |
341 | 353 | ||
342 | if (newcons != KERNEL_CONSOLE) { |
354 | if (newcons != KERNEL_CONSOLE) { |
343 | async_serialize_start(); |
355 | async_serialize_start(); |
344 | 356 | ||
345 | if (active_console == KERNEL_CONSOLE) |
357 | if (active_console == KERNEL_CONSOLE) { |
- | 358 | screen_reclaim(); |
|
346 | gcons_redraw_console(); |
359 | gcons_redraw_console(); |
- | 360 | } |
|
347 | 361 | ||
348 | active_console = newcons; |
362 | active_console = newcons; |
349 | gcons_change_console(newcons); |
363 | gcons_change_console(newcons); |
350 | conn = &connections[active_console]; |
364 | conn = &connections[active_console]; |
351 | 365 | ||
Line 510... | Line 524... | ||
510 | 524 | ||
511 | async_serialize_start(); |
525 | async_serialize_start(); |
512 | gcons_notify_connect(consnum); |
526 | gcons_notify_connect(consnum); |
513 | conn->client_phone = IPC_GET_ARG5(*icall); |
527 | conn->client_phone = IPC_GET_ARG5(*icall); |
514 | screenbuffer_clear(&conn->screenbuffer); |
528 | screenbuffer_clear(&conn->screenbuffer); |
- | 529 | if (consnum == active_console) |
|
- | 530 | clrscr(); |
|
515 | 531 | ||
516 | /* Accept the connection */ |
532 | /* Accept the connection */ |
517 | ipc_answer_0(iid, EOK); |
533 | ipc_answer_0(iid, EOK); |
518 | 534 | ||
519 | while (1) { |
535 | while (1) { |