/* * blatantly copied from linux/kernel/printk.c * * Copyright (C) 1991, 1992 Linus Torvalds * */ #include #include #include #include #include DECLARE_SPIN_LOCK(console_lock) int do_printk(int msg_level, const char *fmt, ...) { va_list args; int i; if (msg_level > console_loglevel) { return 0; } #if CONFIG_SQUELCH_EARLY_SMP && defined(__PRE_RAM__) if (!boot_cpu()) return 0; #endif DISABLE_TRACE; spin_lock(&console_lock); va_start(args, fmt); i = vtxprintf(console_tx_byte, fmt, args); va_end(args); console_tx_flush(); spin_unlock(&console_lock); ENABLE_TRACE; return i; }