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
00062
00063
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