console_print.c

Go to the documentation of this file.
00001 
00002 static void __console_tx_nibble(unsigned nibble)
00003 {
00004         unsigned char digit;
00005         digit = nibble + '0';
00006         if (digit > '9') {
00007                 digit += 39;
00008         }
00009         __console_tx_byte(digit);
00010 }
00011 
00012 static void __console_tx_char(int loglevel, unsigned char byte)
00013 {
00014         if (ASM_CONSOLE_LOGLEVEL > loglevel) {
00015                 uart_tx_byte(byte);
00016         }
00017 }
00018 
00019 static void __console_tx_hex8(int loglevel, unsigned char value)
00020 {
00021         if (ASM_CONSOLE_LOGLEVEL > loglevel) {
00022                 __console_tx_nibble((value >>  4U) & 0x0fU);
00023                 __console_tx_nibble(value & 0x0fU);
00024         }
00025 }
00026 
00027 static void __console_tx_hex16(int loglevel, unsigned short value)
00028 {
00029         if (ASM_CONSOLE_LOGLEVEL > loglevel) {
00030                 __console_tx_nibble((value >> 12U) & 0x0fU);
00031                 __console_tx_nibble((value >>  8U) & 0x0fU);
00032                 __console_tx_nibble((value >>  4U) & 0x0fU);
00033                 __console_tx_nibble(value & 0x0fU);
00034         }
00035 }
00036 
00037 static void __console_tx_hex32(int loglevel, unsigned int value)
00038 {
00039         if (ASM_CONSOLE_LOGLEVEL > loglevel) {
00040                 __console_tx_nibble((value >> 28U) & 0x0fU);
00041                 __console_tx_nibble((value >> 24U) & 0x0fU);
00042                 __console_tx_nibble((value >> 20U) & 0x0fU);
00043                 __console_tx_nibble((value >> 16U) & 0x0fU);
00044                 __console_tx_nibble((value >> 12U) & 0x0fU);
00045                 __console_tx_nibble((value >>  8U) & 0x0fU);
00046                 __console_tx_nibble((value >>  4U) & 0x0fU);
00047                 __console_tx_nibble(value & 0x0fU);
00048         }
00049 }
00050 
00051 static void __console_tx_string(int loglevel, const char *str)
00052 {
00053         if (ASM_CONSOLE_LOGLEVEL > loglevel) {
00054                 unsigned char ch;
00055                 while((ch = *str++) != '\0') {
00056                         __console_tx_byte(ch);
00057                 }
00058         }
00059 }
00060 
00061 /* Actually this should say defined(__ROMCC__) but that define is explicitly
00062  * set in some auto.c files to trigger the simple device_t version to be used.
00063  * So __GNUCC__ does the right thing here.
00064  */
00065 #if defined (__GNUCC__)
00066 #define STATIC
00067 #else
00068 #define STATIC static
00069 #endif
00070 
00071 STATIC void print_emerg_char(unsigned char byte) { __console_tx_char(BIOS_EMERG, byte); }
00072 STATIC void print_emerg_hex8(unsigned char value){ __console_tx_hex8(BIOS_EMERG, value); }
00073 STATIC void print_emerg_hex16(unsigned short value){ __console_tx_hex16(BIOS_EMERG, value); }
00074 STATIC void print_emerg_hex32(unsigned int value) { __console_tx_hex32(BIOS_EMERG, value); }
00075 STATIC void print_emerg(const char *str) { __console_tx_string(BIOS_EMERG, str); }
00076 
00077 STATIC void print_alert_char(unsigned char byte) { __console_tx_char(BIOS_ALERT, byte); }
00078 STATIC void print_alert_hex8(unsigned char value) { __console_tx_hex8(BIOS_ALERT, value); }
00079 STATIC void print_alert_hex16(unsigned short value){ __console_tx_hex16(BIOS_ALERT, value); }
00080 STATIC void print_alert_hex32(unsigned int value) { __console_tx_hex32(BIOS_ALERT, value); }
00081 STATIC void print_alert(const char *str) { __console_tx_string(BIOS_ALERT, str); }
00082 
00083 STATIC void print_crit_char(unsigned char byte) { __console_tx_char(BIOS_CRIT, byte); }
00084 STATIC void print_crit_hex8(unsigned char value) { __console_tx_hex8(BIOS_CRIT, value); }
00085 STATIC void print_crit_hex16(unsigned short value){ __console_tx_hex16(BIOS_CRIT, value); }
00086 STATIC void print_crit_hex32(unsigned int value) { __console_tx_hex32(BIOS_CRIT, value); }
00087 STATIC void print_crit(const char *str) { __console_tx_string(BIOS_CRIT, str); }
00088 
00089 STATIC void print_err_char(unsigned char byte) { __console_tx_char(BIOS_ERR, byte); }
00090 STATIC void print_err_hex8(unsigned char value) { __console_tx_hex8(BIOS_ERR, value); }
00091 STATIC void print_err_hex16(unsigned short value){ __console_tx_hex16(BIOS_ERR, value); }
00092 STATIC void print_err_hex32(unsigned int value) { __console_tx_hex32(BIOS_ERR, value); }
00093 STATIC void print_err(const char *str) { __console_tx_string(BIOS_ERR, str); }
00094 
00095 STATIC void print_warning_char(unsigned char byte) { __console_tx_char(BIOS_WARNING, byte); }
00096 STATIC void print_warning_hex8(unsigned char value) { __console_tx_hex8(BIOS_WARNING, value); }
00097 STATIC void print_warning_hex16(unsigned short value){ __console_tx_hex16(BIOS_WARNING, value); }
00098 STATIC void print_warning_hex32(unsigned int value) { __console_tx_hex32(BIOS_WARNING, value); }
00099 STATIC void print_warning(const char *str) { __console_tx_string(BIOS_WARNING, str); }
00100 
00101 STATIC void print_notice_char(unsigned char byte) { __console_tx_char(BIOS_NOTICE, byte); }
00102 STATIC void print_notice_hex8(unsigned char value) { __console_tx_hex8(BIOS_NOTICE, value); }
00103 STATIC void print_notice_hex16(unsigned short value){ __console_tx_hex16(BIOS_NOTICE, value); }
00104 STATIC void print_notice_hex32(unsigned int value) { __console_tx_hex32(BIOS_NOTICE, value); }
00105 STATIC void print_notice(const char *str) { __console_tx_string(BIOS_NOTICE, str); }
00106 
00107 STATIC void print_info_char(unsigned char byte) { __console_tx_char(BIOS_INFO, byte); }
00108 STATIC void print_info_hex8(unsigned char value) { __console_tx_hex8(BIOS_INFO, value); }
00109 STATIC void print_info_hex16(unsigned short value){ __console_tx_hex16(BIOS_INFO, value); }
00110 STATIC void print_info_hex32(unsigned int value) { __console_tx_hex32(BIOS_INFO, value); }
00111 STATIC void print_info(const char *str) { __console_tx_string(BIOS_INFO, str); }
00112 
00113 STATIC void print_debug_char(unsigned char byte) { __console_tx_char(BIOS_DEBUG, byte); }
00114 STATIC void print_debug_hex8(unsigned char value) { __console_tx_hex8(BIOS_DEBUG, value); }
00115 STATIC void print_debug_hex16(unsigned short value){ __console_tx_hex16(BIOS_DEBUG, value); }
00116 STATIC void print_debug_hex32(unsigned int value) { __console_tx_hex32(BIOS_DEBUG, value); }
00117 STATIC void print_debug(const char *str) { __console_tx_string(BIOS_DEBUG, str); }
00118 
00119 STATIC void print_spew_char(unsigned char byte) { __console_tx_char(BIOS_SPEW, byte); }
00120 STATIC void print_spew_hex8(unsigned char value) { __console_tx_hex8(BIOS_SPEW, value); }
00121 STATIC void print_spew_hex16(unsigned short value){ __console_tx_hex16(BIOS_SPEW, value); }
00122 STATIC void print_spew_hex32(unsigned int value) { __console_tx_hex32(BIOS_SPEW, value); }
00123 STATIC void print_spew(const char *str) { __console_tx_string(BIOS_SPEW, str); }
00124 

Generated on Mon Dec 29 10:54:06 2008 for coreboot by  doxygen 1.5.5