Changeset adf7f9c in mainline for kernel/arch/xen32/src/drivers/xconsole.c
- Timestamp:
- 2006-08-02T00:00:39Z (18 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- deaa22f
- Parents:
- 7c5a8dd
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/xen32/src/drivers/xconsole.c
r7c5a8dd radf7f9c 40 40 #include <console/console.h> 41 41 #include <arch/hypercall.h> 42 #include <mm/frame.h>43 42 44 43 #define MASK_INDEX(index, ring) ((index) & (sizeof(ring) - 1)) 45 46 typedef struct {47 char in[1024];48 char out[2048];49 uint32_t in_cons;50 uint32_t in_prod;51 uint32_t out_cons;52 uint32_t out_prod;53 } xencons_t;54 44 55 45 static bool asynchronous = false; … … 72 62 { 73 63 if (asynchronous) { 74 xencons_t *console = (xencons_t *) PA2KA(MA2PA(PFN2ADDR(start_info.console_mfn))); 75 uint32_t cons = console->out_cons; 76 uint32_t prod = console->out_prod; 64 uint32_t cons = console_page.out_cons; 65 uint32_t prod = console_page.out_prod; 77 66 78 67 memory_barrier(); 79 68 80 if ((prod - cons) > sizeof(console ->out))69 if ((prod - cons) > sizeof(console_page.out)) 81 70 return; 82 71 83 72 if (ch == '\n') 84 console ->out[MASK_INDEX(prod++, console->out)] = '\r';85 console ->out[MASK_INDEX(prod++, console->out)] = ch;73 console_page.out[MASK_INDEX(prod++, console_page.out)] = '\r'; 74 console_page.out[MASK_INDEX(prod++, console_page.out)] = ch; 86 75 87 76 write_barrier(); 88 77 89 console ->out_prod = prod;78 console_page.out_prod = prod; 90 79 91 80 xen_notify_remote(start_info.console_evtchn);
Note:
See TracChangeset
for help on using the changeset viewer.