Ignore:
Timestamp:
2009-01-31T21:27:18Z (16 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
4863e50b
Parents:
96a2e45
Message:

silent kernel console output when user space console is active

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/ia32xen/src/drivers/xconsole.c

    r96a2e45 r516ff92  
    5656}
    5757
    58 void xen_putchar(chardev_t *d, const char ch)
     58void xen_putchar(chardev_t *d, const char ch, bool silent)
    5959{
    60         if (start_info.console.domU.evtchn != 0) {
    61                 uint32_t cons = console_page.out_cons;
    62                 uint32_t prod = console_page.out_prod;
    63                
    64                 memory_barrier();
    65                
    66                 if ((prod - cons) > sizeof(console_page.out))
    67                         return;
    68                
    69                 if (ch == '\n')
    70                         console_page.out[MASK_INDEX(prod++, console_page.out)] = '\r';
    71                 console_page.out[MASK_INDEX(prod++, console_page.out)] = ch;
    72                
    73                 write_barrier();
    74                
    75                 console_page.out_prod = prod;
    76                
    77                 xen_notify_remote(start_info.console.domU.evtchn);
    78         } else
    79                 xen_console_io(CONSOLE_IO_WRITE, 1, &ch);
     60        if (!silent) {
     61                if (start_info.console.domU.evtchn != 0) {
     62                        uint32_t cons = console_page.out_cons;
     63                        uint32_t prod = console_page.out_prod;
     64                       
     65                        memory_barrier();
     66                       
     67                        if ((prod - cons) > sizeof(console_page.out))
     68                                return;
     69                       
     70                        if (ch == '\n')
     71                                console_page.out[MASK_INDEX(prod++, console_page.out)] = '\r';
     72                        console_page.out[MASK_INDEX(prod++, console_page.out)] = ch;
     73                       
     74                        write_barrier();
     75                       
     76                        console_page.out_prod = prod;
     77                       
     78                        xen_notify_remote(start_info.console.domU.evtchn);
     79                } else
     80                        xen_console_io(CONSOLE_IO_WRITE, 1, &ch);
     81        }
    8082}
    8183
Note: See TracChangeset for help on using the changeset viewer.