1 #include <console/loglevel.h>
6 #define STR(X) __STR(X)
8 #ifndef LINUXBIOS_EXTRA_VERSION
9 #define LINUXBIOS_EXTRA_VERSION
12 #ifndef ASM_CONSOLE_LOGLEVEL
13 #define ASM_CONSOLE_LOGLEVEL 5
16 .ascii "\r\n\r\nLinuxBIOS-"
17 .ascii STR(LINUXBIOS_VERSION)
18 .ascii STR(LINUXBIOS_EXTRA_VERSION)
20 .ascii STR(LINUXBIOS_BUILD)
21 .asciz " starting...\r\n"
25 #if CONFIG_CONSOLE_SERIAL8250
26 #define __CONSOLE_INLINE_TX_AL TTYS0_TX_AL
28 #define __CONSOLE_INLINE_TX_AL
31 /* uses: esp, ax, dx */
32 #define __CONSOLE_TX_CHAR(byte) \
37 #define __CONSOLE_INLINE_TX_CHAR(byte) \
39 __CONSOLE_INLINE_TX_AL
41 /* uses: esp, ax, edx */
42 #define __CONSOLE_TX_HEX8(byte) \
44 CALLSP(console_tx_hex8)
46 /* uses: byte, ax, dx */
47 #define __CONSOLE_INLINE_TX_HEX8(byte) \
56 __CONSOLE_INLINE_TX_AL ; \
65 __CONSOLE_INLINE_TX_AL
67 /* uses: esp, eax, ebx, dx */
68 #define __CONSOLE_TX_HEX32(lword) \
70 CALLSP(console_tx_hex32)
72 /* uses: eax, lword, dx */
73 #define __CONSOLE_INLINE_TX_HEX32(lword) \
81 __CONSOLE_INLINE_TX_AL ; \
91 __CONSOLE_INLINE_TX_AL ; \
101 __CONSOLE_INLINE_TX_AL ; \
111 __CONSOLE_INLINE_TX_AL ; \
121 __CONSOLE_INLINE_TX_AL ; \
131 __CONSOLE_INLINE_TX_AL ; \
141 __CONSOLE_INLINE_TX_AL ; \
150 __CONSOLE_INLINE_TX_AL
153 /* uses: esp, ebx, ax, dx */
154 #define __CONSOLE_TX_STRING(string) \
156 CALLSP(console_tx_string)
158 /* uses: ebx, ax, dx */
159 #define __CONSOLE_INLINE_TX_STRING(string) \
160 movl string, %ebx ; \
161 10: movb (%ebx), %al ; \
165 __CONSOLE_INLINE_TX_AL ; \
170 #define CONSOLE_EMERG_TX_CHAR(byte) __CONSOLE_TX_CHAR(byte)
171 #define CONSOLE_EMERG_INLINE_TX_CHAR(byte) __CONSOLE_INLINE_TX_CHAR(byte)
172 #define CONSOLE_EMERG_TX_HEX8(byte) __CONSOLE_TX_HEX8(byte)
173 #define CONSOLE_EMERG_INLINE_TX_HEX8(byte) __CONSOLE_INLINE_TX_HEX8(byte)
174 #define CONSOLE_EMERG_TX_HEX32(lword) __CONSOLE_TX_HEX32(lword)
175 #define CONSOLE_EMERG_INLINE_TX_HEX32(lword) __CONSOLE_INLINE_TX_HEX32(lword)
176 #define CONSOLE_EMERG_TX_STRING(string) __CONSOLE_TX_STRING(string)
177 #define CONSOLE_EMERG_INLINE_TX_STRING(string) __CONSOLE_INLINE_TX_STRING(string)
179 #define CONSOLE_ALERT_TX_CHAR(byte) __CONSOLE_TX_CHAR(byte)
180 #define CONSOLE_ALERT_INLINE_TX_CHAR(byte) __CONSOLE_INLINE_TX_CHAR(byte)
181 #define CONSOLE_ALERT_TX_HEX8(byte) __CONSOLE_TX_HEX8(byte)
182 #define CONSOLE_ALERT_INLINE_TX_HEX8(byte) __CONSOLE_INLINE_TX_HEX8(byte)
183 #define CONSOLE_ALERT_TX_HEX32(lword) __CONSOLE_TX_HEX32(lword)
184 #define CONSOLE_ALERT_INLINE_TX_HEX32(lword) __CONSOLE_INLINE_TX_HEX32(lword)
185 #define CONSOLE_ALERT_TX_STRING(string) __CONSOLE_TX_STRING(string)
186 #define CONSOLE_ALERT_INLINE_TX_STRING(string) __CONSOLE_INLINE_TX_STRING(string)
188 #define CONSOLE_CRIT_TX_CHAR(byte) __CONSOLE_TX_CHAR(byte)
189 #define CONSOLE_CRIT_INLINE_TX_CHAR(byte) __CONSOLE_INLINE_TX_CHAR(byte)
190 #define CONSOLE_CRIT_TX_HEX8(byte) __CONSOLE_TX_HEX8(byte)
191 #define CONSOLE_CRIT_INLINE_TX_HEX8(byte) __CONSOLE_INLINE_TX_HEX8(byte)
192 #define CONSOLE_CRIT_TX_HEX32(lword) __CONSOLE_TX_HEX32(lword)
193 #define CONSOLE_CRIT_INLINE_TX_HEX32(lword) __CONSOLE_INLINE_TX_HEX32(lword)
194 #define CONSOLE_CRIT_TX_STRING(string) __CONSOLE_TX_STRING(string)
195 #define CONSOLE_CRIT_INLINE_TX_STRING(string) __CONSOLE_INLINE_TX_STRING(string)
197 #define CONSOLE_ERR_TX_CHAR(byte) __CONSOLE_TX_CHAR(byte)
198 #define CONSOLE_ERR_INLINE_TX_CHAR(byte) __CONSOLE_INLINE_TX_CHAR(byte)
199 #define CONSOLE_ERR_TX_HEX8(byte) __CONSOLE_TX_HEX8(byte)
200 #define CONSOLE_ERR_INLINE_TX_HEX8(byte) __CONSOLE_INLINE_TX_HEX8(byte)
201 #define CONSOLE_ERR_TX_HEX32(lword) __CONSOLE_TX_HEX32(lword)
202 #define CONSOLE_ERR_INLINE_TX_HEX32(lword) __CONSOLE_INLINE_TX_HEX32(lword)
203 #define CONSOLE_ERR_TX_STRING(string) __CONSOLE_TX_STRING(string)
204 #define CONSOLE_ERR_INLINE_TX_STRING(string) __CONSOLE_INLINE_TX_STRING(string)
206 #define CONSOLE_WARNING_TX_CHAR(byte) __CONSOLE_TX_CHAR(byte)
207 #define CONSOLE_WARNING_INLINE_TX_CHAR(byte) __CONSOLE_INLINE_TX_CHAR(byte)
208 #define CONSOLE_WARNING_TX_HEX8(byte) __CONSOLE_TX_HEX8(byte)
209 #define CONSOLE_WARNING_INLINE_TX_HEX8(byte) __CONSOLE_INLINE_TX_HEX8(byte)
210 #define CONSOLE_WARNING_TX_HEX32(lword) __CONSOLE_TX_HEX32(lword)
211 #define CONSOLE_WARNING_INLINE_TX_HEX32(lword) __CONSOLE_INLINE_TX_HEX32(lword)
212 #define CONSOLE_WARNING_TX_STRING(string) __CONSOLE_TX_STRING(string)
213 #define CONSOLE_WARNING_INLINE_TX_STRING(string) __CONSOLE_INLINE_TX_STRING(string)
215 #define CONSOLE_NOTICE_TX_CHAR(byte) __CONSOLE_TX_CHAR(byte)
216 #define CONSOLE_NOTICE_INLINE_TX_CHAR(byte) __CONSOLE_INLINE_TX_CHAR(byte)
217 #define CONSOLE_NOTICE_TX_HEX8(byte) __CONSOLE_TX_HEX8(byte)
218 #define CONSOLE_NOTICE_INLINE_TX_HEX8(byte) __CONSOLE_INLINE_TX_HEX8(byte)
219 #define CONSOLE_NOTICE_TX_HEX32(lword) __CONSOLE_TX_HEX32(lword)
220 #define CONSOLE_NOTICE_INLINE_TX_HEX32(lword) __CONSOLE_INLINE_TX_HEX32(lword)
221 #define CONSOLE_NOTICE_TX_STRING(string) __CONSOLE_TX_STRING(string)
222 #define CONSOLE_NOTICE_INLINE_TX_STRING(string) __CONSOLE_INLINE_TX_STRING(string)
224 #define CONSOLE_INFO_TX_CHAR(byte) __CONSOLE_TX_CHAR(byte)
225 #define CONSOLE_INFO_INLINE_TX_CHAR(byte) __CONSOLE_INLINE_TX_CHAR(byte)
226 #define CONSOLE_INFO_TX_HEX8(byte) __CONSOLE_TX_HEX8(byte)
227 #define CONSOLE_INFO_INLINE_TX_HEX8(byte) __CONSOLE_INLINE_TX_HEX8(byte)
228 #define CONSOLE_INFO_TX_HEX32(lword) __CONSOLE_TX_HEX32(lword)
229 #define CONSOLE_INFO_INLINE_TX_HEX32(lword) __CONSOLE_INLINE_TX_HEX32(lword)
230 #define CONSOLE_INFO_TX_STRING(string) __CONSOLE_TX_STRING(string)
231 #define CONSOLE_INFO_INLINE_TX_STRING(string) __CONSOLE_INLINE_TX_STRING(string)
233 #define CONSOLE_DEBUG_TX_CHAR(byte) __CONSOLE_TX_CHAR(byte)
234 #define CONSOLE_DEBUG_INLINE_TX_CHAR(byte) __CONSOLE_INLINE_TX_CHAR(byte)
235 #define CONSOLE_DEBUG_TX_HEX8(byte) __CONSOLE_TX_HEX8(byte)
236 #define CONSOLE_DEBUG_INLINE_TX_HEX8(byte) __CONSOLE_INLINE_TX_HEX8(byte)
237 #define CONSOLE_DEBUG_TX_HEX32(lword) __CONSOLE_TX_HEX32(lword)
238 #define CONSOLE_DEBUG_INLINE_TX_HEX32(lword) __CONSOLE_INLINE_TX_HEX32(lword)
239 #define CONSOLE_DEBUG_TX_STRING(string) __CONSOLE_TX_STRING(string)
240 #define CONSOLE_DEBUG_INLINE_TX_STRING(string) __CONSOLE_INLINE_TX_STRING(string)
242 #define CONSOLE_SPEW_TX_CHAR(byte) __CONSOLE_TX_CHAR(byte)
243 #define CONSOLE_SPEW_INLINE_TX_CHAR(byte) __CONSOLE_INLINE_TX_CHAR(byte)
244 #define CONSOLE_SPEW_TX_HEX8(byte) __CONSOLE_TX_HEX8(byte)
245 #define CONSOLE_SPEW_INLINE_TX_HEX8(byte) __CONSOLE_INLINE_TX_HEX8(byte)
246 #define CONSOLE_SPEW_TX_HEX32(lword) __CONSOLE_TX_HEX32(lword)
247 #define CONSOLE_SPEW_INLINE_TX_HEX32(lword) __CONSOLE_INLINE_TX_HEX32(lword)
248 #define CONSOLE_SPEW_TX_STRING(string) __CONSOLE_TX_STRING(string)
249 #define CONSOLE_SPEW_INLINE_TX_STRING(string) __CONSOLE_INLINE_TX_STRING(string)
251 #if ASM_CONSOLE_LOGLEVEL <= BIOS_EMERG
252 #undef CONSOLE_EMERG_TX_CHAR
253 #undef CONSOLE_EMERG_INLINE_TX_CHAR
254 #undef CONSOLE_EMERG_TX_HEX8
255 #undef CONSOLE_EMERG_INLINE_TX_HEX8
256 #undef CONSOLE_EMERG_TX_HEX32
257 #undef CONSOLE_EMERG_INLINE_TX_HEX32
258 #undef CONSOLE_EMERG_TX_STRING
259 #undef CONSOLE_EMERG_INLINE_TX_STRING
260 #define CONSOLE_EMERG_TX_CHAR(byte)
261 #define CONSOLE_EMERG_INLINE_TX_CHAR(byte)
262 #define CONSOLE_EMERG_TX_HEX8(byte)
263 #define CONSOLE_EMERG_INLINE_TX_HEX8(byte)
264 #define CONSOLE_EMERG_TX_HEX32(lword)
265 #define CONSOLE_EMERG_INLINE_TX_HEX32(lword)
266 #define CONSOLE_EMERG_TX_STRING(string)
267 #define CONSOLE_EMERG_INLINE_TX_STRING(string)
271 #if ASM_CONSOLE_LOGLEVEL <= BIOS_ALERT
272 #undef CONSOLE_ALERT_TX_CHAR
273 #undef CONSOLE_ALERT_INLINE_TX_CHAR
274 #undef CONSOLE_ALERT_TX_HEX8
275 #undef CONSOLE_ALERT_INLINE_TX_HEX8
276 #undef CONSOLE_ALERT_TX_HEX32
277 #undef CONSOLE_ALERT_INLINE_TX_HEX32
278 #undef CONSOLE_ALERT_TX_STRING
279 #undef CONSOLE_ALERT_INLINE_TX_STRING
280 #define CONSOLE_ALERT_TX_CHAR(byte)
281 #define CONSOLE_ALERT_INLINE_TX_CHAR(byte)
282 #define CONSOLE_ALERT_TX_HEX8(byte)
283 #define CONSOLE_ALERT_INLINE_TX_HEX8(byte)
284 #define CONSOLE_ALERT_TX_HEX32(lword)
285 #define CONSOLE_ALERT_INLINE_TX_HEX32(lword)
286 #define CONSOLE_ALERT_TX_STRING(string)
287 #define CONSOLE_ALERT_INLINE_TX_STRING(string)
290 #if ASM_CONSOLE_LOGLEVEL <= BIOS_CRIT
291 #undef CONSOLE_CRIT_TX_CHAR
292 #undef CONSOLE_CRIT_INLINE_TX_CHAR
293 #undef CONSOLE_CRIT_TX_HEX8
294 #undef CONSOLE_CRIT_INLINE_TX_HEX8
295 #undef CONSOLE_CRIT_TX_HEX32
296 #undef CONSOLE_CRIT_INLINE_TX_HEX32
297 #undef CONSOLE_CRIT_TX_STRING
298 #undef CONSOLE_CRIT_INLINE_TX_STRING
299 #define CONSOLE_CRIT_TX_CHAR(byte)
300 #define CONSOLE_CRIT_INLINE_TX_CHAR(byte)
301 #define CONSOLE_CRIT_TX_HEX8(byte)
302 #define CONSOLE_CRIT_INLINE_TX_HEX8(byte)
303 #define CONSOLE_CRIT_TX_HEX32(lword)
304 #define CONSOLE_CRIT_INLINE_TX_HEX32(lword)
305 #define CONSOLE_CRIT_TX_STRING(string)
306 #define CONSOLE_CRIT_INLINE_TX_STRING(string)
309 #if ASM_CONSOLE_LOGLEVEL <= BIOS_ERR
310 #undef CONSOLE_ERR_TX_CHAR
311 #undef CONSOLE_ERR_INLINE_TX_CHAR
312 #undef CONSOLE_ERR_TX_HEX8
313 #undef CONSOLE_ERR_INLINE_TX_HEX8
314 #undef CONSOLE_ERR_TX_HEX32
315 #undef CONSOLE_ERR_INLINE_TX_HEX32
316 #undef CONSOLE_ERR_TX_STRING
317 #undef CONSOLE_ERR_INLINE_TX_STRING
318 #define CONSOLE_ERR_TX_CHAR(byte)
319 #define CONSOLE_ERR_INLINE_TX_CHAR(byte)
320 #define CONSOLE_ERR_TX_HEX8(byte)
321 #define CONSOLE_ERR_INLINE_TX_HEX8(byte)
322 #define CONSOLE_ERR_TX_HEX32(lword)
323 #define CONSOLE_ERR_INLINE_TX_HEX32(lword)
324 #define CONSOLE_ERR_TX_STRING(string)
325 #define CONSOLE_ERR_INLINE_TX_STRING(string)
328 #if ASM_CONSOLE_LOGLEVEL <= BIOS_WARNING
329 #undef CONSOLE_WARNING_TX_CHAR
330 #undef CONSOLE_WARNING_INLINE_TX_CHAR
331 #undef CONSOLE_WARNING_TX_HEX8
332 #undef CONSOLE_WARNING_INLINE_TX_HEX8
333 #undef CONSOLE_WARNING_TX_HEX32
334 #undef CONSOLE_WARNING_INLINE_TX_HEX32
335 #undef CONSOLE_WARNING_TX_STRING
336 #undef CONSOLE_WARNING_INLINE_TX_STRING
337 #define CONSOLE_WARNING_TX_CHAR(byte)
338 #define CONSOLE_WARNING_INLINE_TX_CHAR(byte)
339 #define CONSOLE_WARNING_TX_HEX8(byte)
340 #define CONSOLE_WARNING_INLINE_TX_HEX8(byte)
341 #define CONSOLE_WARNING_TX_HEX32(lword)
342 #define CONSOLE_WARNING_INLINE_TX_HEX32(lword)
343 #define CONSOLE_WARNING_TX_STRING(string)
344 #define CONSOLE_WARNING_INLINE_TX_STRING(string)
347 #if ASM_CONSOLE_LOGLEVEL <= BIOS_NOTICE
348 #undef CONSOLE_NOTICE_TX_CHAR
349 #undef CONSOLE_NOTICE_INLINE_TX_CHAR
350 #undef CONSOLE_NOTICE_TX_HEX8
351 #undef CONSOLE_NOTICE_INLINE_TX_HEX8
352 #undef CONSOLE_NOTICE_TX_HEX32
353 #undef CONSOLE_NOTICE_INLINE_TX_HEX32
354 #undef CONSOLE_NOTICE_TX_STRING
355 #undef CONSOLE_NOTICE_INLINE_TX_STRING
356 #define CONSOLE_NOTICE_TX_CHAR(byte)
357 #define CONSOLE_NOTICE_INLINE_TX_CHAR(byte)
358 #define CONSOLE_NOTICE_TX_HEX8(byte)
359 #define CONSOLE_NOTICE_INLINE_TX_HEX8(byte)
360 #define CONSOLE_NOTICE_TX_HEX32(lword)
361 #define CONSOLE_NOTICE_INLINE_TX_HEX32(lword)
362 #define CONSOLE_NOTICE_TX_STRING(string)
363 #define CONSOLE_NOTICE_INLINE_TX_STRING(string)
366 #if ASM_CONSOLE_LOGLEVEL <= BIOS_INFO
367 #undef CONSOLE_INFO_TX_CHAR
368 #undef CONSOLE_INFO_INLINE_TX_CHAR
369 #undef CONSOLE_INFO_TX_HEX8
370 #undef CONSOLE_INFO_INLINE_TX_HEX8
371 #undef CONSOLE_INFO_TX_HEX32
372 #undef CONSOLE_INFO_INLINE_TX_HEX32
373 #undef CONSOLE_INFO_TX_STRING
374 #undef CONSOLE_INFO_INLINE_TX_STRING
375 #define CONSOLE_INFO_TX_CHAR(byte)
376 #define CONSOLE_INFO_INLINE_TX_CHAR(byte)
377 #define CONSOLE_INFO_TX_HEX8(byte)
378 #define CONSOLE_INFO_INLINE_TX_HEX8(byte)
379 #define CONSOLE_INFO_TX_HEX32(lword)
380 #define CONSOLE_INFO_INLINE_TX_HEX32(lword)
381 #define CONSOLE_INFO_TX_STRING(string)
382 #define CONSOLE_INFO_INLINE_TX_STRING(string)
385 #if ASM_CONSOLE_LOGLEVEL <= BIOS_DEBUG
386 #undef CONSOLE_DEBUG_TX_CHAR
387 #undef CONSOLE_DEBUG_INLINE_TX_CHAR
388 #undef CONSOLE_DEBUG_TX_HEX8
389 #undef CONSOLE_DEBUG_INLINE_TX_HEX8
390 #undef CONSOLE_DEBUG_TX_HEX32
391 #undef CONSOLE_DEBUG_INLINE_TX_HEX32
392 #undef CONSOLE_DEBUG_TX_STRING
393 #undef CONSOLE_DEBUG_INLINE_TX_STRING
394 #define CONSOLE_DEBUG_TX_CHAR(byte)
395 #define CONSOLE_DEBUG_INLINE_TX_CHAR(byte)
396 #define CONSOLE_DEBUG_TX_HEX8(byte)
397 #define CONSOLE_DEBUG_INLINE_TX_HEX8(byte)
398 #define CONSOLE_DEBUG_TX_HEX32(lword)
399 #define CONSOLE_DEBUG_INLINE_TX_HEX32(lword)
400 #define CONSOLE_DEBUG_TX_STRING(string)
401 #define CONSOLE_DEBUG_INLINE_TX_STRING(string)
404 #if ASM_CONSOLE_LOGLEVEL <= BIOS_SPEW
405 #undef CONSOLE_SPEW_TX_CHAR
406 #undef CONSOLE_SPEW_INLINE_TX_CHAR
407 #undef CONSOLE_SPEW_TX_HEX8
408 #undef CONSOLE_SPEW_INLINE_TX_HEX8
409 #undef CONSOLE_SPEW_TX_HEX32
410 #undef CONSOLE_SPEW_INLINE_TX_HEX32
411 #undef CONSOLE_SPEW_TX_STRING
412 #undef CONSOLE_SPEW_INLINE_TX_STRING
413 #define CONSOLE_SPEW_TX_CHAR(byte)
414 #define CONSOLE_SPEW_INLINE_TX_CHAR(byte)
415 #define CONSOLE_SPEW_TX_HEX8(byte)
416 #define CONSOLE_SPEW_INLINE_TX_HEX8(byte)
417 #define CONSOLE_SPEW_TX_HEX32(lword)
418 #define CONSOLE_SPEW_INLINE_TX_HEX32(lword)
419 #define CONSOLE_SPEW_TX_STRING(string)
420 #define CONSOLE_SPEW_INLINE_TX_STRING(string)
424 /* uses: esp, ax, dx */
426 __CONSOLE_INLINE_TX_AL
429 /* uses: esp, ax, edx */
431 __CONSOLE_INLINE_TX_HEX8(%al)
435 /* uses: esp, ebx, eax, dx */
444 __CONSOLE_INLINE_TX_AL
454 __CONSOLE_INLINE_TX_AL
464 __CONSOLE_INLINE_TX_AL
474 __CONSOLE_INLINE_TX_AL
484 __CONSOLE_INLINE_TX_AL
494 __CONSOLE_INLINE_TX_AL
504 __CONSOLE_INLINE_TX_AL
513 __CONSOLE_INLINE_TX_AL
516 /* Uses esp, ebx, ax, dx */
525 __CONSOLE_INLINE_TX_AL
526 jmp console_tx_string
529 CONSOLE_INFO_TX_STRING($console_test)