diff options
-rw-r--r-- | arch/x86/machine/boot.c | 1 | ||||
-rw-r--r-- | kern/printk.c | 8 | ||||
-rw-r--r-- | kern/printk.h | 1 |
3 files changed, 9 insertions, 1 deletions
diff --git a/arch/x86/machine/boot.c b/arch/x86/machine/boot.c index 77b0d10e..4b946596 100644 --- a/arch/x86/machine/boot.c +++ b/arch/x86/machine/boot.c @@ -273,6 +273,7 @@ boot_main(void) thread_bootstrap(); pmap_bootstrap(); cga_setup(); + printk_setup(); boot_show_version(); cpu_check(cpu_current()); cpu_info(cpu_current()); diff --git a/kern/printk.c b/kern/printk.c index 6d1b9754..df3ba715 100644 --- a/kern/printk.c +++ b/kern/printk.c @@ -31,7 +31,7 @@ extern void console_write_byte(char c); static char printk_buffer[PRINTK_BUFSIZE]; -static struct spinlock printk_lock = SPINLOCK_INITIALIZER; +static struct spinlock printk_lock; int printk(const char *format, ...) @@ -64,3 +64,9 @@ vprintk(const char *format, va_list ap) return length; } + +void +printk_setup(void) +{ + spinlock_init(&printk_lock); +} diff --git a/kern/printk.h b/kern/printk.h index c86384bd..02173b33 100644 --- a/kern/printk.h +++ b/kern/printk.h @@ -33,5 +33,6 @@ int printk(const char *format, ...) __format_printf(1, 2); int vprintk(const char *format, va_list ap) __format_printf(1, 0); +void printk_setup(void); #endif /* _KERN_PRINTK_H */ |