Subversion Repositories HelenOS

Rev

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) {