Rev 4226 | Rev 4310 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 4226 | Rev 4252 | ||
|---|---|---|---|
| Line 39... | Line 39... | ||
| 39 | #include <synch/waitq.h> |
39 | #include <synch/waitq.h> |
| 40 | #include <synch/spinlock.h> |
40 | #include <synch/spinlock.h> |
| 41 | #include <arch/types.h> |
41 | #include <arch/types.h> |
| 42 | #include <ddi/irq.h> |
42 | #include <ddi/irq.h> |
| 43 | #include <ddi/ddi.h> |
43 | #include <ddi/ddi.h> |
| 44 | #include <event/event.h> |
44 | #include <ipc/event.h> |
| 45 | #include <ipc/irq.h> |
45 | #include <ipc/irq.h> |
| 46 | #include <arch.h> |
46 | #include <arch.h> |
| 47 | #include <func.h> |
47 | #include <func.h> |
| 48 | #include <print.h> |
48 | #include <print.h> |
| 49 | #include <putchar.h> |
49 | #include <putchar.h> |
| 50 | #include <atomic.h> |
50 | #include <atomic.h> |
| 51 | #include <syscall/copy.h> |
51 | #include <syscall/copy.h> |
| 52 | #include <errno.h> |
52 | #include <errno.h> |
| 53 | #include <string.h> |
53 | #include <string.h> |
| 54 | 54 | ||
| 55 | #define KLOG_SIZE PAGE_SIZE |
55 | #define KLOG_PAGES 4 |
| 56 | #define KLOG_LENGTH (KLOG_SIZE / sizeof(wchar_t)) |
56 | #define KLOG_LENGTH (KLOG_PAGES * PAGE_SIZE / sizeof(wchar_t)) |
| 57 | #define KLOG_LATENCY 8 |
57 | #define KLOG_LATENCY 8 |
| 58 | 58 | ||
| 59 | /** Kernel log cyclic buffer */ |
59 | /** Kernel log cyclic buffer */ |
| 60 | static wchar_t klog[KLOG_LENGTH] __attribute__ ((aligned (PAGE_SIZE))); |
60 | static wchar_t klog[KLOG_LENGTH] __attribute__ ((aligned (PAGE_SIZE))); |
| 61 | 61 | ||
| Line 93... | Line 93... | ||
| 93 | void klog_init(void) |
93 | void klog_init(void) |
| 94 | { |
94 | { |
| 95 | void *faddr = (void *) KA2PA(klog); |
95 | void *faddr = (void *) KA2PA(klog); |
| 96 | 96 | ||
| 97 | ASSERT((uintptr_t) faddr % FRAME_SIZE == 0); |
97 | ASSERT((uintptr_t) faddr % FRAME_SIZE == 0); |
| 98 | ASSERT(KLOG_SIZE % FRAME_SIZE == 0); |
- | |
| 99 | 98 | ||
| 100 | klog_parea.pbase = (uintptr_t) faddr; |
99 | klog_parea.pbase = (uintptr_t) faddr; |
| 101 | klog_parea.frames = SIZE2FRAMES(sizeof(klog)); |
100 | klog_parea.frames = SIZE2FRAMES(sizeof(klog)); |
| 102 | ddi_parea_register(&klog_parea); |
101 | ddi_parea_register(&klog_parea); |
| 103 | 102 | ||
| 104 | sysinfo_set_item_val("klog.faddr", NULL, (unative_t) faddr); |
103 | sysinfo_set_item_val("klog.faddr", NULL, (unative_t) faddr); |
| 105 | sysinfo_set_item_val("klog.pages", NULL, SIZE2FRAMES(sizeof(klog))); |
104 | sysinfo_set_item_val("klog.pages", NULL, KLOG_PAGES); |
| 106 | 105 | ||
| 107 | spinlock_lock(&klog_lock); |
106 | spinlock_lock(&klog_lock); |
| 108 | klog_inited = true; |
107 | klog_inited = true; |
| 109 | spinlock_unlock(&klog_lock); |
108 | spinlock_unlock(&klog_lock); |
| 110 | } |
109 | } |