drop unneeded __ROMCC__ checks when the check for __PRE_RAM__ is more
[coreboot.git] / src / arch / i386 / lib / console_print.c
1 static void __console_tx_byte(unsigned char byte)
2 {
3         uart_tx_byte(byte);
4 }
5
6 static void __console_tx_nibble(unsigned nibble)
7 {
8         unsigned char digit;
9         digit = nibble + '0';
10         if (digit > '9') {
11                 digit += 39;
12         }
13         __console_tx_byte(digit);
14 }
15
16 static void __console_tx_char(int loglevel, unsigned char byte)
17 {
18         if (ASM_CONSOLE_LOGLEVEL >= loglevel) {
19                 uart_tx_byte(byte);
20         }
21 }
22
23 static void __console_tx_hex8(int loglevel, unsigned char value)
24 {
25         if (ASM_CONSOLE_LOGLEVEL >= loglevel) {
26                 __console_tx_nibble((value >>  4U) & 0x0fU);
27                 __console_tx_nibble(value & 0x0fU);
28         }
29 }
30
31 static void __console_tx_hex16(int loglevel, unsigned short value)
32 {
33         if (ASM_CONSOLE_LOGLEVEL >= loglevel) {
34                 __console_tx_nibble((value >> 12U) & 0x0fU);
35                 __console_tx_nibble((value >>  8U) & 0x0fU);
36                 __console_tx_nibble((value >>  4U) & 0x0fU);
37                 __console_tx_nibble(value & 0x0fU);
38         }
39 }
40
41 static void __console_tx_hex32(int loglevel, unsigned int value)
42 {
43         if (ASM_CONSOLE_LOGLEVEL >= loglevel) {
44                 __console_tx_nibble((value >> 28U) & 0x0fU);
45                 __console_tx_nibble((value >> 24U) & 0x0fU);
46                 __console_tx_nibble((value >> 20U) & 0x0fU);
47                 __console_tx_nibble((value >> 16U) & 0x0fU);
48                 __console_tx_nibble((value >> 12U) & 0x0fU);
49                 __console_tx_nibble((value >>  8U) & 0x0fU);
50                 __console_tx_nibble((value >>  4U) & 0x0fU);
51                 __console_tx_nibble(value & 0x0fU);
52         }
53 }
54
55 static void __console_tx_string(int loglevel, const char *str)
56 {
57         if (ASM_CONSOLE_LOGLEVEL >= loglevel) {
58                 unsigned char ch;
59                 while((ch = *str++) != '\0') {
60                         __console_tx_byte(ch);
61                 }
62         }
63 }
64
65 #if defined (__ROMCC__)
66 #define STATIC
67 #else
68 #define STATIC static
69 #endif
70
71 STATIC void print_emerg_char(unsigned char byte) { __console_tx_char(BIOS_EMERG, byte); }
72 STATIC void print_emerg_hex8(unsigned char value){ __console_tx_hex8(BIOS_EMERG, value); }
73 STATIC void print_emerg_hex16(unsigned short value){ __console_tx_hex16(BIOS_EMERG, value); }
74 STATIC void print_emerg_hex32(unsigned int value) { __console_tx_hex32(BIOS_EMERG, value); }
75 STATIC void print_emerg(const char *str) { __console_tx_string(BIOS_EMERG, str); }
76
77 STATIC void print_alert_char(unsigned char byte) { __console_tx_char(BIOS_ALERT, byte); }
78 STATIC void print_alert_hex8(unsigned char value) { __console_tx_hex8(BIOS_ALERT, value); }
79 STATIC void print_alert_hex16(unsigned short value){ __console_tx_hex16(BIOS_ALERT, value); }
80 STATIC void print_alert_hex32(unsigned int value) { __console_tx_hex32(BIOS_ALERT, value); }
81 STATIC void print_alert(const char *str) { __console_tx_string(BIOS_ALERT, str); }
82
83 STATIC void print_crit_char(unsigned char byte) { __console_tx_char(BIOS_CRIT, byte); }
84 STATIC void print_crit_hex8(unsigned char value) { __console_tx_hex8(BIOS_CRIT, value); }
85 STATIC void print_crit_hex16(unsigned short value){ __console_tx_hex16(BIOS_CRIT, value); }
86 STATIC void print_crit_hex32(unsigned int value) { __console_tx_hex32(BIOS_CRIT, value); }
87 STATIC void print_crit(const char *str) { __console_tx_string(BIOS_CRIT, str); }
88
89 STATIC void print_err_char(unsigned char byte) { __console_tx_char(BIOS_ERR, byte); }
90 STATIC void print_err_hex8(unsigned char value) { __console_tx_hex8(BIOS_ERR, value); }
91 STATIC void print_err_hex16(unsigned short value){ __console_tx_hex16(BIOS_ERR, value); }
92 STATIC void print_err_hex32(unsigned int value) { __console_tx_hex32(BIOS_ERR, value); }
93 STATIC void print_err(const char *str) { __console_tx_string(BIOS_ERR, str); }
94
95 STATIC void print_warning_char(unsigned char byte) { __console_tx_char(BIOS_WARNING, byte); }
96 STATIC void print_warning_hex8(unsigned char value) { __console_tx_hex8(BIOS_WARNING, value); }
97 STATIC void print_warning_hex16(unsigned short value){ __console_tx_hex16(BIOS_WARNING, value); }
98 STATIC void print_warning_hex32(unsigned int value) { __console_tx_hex32(BIOS_WARNING, value); }
99 STATIC void print_warning(const char *str) { __console_tx_string(BIOS_WARNING, str); }
100
101 STATIC void print_notice_char(unsigned char byte) { __console_tx_char(BIOS_NOTICE, byte); }
102 STATIC void print_notice_hex8(unsigned char value) { __console_tx_hex8(BIOS_NOTICE, value); }
103 STATIC void print_notice_hex16(unsigned short value){ __console_tx_hex16(BIOS_NOTICE, value); }
104 STATIC void print_notice_hex32(unsigned int value) { __console_tx_hex32(BIOS_NOTICE, value); }
105 STATIC void print_notice(const char *str) { __console_tx_string(BIOS_NOTICE, str); }
106
107 STATIC void print_info_char(unsigned char byte) { __console_tx_char(BIOS_INFO, byte); }
108 STATIC void print_info_hex8(unsigned char value) { __console_tx_hex8(BIOS_INFO, value); }
109 STATIC void print_info_hex16(unsigned short value){ __console_tx_hex16(BIOS_INFO, value); }
110 STATIC void print_info_hex32(unsigned int value) { __console_tx_hex32(BIOS_INFO, value); }
111 STATIC void print_info(const char *str) { __console_tx_string(BIOS_INFO, str); }
112
113 STATIC void print_debug_char(unsigned char byte) { __console_tx_char(BIOS_DEBUG, byte); }
114 STATIC void print_debug_hex8(unsigned char value) { __console_tx_hex8(BIOS_DEBUG, value); }
115 STATIC void print_debug_hex16(unsigned short value){ __console_tx_hex16(BIOS_DEBUG, value); }
116 STATIC void print_debug_hex32(unsigned int value) { __console_tx_hex32(BIOS_DEBUG, value); }
117 STATIC void print_debug(const char *str) { __console_tx_string(BIOS_DEBUG, str); }
118
119 STATIC void print_spew_char(unsigned char byte) { __console_tx_char(BIOS_SPEW, byte); }
120 STATIC void print_spew_hex8(unsigned char value) { __console_tx_hex8(BIOS_SPEW, value); }
121 STATIC void print_spew_hex16(unsigned short value){ __console_tx_hex16(BIOS_SPEW, value); }
122 STATIC void print_spew_hex32(unsigned int value) { __console_tx_hex32(BIOS_SPEW, value); }
123 STATIC void print_spew(const char *str) { __console_tx_string(BIOS_SPEW, str); }
124