| 127 | } |
| 128 | |
| 129 | int vprintk(int msg_level, const char *fmt, va_list args) |
| 130 | { |
| 131 | union log_state state = { .level = msg_level }; |
| 132 | int i; |
| 133 | |
| 134 | if (CONFIG(SQUELCH_EARLY_SMP) && ENV_ROMSTAGE_OR_BEFORE && !boot_cpu()) |
| 135 | return 0; |
| 136 | |
| 137 | state.speed = console_log_level(msg_level); |
| 138 | if (state.speed < CONSOLE_LOG_FAST) |
| 139 | return 0; |
| 140 | |
| 141 | spin_lock(&console_lock); |
| 142 | |
| 143 | console_time_run(); |
| 144 | |
| 145 | i = vtxprintf(wrap_putchar, fmt, args, state.as_ptr); |
| 146 | if (!LOG_FAST(state)) |
| 147 | console_tx_flush(); |
| 148 | |
| 149 | console_time_stop(); |
| 150 | |
| 151 | spin_unlock(&console_lock); |
| 152 | |
| 153 | return i; |
| 154 | } |
| 155 | |
| 156 | int printk(int msg_level, const char *fmt, ...) |
| 157 | { |
no test coverage detected