diff options
author | Andreas Eversberg <jolly@eversberg.eu> | 2024-01-05 14:20:36 +0100 |
---|---|---|
committer | Andreas Eversberg <jolly@eversberg.eu> | 2024-02-18 16:23:29 +0100 |
commit | 3158c483653871f708a732eacec36adb3c59b165 (patch) | |
tree | b30450f51299b88060f39bc013763c8157ed88a3 /src/sim | |
parent | 6cd2c3e323b5f8e873d986a78ee56e67e41e242e (diff) |
Move from local to external osmo* libraries
src/libdebug -> libosmocore
src/libselect -> libosmocore
src/libtimer -> libosmocore
src/libosmocc -> libosmo-cc
src/libg711 -> libosmo-cc
Diffstat (limited to 'src/sim')
-rw-r--r-- | src/sim/Makefile.am | 3 | ||||
-rw-r--r-- | src/sim/main.c | 27 | ||||
-rw-r--r-- | src/sim/sim.c | 168 | ||||
-rw-r--r-- | src/sim/sniffer.c | 298 |
4 files changed, 249 insertions, 247 deletions
diff --git a/src/sim/Makefile.am b/src/sim/Makefile.am index 975de70..cffc9d7 100644 --- a/src/sim/Makefile.am +++ b/src/sim/Makefile.am @@ -11,9 +11,10 @@ cnetz_sim_SOURCES = \ cnetz_sim_LDADD = \ $(COMMON_LA) \ - $(top_builddir)/src/libdebug/libdebug.a \ $(top_builddir)/src/liboptions/liboptions.a \ $(top_builddir)/src/libserial/libserial.a \ $(top_builddir)/src/libaaimage/libaaimage.a \ + $(top_builddir)/src/liblogging/liblogging.a \ + $(LIBOSMOCORE_LIBS) \ -lm diff --git a/src/sim/main.c b/src/sim/main.c index fc7a7ef..aa6137f 100644 --- a/src/sim/main.c +++ b/src/sim/main.c @@ -30,7 +30,7 @@ #include <unistd.h> #include <inttypes.h> #include <sys/time.h> -#include "../libdebug/debug.h" +#include "../liblogging/logging.h" #include "../liboptions/options.h" #include "../libserial/serial.h" #include "../libaaimage/aaimage.h" @@ -72,7 +72,7 @@ void print_help(const char *arg0) printf(" --config [~/]<path to config file>\n"); printf(" Give a config file to use. If it starts with '~/', path is at home dir.\n"); printf(" Each line in config file is one option, '-' or '--' must not be given!\n"); - debug_print_help(); + logging_print_help(); printf(" -s --serial-device <device>\n"); printf(" Serial device (default = '%s')\n", serialdev); printf(" -b --baud-rate <baud>\n"); @@ -140,13 +140,11 @@ int handle_options(int short_option, int argi, char **argv) print_help(argv[0]); return 0; case 'v': - if (!strcasecmp(argv[argi], "list")) { - debug_list_cat(); + rc = parse_logging_opt(argv[argi]); + if (rc > 0) return 0; - } - rc = parse_debug_opt(argv[argi]); if (rc < 0) { - fprintf(stderr, "Failed to parse debug option, please use -h for help.\n"); + fprintf(stderr, "Failed to parse logging option, please use -h for help.\n"); return rc; } break; @@ -337,7 +335,8 @@ int main(int argc, char *argv[]) int sniffer = 0; int i; - debuglevel = DEBUG_INFO; + loglevel = LOGL_INFO; + logging_init(); add_options(); rc = options_config_file(argc, argv, "~/.osmocom/analog/sim.conf", handle_options); @@ -366,13 +365,13 @@ int main(int argc, char *argv[]) rc = fread(eeprom_memory(), eeprom_length(), 1, fp); fclose(fp); } else - PDEBUG(DOPTIONS, DEBUG_INFO, "EEPROM file '%s' does not exist yet.\n", eeprom_file); + LOGP(DOPTIONS, LOGL_INFO, "EEPROM file '%s' does not exist yet.\n", eeprom_file); } /* check version */ if (eeprom_read(EEPROM_MAGIC + 0) != 'C' || eeprom_read(EEPROM_MAGIC + 1) != '0' + EEPROM_VERSION) { - PDEBUG(DOPTIONS, DEBUG_ERROR, "EEPROM file '%s' is not compatible with this version of program, please remove it!\n", eeprom_file); + LOGP(DOPTIONS, LOGL_ERROR, "EEPROM file '%s' is not compatible with this version of program, please remove it!\n", eeprom_file); return 1; } @@ -400,7 +399,7 @@ int main(int argc, char *argv[]) eeprom_write(EEPROM_WARTUNG_L, ebdt_data[8]); if (pin) { if (strlen(pin) < 4 || strlen(pin) > 8) { - PDEBUG(DSIM7, DEBUG_NOTICE, "Given PIN '%s' has invalid length. (Must be 4 .. 8)\n", pin); + LOGP(DSIM7, LOGL_NOTICE, "Given PIN '%s' has invalid length. (Must be 4 .. 8)\n", pin); return 0; } eeprom_write(EEPROM_FLAGS, (strlen(pin) << EEPROM_FLAG_PIN_LEN) | (MAX_PIN_TRY << EEPROM_FLAG_PIN_TRY)); @@ -488,9 +487,9 @@ int main(int argc, char *argv[]) if (fp) { fwrite(eeprom_memory(), eeprom_length(), 1, fp); fclose(fp); - PDEBUG(DOPTIONS, DEBUG_INFO, "EEPROM file '%s' written.\n", eeprom_file); + LOGP(DOPTIONS, LOGL_INFO, "EEPROM file '%s' written.\n", eeprom_file); } else - PDEBUG(DOPTIONS, DEBUG_INFO, "EEPROM file '%s' cannot be written. (errno = %d)\n", eeprom_file, errno); + LOGP(DOPTIONS, LOGL_INFO, "EEPROM file '%s' cannot be written. (errno = %d)\n", eeprom_file, errno); } error: @@ -502,4 +501,6 @@ error: return 0; } +void osmo_cc_set_log_cat(void) {} + #endif /* ARDUINO */ diff --git a/src/sim/sim.c b/src/sim/sim.c index 56549ee..086519e 100644 --- a/src/sim/sim.c +++ b/src/sim/sim.c @@ -23,13 +23,13 @@ #include <stdint.h> #include <errno.h> #ifndef ARDUINO -#include "../libdebug/debug.h" +#include "../liblogging/logging.h" #endif #include "sim.h" #include "eeprom.h" #ifdef ARDUINO -#define PDEBUG(cat, level, fmt, arg...) while(0) +#define LOGP(cat, level, fmt, arg...) while(0) #define EINVAL 22 static uint32_t my_strtoul(const char *nptr, char **endptr, int base) { @@ -112,11 +112,11 @@ int encode_ebdt(uint8_t *data, const char *futln, const char *sicherung, const c if (futln) { temp = strlen(futln); if (temp < 7 || temp > 8) { - PDEBUG(DSIM7, DEBUG_NOTICE, "Given FUTLN '%s' invalid length. (Must be 7 or 8 Digits)\n", futln); + LOGP(DSIM7, LOGL_NOTICE, "Given FUTLN '%s' invalid length. (Must be 7 or 8 Digits)\n", futln); return -EINVAL; } if (futln[0] < '0' || futln[0] > '7') { - PDEBUG(DSIM7, DEBUG_NOTICE, "Given FUTLN '%s' has invalid first digit. (Must be '0' .. '7')\n", futln); + LOGP(DSIM7, LOGL_NOTICE, "Given FUTLN '%s' has invalid first digit. (Must be '0' .. '7')\n", futln); return -EINVAL; } data[0] = (futln[0] - '0') << 5; @@ -125,7 +125,7 @@ int encode_ebdt(uint8_t *data, const char *futln, const char *sicherung, const c /* 8 digits */ temp = (futln[0] - '0') * 10 + (futln[1] - '0'); if (futln[0] < '0' || futln[0] > '9' || futln[1] < '0' || futln[1] > '9' || temp > 31) { - PDEBUG(DSIM7, DEBUG_NOTICE, "Given FUTLN '%s' has invalid second and third digit. (Must be '00' .. '31')\n", futln); + LOGP(DSIM7, LOGL_NOTICE, "Given FUTLN '%s' has invalid second and third digit. (Must be '00' .. '31')\n", futln); return -EINVAL; } data[0] |= temp; @@ -133,7 +133,7 @@ int encode_ebdt(uint8_t *data, const char *futln, const char *sicherung, const c } else { /* 7 digits */ if (futln[0] < '0' || futln[0] > '9') { - PDEBUG(DSIM7, DEBUG_NOTICE, "Given FUTLN '%s' has invalid second digit. (Must be '0' .. '9')\n", futln); + LOGP(DSIM7, LOGL_NOTICE, "Given FUTLN '%s' has invalid second digit. (Must be '0' .. '9')\n", futln); return -EINVAL; } data[0] |= (futln[0] - '0'); @@ -145,7 +145,7 @@ int encode_ebdt(uint8_t *data, const char *futln, const char *sicherung, const c } temp = my_strtoul(futln, NULL, 0); if (i < 5 || temp > 65535) { - PDEBUG(DSIM7, DEBUG_NOTICE, "Given FUTLN '%s' has invalid last digits. (Must be '00000' .. '65535')\n", futln); + LOGP(DSIM7, LOGL_NOTICE, "Given FUTLN '%s' has invalid last digits. (Must be '00000' .. '65535')\n", futln); return -EINVAL; } data[1] = temp >> 8; @@ -155,7 +155,7 @@ int encode_ebdt(uint8_t *data, const char *futln, const char *sicherung, const c if (sicherung) { temp = my_strtoul(sicherung, NULL, 0); if (temp > 65535) { - PDEBUG(DSIM7, DEBUG_NOTICE, "Given security code '%s' has invalid digits. (Must be '0' .. '65535')\n", sicherung); + LOGP(DSIM7, LOGL_NOTICE, "Given security code '%s' has invalid digits. (Must be '0' .. '65535')\n", sicherung); return -EINVAL; } data[3] = temp >> 8; @@ -165,7 +165,7 @@ int encode_ebdt(uint8_t *data, const char *futln, const char *sicherung, const c if (karten) { temp = my_strtoul(karten, NULL, 0); if (temp > 7) { - PDEBUG(DSIM7, DEBUG_NOTICE, "Given card number '%s' has invalid digit. (Must be '0' .. '7')\n", karten); + LOGP(DSIM7, LOGL_NOTICE, "Given card number '%s' has invalid digit. (Must be '0' .. '7')\n", karten); return -EINVAL; } data[5] = (data[5] & 0x1f) | ((karten[0] - '0') << 5); @@ -174,7 +174,7 @@ int encode_ebdt(uint8_t *data, const char *futln, const char *sicherung, const c if (sonder) { temp = my_strtoul(sonder, NULL, 0); if (temp > 8191) { - PDEBUG(DSIM7, DEBUG_NOTICE, "Given spacial code '%s' has invalid digits. (Must be '0' .. '8191')\n", sonder); + LOGP(DSIM7, LOGL_NOTICE, "Given spacial code '%s' has invalid digits. (Must be '0' .. '8191')\n", sonder); return -EINVAL; } data[5] = (data[5] & 0xe0) | (temp >> 8); @@ -184,7 +184,7 @@ int encode_ebdt(uint8_t *data, const char *futln, const char *sicherung, const c if (wartung) { temp = my_strtoul(wartung, NULL, 0); if (temp > 65535) { - PDEBUG(DSIM7, DEBUG_NOTICE, "Given maintenance code '%s' has invalid digits. (Must be '0' .. '65535')\n", wartung); + LOGP(DSIM7, LOGL_NOTICE, "Given maintenance code '%s' has invalid digits. (Must be '0' .. '65535')\n", wartung); return -EINVAL; } data[7] = temp >> 8; @@ -240,7 +240,7 @@ int save_directory(int location, uint8_t *data) size = directory_size(); if (location < 1 || location >= size) { - PDEBUG(DSIM7, DEBUG_NOTICE, "Given location for phone number '%d' is out of range. (Must be '01' .. '%02d')\n", location, size - 1); + LOGP(DSIM7, LOGL_NOTICE, "Given location for phone number '%d' is out of range. (Must be '01' .. '%02d')\n", location, size - 1); return -EINVAL; } @@ -278,7 +278,7 @@ int encode_directory(uint8_t *data, const char *number, const char *name) len = strlen(number); if (len > 16) { - PDEBUG(DSIM7, DEBUG_NOTICE, "Given phone number '%s' has too many digits. (Must be <= 16)\n", number); + LOGP(DSIM7, LOGL_NOTICE, "Given phone number '%s' has too many digits. (Must be <= 16)\n", number); return -EINVAL; } @@ -286,7 +286,7 @@ int encode_directory(uint8_t *data, const char *number, const char *name) memset(data + 8, ' ', 16); for (i = 0; i < len; i++) { if (number[i] < '0' || number[i] > '9') { - PDEBUG(DSIM7, DEBUG_NOTICE, "Given phone number '%s' has illegal digits. (Must be '0' .. '9')\n", number); + LOGP(DSIM7, LOGL_NOTICE, "Given phone number '%s' has illegal digits. (Must be '0' .. '9')\n", number); return -EINVAL; } pos = 16 - len + i; @@ -370,7 +370,7 @@ static int validate_pin(sim_sim_t *sim, uint8_t *data, int length) valid = 1; if (data[3] > '0') sim->card = data[3] - '1'; - PDEBUG(DSIM1, DEBUG_INFO, "System PIN '000%c' entered. Selecting card #%d.\n", data[3], sim->card + 1); + LOGP(DSIM1, LOGL_INFO, "System PIN '000%c' entered. Selecting card #%d.\n", data[3], sim->card + 1); } /* programming mode */ @@ -379,7 +379,7 @@ static int validate_pin(sim_sim_t *sim, uint8_t *data, int length) valid = 1; if (data[3] > '0') sim->card = data[3] - '1'; - PDEBUG(DSIM1, DEBUG_INFO, "Configuration PIN '999%c' entered. Selecting card #%d in configuration mode.\n", data[3], sim->card + 1); + LOGP(DSIM1, LOGL_INFO, "Configuration PIN '999%c' entered. Selecting card #%d in configuration mode.\n", data[3], sim->card + 1); } /* if not 'program mode' and PIN matches EEPROM */ @@ -390,7 +390,7 @@ static int validate_pin(sim_sim_t *sim, uint8_t *data, int length) } if (i == length) { valid = 1; - PDEBUG(DSIM1, DEBUG_INFO, "Correct PIN was entered. Selecting card #%d.\n", sim->card + 1); + LOGP(DSIM1, LOGL_INFO, "Correct PIN was entered. Selecting card #%d.\n", sim->card + 1); } } @@ -405,7 +405,7 @@ static int validate_pin(sim_sim_t *sim, uint8_t *data, int length) sim->program_mode = 1; return 0; } else { - PDEBUG(DSIM1, DEBUG_INFO, "Wrong PIN was entered.\n"); + LOGP(DSIM1, LOGL_INFO, "Wrong PIN was entered.\n"); #ifndef ARDUINO /* decrement error counter */ if (sim->pin_try) { @@ -424,7 +424,7 @@ uint8_t *alloc_msg(sim_sim_t *sim, int size) { /* we add 4, because we push 4 bytes (ICL and L2 header later) */ if (size + 4 > (int)sizeof(sim->block_tx_data)) - PDEBUG(DSIM1, DEBUG_NOTICE, "TX buffer overflow: size+4=%d > buffer size (%d)\n", size + 4, (int)sizeof(sim->block_tx_data)); + LOGP(DSIM1, LOGL_NOTICE, "TX buffer overflow: size+4=%d > buffer size (%d)\n", size + 4, (int)sizeof(sim->block_tx_data)); return sim->block_tx_data; } @@ -463,7 +463,7 @@ static void sl_appl(sim_sim_t *sim, uint8_t *data, int length) uint8_t app; if (length < 11) { - PDEBUG(DSIM7, DEBUG_NOTICE, "SL-APPL too short\n"); + LOGP(DSIM7, LOGL_NOTICE, "SL-APPL too short\n"); return_error(sim); return; } @@ -473,11 +473,11 @@ static void sl_appl(sim_sim_t *sim, uint8_t *data, int length) app += (data[7] - '0') * 10; app += data[8] - '0'; - PDEBUG(DSIM7, DEBUG_INFO, " SL-APPL app %d\n", app); + LOGP(DSIM7, LOGL_INFO, " SL-APPL app %d\n", app); /* check and set application */ if (app != APP_NETZ_C && app != APP_RUFN_GEBZ) { - PDEBUG(DSIM7, DEBUG_NOTICE, "SL-APPL invalid app %d\n", sim->app); + LOGP(DSIM7, LOGL_NOTICE, "SL-APPL invalid app %d\n", sim->app); return_error(sim); return; } @@ -499,7 +499,7 @@ static void cl_appl(sim_sim_t *sim) { uint8_t *data; - PDEBUG(DSIM7, DEBUG_INFO, " CL-APPL\n"); + LOGP(DSIM7, LOGL_INFO, " CL-APPL\n"); /* remove app */ sim->app = 0; @@ -514,7 +514,7 @@ static void sh_appl(sim_sim_t *sim) { uint8_t *data; - PDEBUG(DSIM7, DEBUG_INFO, " SH-APPL\n"); + LOGP(DSIM7, LOGL_INFO, " SH-APPL\n"); /* respond */ data = alloc_msg(sim, 33); @@ -546,7 +546,7 @@ static void chk_kon(sim_sim_t *sim) { uint8_t *data; - PDEBUG(DSIM7, DEBUG_INFO, " CHK-KON\n"); + LOGP(DSIM7, LOGL_INFO, " CHK-KON\n"); /* respond */ data = alloc_msg(sim, 0); @@ -558,7 +558,7 @@ static void rd_ebdt(sim_sim_t *sim) { uint8_t *data; - PDEBUG(DSIM7, DEBUG_INFO, " RD-EBDT\n"); + LOGP(DSIM7, LOGL_INFO, " RD-EBDT\n"); /* respond */ data = alloc_msg(sim, 9); @@ -594,12 +594,12 @@ static void rd_rufn(sim_sim_t *sim, uint8_t *data, int length) int size; if (length < 1) { - PDEBUG(DSIM7, DEBUG_NOTICE, "RD_RUFN too short\n"); + LOGP(DSIM7, LOGL_NOTICE, "RD_RUFN too short\n"); return_error(sim); return; } - PDEBUG(DSIM7, DEBUG_INFO, " RD-RUFN (loc=%d)\n", rufn); + LOGP(DSIM7, LOGL_INFO, " RD-RUFN (loc=%d)\n", rufn); /* SERVICE MODE */ if (sim->program_mode) { @@ -619,34 +619,34 @@ static void rd_rufn(sim_sim_t *sim, uint8_t *data, int length) data[2] = eeprom_read(EEPROM_FUTLN_L + sim->card); decode_ebdt(data, number, NULL, NULL, NULL, NULL); encode_directory(data, number, "FUTLN"); - PDEBUG(DSIM7, DEBUG_INFO, "service mode: FUTLN = %s\n", number); + LOGP(DSIM7, LOGL_INFO, "service mode: FUTLN = %s\n", number); break; case 2: /* security code */ data[3] = eeprom_read(EEPROM_SICH_H + sim->card); data[4] = eeprom_read(EEPROM_SICH_L + sim->card); decode_ebdt(data, NULL, number, NULL, NULL, NULL); encode_directory(data, number, "Sicherungscode"); - PDEBUG(DSIM7, DEBUG_INFO, "service mode: security = %s\n", number); + LOGP(DSIM7, LOGL_INFO, "service mode: security = %s\n", number); break; case 3: /* card ID */ data[5] = eeprom_read(EEPROM_SONDER_H + sim->card); decode_ebdt(data, NULL, NULL, number, NULL, NULL); encode_directory(data, number, "Kartenkennung"); - PDEBUG(DSIM7, DEBUG_INFO, "service mode: card = %s\n", number); + LOGP(DSIM7, LOGL_INFO, "service mode: card = %s\n", number); break; case 4: /* special key */ data[5] = eeprom_read(EEPROM_SONDER_H + sim->card); data[6] = eeprom_read(EEPROM_SONDER_L + sim->card); decode_ebdt(data, NULL, NULL, NULL, number, NULL); encode_directory(data, number, "Sonderheitsschl."); - PDEBUG(DSIM7, DEBUG_INFO, "service mode: special = %s\n", number); + LOGP(DSIM7, LOGL_INFO, "service mode: special = %s\n", number); break; case 5: /* maintenance key */ data[7] = eeprom_read(EEPROM_WARTUNG_H + sim->card); data[8] = eeprom_read(EEPROM_WARTUNG_L + sim->card); decode_ebdt(data, NULL, NULL, NULL, NULL, number); encode_directory(data, number, "Wartungsschl."); - PDEBUG(DSIM7, DEBUG_INFO, "service mode: maintenance = %s\n", number); + LOGP(DSIM7, LOGL_INFO, "service mode: maintenance = %s\n", number); break; } tx_sdu(sim, 0, data, 24); @@ -655,9 +655,9 @@ static void rd_rufn(sim_sim_t *sim, uint8_t *data, int length) size = directory_size(); /* first entry (0) is used as allocation map */ - PDEBUG(DSIM7, DEBUG_INFO, " %d numbers can be stored in EEPROM\n", size - 1); + LOGP(DSIM7, LOGL_INFO, " %d numbers can be stored in EEPROM\n", size - 1); if (rufn >= size) { - PDEBUG(DSIM7, DEBUG_NOTICE, "RD_RUFN entry #%d out of range\n", rufn); + LOGP(DSIM7, LOGL_NOTICE, "RD_RUFN entry #%d out of range\n", rufn); return_error(sim); return; } @@ -674,12 +674,12 @@ static void wt_rufn(sim_sim_t *sim, uint8_t *data, int length) uint8_t rufn = data[0]; if (length < 25) { - PDEBUG(DSIM7, DEBUG_NOTICE, "WT_RUFN too short\n"); + LOGP(DSIM7, LOGL_NOTICE, "WT_RUFN too short\n"); return_error(sim); return; } - PDEBUG(DSIM7, DEBUG_INFO, " WT-RUFN (loc=%d)\n", rufn); + LOGP(DSIM7, LOGL_INFO, " WT-RUFN (loc=%d)\n", rufn); /* SERVICE MODE */ if (sim->program_mode) { @@ -692,7 +692,7 @@ static void wt_rufn(sim_sim_t *sim, uint8_t *data, int length) goto respond; switch (rufn) { case 1: /* FUTLN */ - PDEBUG(DSIM7, DEBUG_INFO, "service mode: FUTLN = %s\n", number); + LOGP(DSIM7, LOGL_INFO, "service mode: FUTLN = %s\n", number); rc = encode_ebdt(data, number, NULL, NULL, NULL, NULL); if (rc < 0) break; @@ -701,7 +701,7 @@ static void wt_rufn(sim_sim_t *sim, uint8_t *data, int length) eeprom_write(EEPROM_FUTLN_L + sim->card, data[2]); break; case 2: /* security code */ - PDEBUG(DSIM7, DEBUG_INFO, "service mode: security = %s\n", number); + LOGP(DSIM7, LOGL_INFO, "service mode: security = %s\n", number); rc = encode_ebdt(data, NULL, number, NULL, NULL, NULL); if (rc < 0) break; @@ -709,7 +709,7 @@ static void wt_rufn(sim_sim_t *sim, uint8_t *data, int length) eeprom_write(EEPROM_SICH_L + sim->card, data[4]); break; case 3: /* card ID */ - PDEBUG(DSIM7, DEBUG_INFO, "service mode: card = %s\n", number); + LOGP(DSIM7, LOGL_INFO, "service mode: card = %s\n", number); data[5] = eeprom_read(EEPROM_SONDER_H + sim->card); rc = encode_ebdt(data, NULL, NULL, number, NULL, NULL); if (rc < 0) @@ -717,7 +717,7 @@ static void wt_rufn(sim_sim_t *sim, uint8_t *data, int length) eeprom_write(EEPROM_SONDER_H + sim->card, data[5]); break; case 4: /* special key */ - PDEBUG(DSIM7, DEBUG_INFO, "service mode: special = %s\n", number); + LOGP(DSIM7, LOGL_INFO, "service mode: special = %s\n", number); data[5] = eeprom_read(EEPROM_SONDER_H + sim->card); rc = encode_ebdt(data, NULL, NULL, NULL, number, NULL); if (rc < 0) @@ -726,7 +726,7 @@ static void wt_rufn(sim_sim_t *sim, uint8_t *data, int length) eeprom_write(EEPROM_SONDER_L + sim->card, data[6]); break; case 5: /* maintenance key */ - PDEBUG(DSIM7, DEBUG_INFO, "service mode: maintenance = %s\n", number); + LOGP(DSIM7, LOGL_INFO, "service mode: maintenance = %s\n", number); rc = encode_ebdt(data, NULL, NULL, NULL, NULL, number); if (rc < 0) break; @@ -739,7 +739,7 @@ static void wt_rufn(sim_sim_t *sim, uint8_t *data, int length) } if (rufn >= directory_size() || rufn < 1) { - PDEBUG(DSIM7, DEBUG_NOTICE, "WT_RUFN entry #%d out of range\n", rufn); + LOGP(DSIM7, LOGL_NOTICE, "WT_RUFN entry #%d out of range\n", rufn); return_error(sim); return; } @@ -757,10 +757,10 @@ static void chk_pin(sim_sim_t *sim, uint8_t *data, int length) { int rc; - PDEBUG(DSIM7, DEBUG_INFO, " CHK-PIN\n"); + LOGP(DSIM7, LOGL_INFO, " CHK-PIN\n"); if (length < 4 || length > 8) { - PDEBUG(DSIM7, DEBUG_NOTICE, "SET-PIN wrong length: %d\n", length); + LOGP(DSIM7, LOGL_NOTICE, "SET-PIN wrong length: %d\n", length); return_error(sim); return; } @@ -785,10 +785,10 @@ static void set_pin(sim_sim_t *sim, uint8_t *data, int length) int i; int rc; - PDEBUG(DSIM7, DEBUG_INFO, " SET-PIN\n"); + LOGP(DSIM7, LOGL_INFO, " SET-PIN\n"); if (length < 1) { - PDEBUG(DSIM7, DEBUG_NOTICE, "SET-PIN too short\n"); + LOGP(DSIM7, LOGL_NOTICE, "SET-PIN too short\n"); return_error(sim); return; } @@ -798,7 +798,7 @@ static void set_pin(sim_sim_t *sim, uint8_t *data, int length) len_new = length - len_old - 1; pin_new = data + 1 + len_old; if (len_new < 4 || len_new > 8) { - PDEBUG(DSIM7, DEBUG_NOTICE, "New PIN wrong length %d!\n", len_new); + LOGP(DSIM7, LOGL_NOTICE, "New PIN wrong length %d!\n", len_new); return_error(sim); return; } @@ -826,10 +826,10 @@ static void eh_gebz(sim_sim_t *sim, uint8_t *data, int length) { uint32_t gebz; - PDEBUG(DSIM7, DEBUG_INFO, " EH-GEBZ\n"); + LOGP(DSIM7, LOGL_INFO, " EH-GEBZ\n"); if (length < 1) { - PDEBUG(DSIM7, DEBUG_NOTICE, "EH-GEBZ wrong length: %d\n", length); + LOGP(DSIM7, LOGL_NOTICE, "EH-GEBZ wrong length: %d\n", length); return_error(sim); return; } @@ -853,7 +853,7 @@ static void cl_gebz(sim_sim_t *sim) { uint8_t *data; - PDEBUG(DSIM7, DEBUG_INFO, " CL-GEBZ\n"); + LOGP(DSIM7, LOGL_INFO, " CL-GEBZ\n"); /* clear counter */ eeprom_write(EEPROM_GEBZ_H, 0); @@ -870,7 +870,7 @@ static void rd_gebz(sim_sim_t *sim) { uint8_t *data; - PDEBUG(DSIM7, DEBUG_INFO, " RD-GEBZ\n"); + LOGP(DSIM7, LOGL_INFO, " RD-GEBZ\n"); /* respond */ data = alloc_msg(sim, 3); @@ -885,7 +885,7 @@ static void sp_gzrv(sim_sim_t *sim) { uint8_t *data; - PDEBUG(DSIM7, DEBUG_INFO, " SP-GZRV\n"); + LOGP(DSIM7, LOGL_INFO, " SP-GZRV\n"); sim->gebz_locked = 1; write_flags(sim); @@ -900,7 +900,7 @@ static void fr_gzrv(sim_sim_t *sim) { uint8_t *data; - PDEBUG(DSIM7, DEBUG_INFO, " FR-GZRV\n"); + LOGP(DSIM7, LOGL_INFO, " FR-GZRV\n"); sim->gebz_locked = 0; write_flags(sim); @@ -916,7 +916,7 @@ static void aut_1(sim_sim_t *sim) uint8_t *data; int i; - PDEBUG(DSIM7, DEBUG_INFO, " AUTH-1\n"); + LOGP(DSIM7, LOGL_INFO, " AUTH-1\n"); /* respond */ data = alloc_msg(sim, 1); @@ -930,7 +930,7 @@ static void rd_f4(sim_sim_t *sim) { uint8_t *data; - PDEBUG(DSIM7, DEBUG_INFO, " RD-F4\n"); + LOGP(DSIM7, LOGL_INFO, " RD-F4\n"); /* respond */ data = alloc_msg(sim, 2); @@ -944,7 +944,7 @@ static void rd_f5(sim_sim_t *sim) { uint8_t *data; - PDEBUG(DSIM7, DEBUG_INFO, " RD-F5\n"); + LOGP(DSIM7, LOGL_INFO, " RD-F5\n"); /* respond */ data = alloc_msg(sim, 0); @@ -956,7 +956,7 @@ static void rd_04(sim_sim_t *sim) { uint8_t *data; - PDEBUG(DSIM7, DEBUG_INFO, " RD-04\n"); + LOGP(DSIM7, LOGL_INFO, " RD-04\n"); /* respond */ data = alloc_msg(sim, 25); @@ -971,13 +971,13 @@ static void rx_sdu(sim_sim_t *sim, uint8_t *data, int length) uint8_t cla, ins, dlng; if (length < 3) { - PDEBUG(DSIM7, DEBUG_NOTICE, "SDU too short\n"); + LOGP(DSIM7, LOGL_NOTICE, "SDU too short\n"); return; } /* skip all responses, because we don't send commands */ if (*data & CCRC_IDENT) { - PDEBUG(DSIM7, DEBUG_NOTICE, "Skipping SDU with response\n"); + LOGP(DSIM7, LOGL_NOTICE, "Skipping SDU with response\n"); return; } @@ -989,7 +989,7 @@ static void rx_sdu(sim_sim_t *sim, uint8_t *data, int length) /* check length */ if (dlng != length) { - PDEBUG(DSIM7, DEBUG_NOTICE, "Skipping SDU with invalid length\n"); + LOGP(DSIM7, LOGL_NOTICE, "Skipping SDU with invalid length\n"); return; } @@ -1044,7 +1044,7 @@ static void rx_sdu(sim_sim_t *sim, uint8_t *data, int length) } /* unsupported message */ - PDEBUG(DSIM7, DEBUG_NOTICE, "CLA 0x%02x INS 0x%02x unknown\n", cla, ins); + LOGP(DSIM7, LOGL_NOTICE, "CLA 0x%02x INS 0x%02x unknown\n", cla, ins); data = alloc_msg(sim, 0); tx_sdu(sim, CCRC_ERROR, data, 0); } @@ -1075,7 +1075,7 @@ static void rx_pdu(sim_sim_t *sim, uint8_t *data, int length) if (length < 1) { too_short: - PDEBUG(DSIMI, DEBUG_NOTICE, "PDU too short\n"); + LOGP(DSIMI, LOGL_NOTICE, "PDU too short\n"); return; } @@ -1125,24 +1125,24 @@ static void rx_block(sim_sim_t *sim) /* NOTE: This procedure is simplified, it does not comply with the specs. */ - PDEBUG(DSIM2, DEBUG_INFO, "RX message\n"); + LOGP(DSIM2, LOGL_INFO, "RX message\n"); sim->addr_src = sim->block_address >> 4; sim->addr_dst = sim->block_address & 0xf; if (sim->block_checksum != 0) { - PDEBUG(DSIM2, DEBUG_NOTICE, "Checksum error!\n"); + LOGP(DSIM2, LOGL_NOTICE, "Checksum error!\n"); goto reject; } if ((sim->block_control & 0x11) == 0x00) { ns = (sim->block_control >> 1) & 7; nr = sim->block_control >> 5; - PDEBUG(DSIM2, DEBUG_INFO, " control I: N(S)=%d N(R)=%d\n", ns, nr); + LOGP(DSIM2, LOGL_INFO, " control I: N(S)=%d N(R)=%d\n", ns, nr); if (ns == sim->vr && nr == sim->vs) { /* receive data */ sim->vr = (sim->vr + 1) & 0x7; rx_pdu(sim, sim->block_rx_data, sim->block_rx_length); return; } else { - PDEBUG(DSIM2, DEBUG_NOTICE, "Seqeuence error!\n"); + LOGP(DSIM2, LOGL_NOTICE, "Seqeuence error!\n"); reject: /* reject (or send resync after 3 times) */ data = alloc_msg(sim, 0); @@ -1158,7 +1158,7 @@ reject: } if ((sim->block_control & 0x1f) == 0x09) { nr = sim->block_control >> 5; - PDEBUG(DSIM2, DEBUG_INFO, " control REJ: N(R)=%d\n", nr); + LOGP(DSIM2, LOGL_INFO, " control REJ: N(R)=%d\n", nr); /* repeat last message */ if (sim->block_tx_length) { tx_block(sim, L2_I, sim->block_tx_data, sim->block_tx_length); @@ -1170,7 +1170,7 @@ reject: return; } if (sim->block_control == 0xef) { - PDEBUG(DSIM2, DEBUG_INFO, " control RES\n"); + LOGP(DSIM2, LOGL_INFO, " control RES\n"); sim->vr = sim->vs = 0; sim->reject_count = 0; if (sim->resync_sent == 0) { @@ -1201,7 +1201,7 @@ static int rx_char(sim_sim_t *sim, uint8_t c) case BLOCK_STATE_LENGTH: if (c > sizeof(sim->block_rx_data)) { c = sizeof(sim->block_rx_data); - PDEBUG(DSIM1, DEBUG_NOTICE, "RX buffer overflow: length=%d > buffer size (%d)\n", c, (int)sizeof(sim->block_rx_data)); + LOGP(DSIM1, LOGL_NOTICE, "RX buffer overflow: length=%d > buffer size (%d)\n", c, (int)sizeof(sim->block_rx_data)); } sim->block_rx_length = c; sim->block_count = 0; @@ -1225,24 +1225,24 @@ static int rx_char(sim_sim_t *sim, uint8_t c) /* create layer 2 message for layer 1 */ static void tx_block(sim_sim_t *sim, enum l2_cmd cmd, uint8_t __attribute__((unused)) *data, int length) { - PDEBUG(DSIM2, DEBUG_INFO, "TX response\n"); + LOGP(DSIM2, LOGL_INFO, "TX response\n"); /* header */ sim->block_address = (sim->addr_dst << 4) | sim->addr_src; switch (cmd) { case L2_I: - PDEBUG(DSIM2, DEBUG_INFO, " control I: N(S)=%d N(R)=%d\n", sim->vs, sim->vr); + LOGP(DSIM2, LOGL_INFO, " control I: N(S)=%d N(R)=%d\n", sim->vs, sim->vr); sim->block_control = (sim->vr << 5) | (sim->vs << 1); sim->vs = (sim->vs + 1) & 0x7; sim->resync_sent = 0; break; case L2_REJ: - PDEBUG(DSIM2, DEBUG_INFO, " control REJ: N(R)=%d\n", sim->vr); + LOGP(DSIM2, LOGL_INFO, " control REJ: N(R)=%d\n", sim->vr); sim->block_control = (sim->vr << 5) | 0x09; sim->resync_sent = 0; break; case L2_RES: - PDEBUG(DSIM2, DEBUG_INFO, " control RES\n"); + LOGP(DSIM2, LOGL_INFO, " control RES\n"); sim->block_control = 0xef; sim->resync_sent = 1; break; @@ -1367,7 +1367,7 @@ void sim_reset(sim_sim_t *sim, int reset) int i; char pin[8]; - PDEBUG(DSIM1, DEBUG_INFO, "Reset signal %s\n", (reset) ? "on (low)" : "off (high)"); + LOGP(DSIM1, LOGL_INFO, "Reset signal %s\n", (reset) ? "on (low)" : "off (high)"); memset(sim, 0, sizeof(*sim)); if (reset) @@ -1386,10 +1386,10 @@ void sim_reset(sim_sim_t *sim, int reset) sim->pin_required = 0; if (pin[3] > '0') sim->card = pin[3] - '1'; - PDEBUG(DSIM1, DEBUG_INFO, "Card has disabled PIN (system PIN '000%c') Selecting card #%d.\n", pin[3], sim->card + 1); + LOGP(DSIM1, LOGL_INFO, "Card has disabled PIN (system PIN '000%c') Selecting card #%d.\n", pin[3], sim->card + 1); } - PDEBUG(DSIM1, DEBUG_INFO, "Sending ATR\n"); + LOGP(DSIM1, LOGL_INFO, "Sending ATR\n"); sim->l1_state = L1_STATE_ATR; } @@ -1397,7 +1397,7 @@ int sim_rx(sim_sim_t *sim, uint8_t c) { int rc = -1; - PDEBUG(DSIM1, DEBUG_DEBUG, "Serial RX '0x%02x'\n", c); + LOGP(DSIM1, LOGL_DEBUG, "Serial RX '0x%02x'\n", c); switch (sim->l1_state) { case L1_STATE_IDLE: @@ -1408,7 +1408,7 @@ int sim_rx(sim_sim_t *sim, uint8_t c) rc = rx_char(sim, c); break; case L1_STATE_COMPLETE: - PDEBUG(DSIM1, DEBUG_NOTICE, "Received garbage after message!\n"); + LOGP(DSIM1, LOGL_NOTICE, "Received garbage after message!\n"); sim->l1_state = L1_STATE_GARBAGE; default: break; @@ -1433,7 +1433,7 @@ int sim_tx(sim_sim_t *sim) } if (c >= 0) - PDEBUG(DSIM1, DEBUG_DEBUG, "Serial TX '0x%02x'\n", c); + LOGP(DSIM1, LOGL_DEBUG, "Serial TX '0x%02x'\n", c); return c; } @@ -1442,19 +1442,19 @@ void sim_timeout(sim_sim_t *sim) { switch (sim->l1_state) { case L1_STATE_ATR: - PDEBUG(DSIM1, DEBUG_NOTICE, "Timeout while transmitting ATR!\n"); + LOGP(DSIM1, LOGL_NOTICE, "Timeout while transmitting ATR!\n"); sim->l1_state = L1_STATE_RESET; break; case L1_STATE_RECEIVE: - PDEBUG(DSIM1, DEBUG_NOTICE, "Timeout while receiving message!\n"); + LOGP(DSIM1, LOGL_NOTICE, "Timeout while receiving message!\n"); sim->block_state = BLOCK_STATE_ADDRESS; break; case L1_STATE_GARBAGE: - PDEBUG(DSIM1, DEBUG_NOTICE, "Timeout after skipping garbage!\n"); + LOGP(DSIM1, LOGL_NOTICE, "Timeout after skipping garbage!\n"); sim->l1_state = L1_STATE_IDLE; break; case L1_STATE_SEND: - PDEBUG(DSIM1, DEBUG_NOTICE, "Timeout while sending message!\n"); + LOGP(DSIM1, LOGL_NOTICE, "Timeout while sending message!\n"); sim->l1_state = L1_STATE_IDLE; break; case L1_STATE_COMPLETE: diff --git a/src/sim/sniffer.c b/src/sim/sniffer.c index 34a2e4c..89684aa 100644 --- a/src/sim/sniffer.c +++ b/src/sim/sniffer.c @@ -22,7 +22,7 @@ #include <stdio.h> #include <string.h> #include <stdint.h> -#include "../libdebug/debug.h" +#include "../liblogging/logging.h" #include "sim.h" #include "sniffer.h" @@ -37,7 +37,7 @@ static void rx_icl_sdu(uint8_t *data, int length) int i; if (length < 3) { - PDEBUG(DSIM7, DEBUG_NOTICE, "Message too short\n"); + LOGP(DSIM7, LOGL_NOTICE, "Message too short\n"); return; } @@ -47,146 +47,146 @@ static void rx_icl_sdu(uint8_t *data, int length) dlng = *data++; length -= 3; - PDEBUG(DSIM7, DEBUG_INFO, "Layer 7:\n"); + LOGP(DSIM7, LOGL_INFO, "Layer 7:\n"); if (I == 0) { - PDEBUG(DSIM7, DEBUG_INFO, " I = Command\n"); - PDEBUG(DSIM7, DEBUG_INFO, " CLA = 0x%02x\n", cla_ccrc); + LOGP(DSIM7, LOGL_INFO, " I = Command\n"); + LOGP(DSIM7, LOGL_INFO, " CLA = 0x%02x\n", cla_ccrc); switch (cla_ccrc) { case CLA_CNTR: - PDEBUG(DSIM7, DEBUG_INFO, " -> CNTR (Control Class)\n"); + LOGP(DSIM7, LOGL_INFO, " -> CNTR (Control Class)\n"); break; case CLA_STAT: - PDEBUG(DSIM7, DEBUG_INFO, " -> STAT (Status Class)\n"); + LOGP(DSIM7, LOGL_INFO, " -> STAT (Status Class)\n"); break; case CLA_WRTE: - PDEBUG(DSIM7, DEBUG_INFO, " -> WRTE (Write Class)\n"); + LOGP(DSIM7, LOGL_INFO, " -> WRTE (Write Class)\n"); break; case CLA_READ: - PDEBUG(DSIM7, DEBUG_INFO, " -> READ (Read Class)\n"); + LOGP(DSIM7, LOGL_INFO, " -> READ (Read Class)\n"); break; case CLA_EXEC: - PDEBUG(DSIM7, DEBUG_INFO, " -> EXEC (Execute Class)\n"); + LOGP(DSIM7, LOGL_INFO, " -> EXEC (Execute Class)\n"); break; case CLA_AUTO: - PDEBUG(DSIM7, DEBUG_INFO, " -> AUTO (Authentication Class)\n"); + LOGP(DSIM7, LOGL_INFO, " -> AUTO (Authentication Class)\n"); break; default: - PDEBUG(DSIM7, DEBUG_INFO, " -> unknown class\n"); + LOGP(DSIM7, LOGL_INFO, " -> unknown class\n"); break; } - PDEBUG(DSIM7, DEBUG_INFO, " INS = 0x%02x\n", ins_aprc); + LOGP(DSIM7, LOGL_INFO, " INS = 0x%02x\n", ins_aprc); switch (cla_ccrc) { case CLA_CNTR: switch (ins_aprc) { case SL_APPL: - PDEBUG(DSIM7, DEBUG_INFO, " -> SL-APPL (Select Application)\n"); + LOGP(DSIM7, LOGL_INFO, " -> SL-APPL (Select Application)\n"); break; case CL_APPL: - PDEBUG(DSIM7, DEBUG_INFO, " -> CL-APPL (Close Application)\n"); + LOGP(DSIM7, LOGL_INFO, " -> CL-APPL (Close Application)\n"); break; case SH_APPL: - PDEBUG(DSIM7, DEBUG_INFO, " -> SH-APPL (Show Application)\n"); + LOGP(DSIM7, LOGL_INFO, " -> SH-APPL (Show Application)\n"); break; } break; case CLA_STAT: switch (ins_aprc) { case CHK_KON: - PDEBUG(DSIM7, DEBUG_INFO, " -> CHK-KCON (Consistency Check)\n"); + LOGP(DSIM7, LOGL_INFO, " -> CHK-KCON (Consistency Check)\n"); break; } break; case CLA_WRTE: switch (ins_aprc) { case WT_RUFN: - PDEBUG(DSIM7, DEBUG_INFO, " -> WR-RUFN (Write Rufnummernsatz)\n"); + LOGP(DSIM7, LOGL_INFO, " -> WR-RUFN (Write Rufnummernsatz)\n"); break; } break; case CLA_READ: switch (ins_aprc) { case RD_EBDT: - PDEBUG(DSIM7, DEBUG_INFO, " -> RD-EBDT (Read Einbuchdaten)\n"); + LOGP(DSIM7, LOGL_INFO, " -> RD-EBDT (Read Einbuchdaten)\n"); break; case RD_RUFN: - PDEBUG(DSIM7, DEBUG_INFO, " -> RD-RUFN (Read Rufnummernsatz)\n"); + LOGP(DSIM7, LOGL_INFO, " -> RD-RUFN (Read Rufnummernsatz)\n"); break; case RD_GEBZ: - PDEBUG(DSIM7, DEBUG_INFO, " -> RD-GEBZ (Read Gebuehrenzaehler)\n"); + LOGP(DSIM7, LOGL_INFO, " -> RD-GEBZ (Read Gebuehrenzaehler)\n"); break; } break; case CLA_EXEC: switch (ins_aprc) { case CHK_PIN: - PDEBUG(DSIM7, DEBUG_INFO, " -> CHK-PIN (Check PIN)\n"); + LOGP(DSIM7, LOGL_INFO, " -> CHK-PIN (Check PIN)\n"); break; case SET_PIN: - PDEBUG(DSIM7, DEBUG_INFO, " -> SET-PIN (Set PIN)\n"); + LOGP(DSIM7, LOGL_INFO, " -> SET-PIN (Set PIN)\n"); break; case EH_GEBZ: - PDEBUG(DSIM7, DEBUG_INFO, " -> EH-GEBZ (Increment Gebuehrenzaehler)\n"); + LOGP(DSIM7, LOGL_INFO, " -> EH-GEBZ (Increment Gebuehrenzaehler)\n"); break; case CL_GEBZ: - PDEBUG(DSIM7, DEBUG_INFO, " -> CL-GEBZ (Clear Gebuehrenzaehler)\n"); + LOGP(DSIM7, LOGL_INFO, " -> CL-GEBZ (Clear Gebuehrenzaehler)\n"); break; } break; case CLA_AUTO: switch (ins_aprc) { case AUT_1: - PDEBUG(DSIM7, DEBUG_INFO, " -> AUTO-1 (Authorization)\n"); + LOGP(DSIM7, LOGL_INFO, " -> AUTO-1 (Authorization)\n"); break; } break; } } else { - PDEBUG(DSIM7, DEBUG_INFO, " I = Response\n"); - PDEBUG(DSIM7, DEBUG_INFO, " CCRC = 0x%02x\n", cla_ccrc); + LOGP(DSIM7, LOGL_INFO, " I = Response\n"); + LOGP(DSIM7, LOGL_INFO, " CCRC = 0x%02x\n", cla_ccrc); if (cla_ccrc & CCRC_PIN_NOK) - PDEBUG(DSIM7, DEBUG_INFO, " -> PIN-NOT-OK\n"); + LOGP(DSIM7, LOGL_INFO, " -> PIN-NOT-OK\n"); if (cla_ccrc & CCRC_AFBZ_NULL) - PDEBUG(DSIM7, DEBUG_INFO, " -> AFBZ = NULL\n"); + LOGP(DSIM7, LOGL_INFO, " -> AFBZ = NULL\n"); if (cla_ccrc & CCRC_APRC_VALID) - PDEBUG(DSIM7, DEBUG_INFO, " -> APRC valid\n"); + LOGP(DSIM7, LOGL_INFO, " -> APRC valid\n"); if (cla_ccrc & 0x08) - PDEBUG(DSIM7, DEBUG_INFO, " -> reserved\n"); + LOGP(DSIM7, LOGL_INFO, " -> reserved\n"); if (cla_ccrc & 0x10) - PDEBUG(DSIM7, DEBUG_INFO, " -> reserved\n"); + LOGP(DSIM7, LOGL_INFO, " -> reserved\n"); if (cla_ccrc & 0x20) - PDEBUG(DSIM7, DEBUG_INFO, " -> reserved\n"); + LOGP(DSIM7, LOGL_INFO, " -> reserved\n"); if (cla_ccrc & CCRC_ERROR) - PDEBUG(DSIM7, DEBUG_INFO, " -> GENERAL ERROR\n"); - PDEBUG(DSIM7, DEBUG_INFO, " APRC = 0x%02x\n", ins_aprc); + LOGP(DSIM7, LOGL_INFO, " -> GENERAL ERROR\n"); + LOGP(DSIM7, LOGL_INFO, " APRC = 0x%02x\n", ins_aprc); if (ins_aprc & APRC_PIN_REQ) - PDEBUG(DSIM7, DEBUG_INFO, " -> Bit 2 = 1:PIN-Check required\n"); + LOGP(DSIM7, LOGL_INFO, " -> Bit 2 = 1:PIN-Check required\n"); else - PDEBUG(DSIM7, DEBUG_INFO, " -> Bit 2 = 0:PIN-Check not required\n"); + LOGP(DSIM7, LOGL_INFO, " -> Bit 2 = 0:PIN-Check not required\n"); if (ins_aprc & APRC_APP_LOCKED) - PDEBUG(DSIM7, DEBUG_INFO, " -> Bit 3 = 1:Application locked\n"); + LOGP(DSIM7, LOGL_INFO, " -> Bit 3 = 1:Application locked\n"); else - PDEBUG(DSIM7, DEBUG_INFO, " -> Bit 3 = 0:Application unlocked\n"); + LOGP(DSIM7, LOGL_INFO, " -> Bit 3 = 0:Application unlocked\n"); if (ins_aprc & APRC_GEBZ_LOCK) - PDEBUG(DSIM7, DEBUG_INFO, " -> Bit 5 = 1:GEBZ/RUFN locked\n"); + LOGP(DSIM7, LOGL_INFO, " -> Bit 5 = 1:GEBZ/RUFN locked\n"); else - PDEBUG(DSIM7, DEBUG_INFO, " -> Bit 5 = 0:GEBZ/RUFN unlocked\n"); + LOGP(DSIM7, LOGL_INFO, " -> Bit 5 = 0:GEBZ/RUFN unlocked\n"); if (ins_aprc & APRC_GEBZ_FULL) - PDEBUG(DSIM7, DEBUG_INFO, " -> Bit 6 = 1:GEBZ full\n"); + LOGP(DSIM7, LOGL_INFO, " -> Bit 6 = 1:GEBZ full\n"); else - PDEBUG(DSIM7, DEBUG_INFO, " -> Bit 6 = 0:GEBZ not full\n"); + LOGP(DSIM7, LOGL_INFO, " -> Bit 6 = 0:GEBZ not full\n"); } if (dlng == 255) { - PDEBUG(DSIM7, DEBUG_NOTICE, " Unsupported length 255!\n"); + LOGP(DSIM7, LOGL_NOTICE, " Unsupported length 255!\n"); return; } - PDEBUG(DSIM7, DEBUG_INFO, " DLNG = %d\n", dlng); + LOGP(DSIM7, LOGL_INFO, " DLNG = %d\n", dlng); if (dlng != length) { - PDEBUG(DSIM7, DEBUG_NOTICE, " DLNG does not match message body!\n"); + LOGP(DSIM7, LOGL_NOTICE, " DLNG does not match message body!\n"); return; } for (i = 0; i < length; i++) { - PDEBUG(DSIM7, DEBUG_INFO, " DATA(%d) = 0x%02x '%c' %d\n", i, data[i], (data[i] >= 32 && data[i] <= 126) ? data[i] : '.', data[i]); + LOGP(DSIM7, LOGL_INFO, " DATA(%d) = 0x%02x '%c' %d\n", i, data[i], (data[i] >= 32 && data[i] <= 126) ? data[i] : '.', data[i]); } } @@ -198,43 +198,43 @@ static void rx_icl_pdu(uint8_t *data, int length) if (ext) { if (length < 1) { - PDEBUG(DSIMI, DEBUG_NOTICE, "Message too short\n"); + LOGP(DSIMI, LOGL_NOTICE, "Message too short\n"); return; } - PDEBUG(DSIMI, DEBUG_INFO, "Interface control layer ICB1:\n"); + LOGP(DSIMI, LOGL_INFO, "Interface control layer ICB1:\n"); if (*data & ICB1_ONLINE) - PDEBUG(DSIMI, DEBUG_INFO, " ON-LINE-BIT: 1 = On-line data\n"); + LOGP(DSIMI, LOGL_INFO, " ON-LINE-BIT: 1 = On-line data\n"); else - PDEBUG(DSIMI, DEBUG_INFO, " ON-LINE-BIT: 0 = Off-line data\n"); + LOGP(DSIMI, LOGL_INFO, " ON-LINE-BIT: 0 = Off-line data\n"); if (*data & ICB1_CONFIRM) - PDEBUG(DSIMI, DEBUG_INFO, " CONFIRM-BIT: 1 = Confirmation\n"); + LOGP(DSIMI, LOGL_INFO, " CONFIRM-BIT: 1 = Confirmation\n"); else - PDEBUG(DSIMI, DEBUG_INFO, " CONFIRM-BIT: 0 = No meaning\n"); + LOGP(DSIMI, LOGL_INFO, " CONFIRM-BIT: 0 = No meaning\n"); if (*data & ICB1_MASTER) - PDEBUG(DSIMI, DEBUG_INFO, " MASTER/SLAVE-BIT: 1 = Sender is master\n"); + LOGP(DSIMI, LOGL_INFO, " MASTER/SLAVE-BIT: 1 = Sender is master\n"); else - PDEBUG(DSIMI, DEBUG_INFO, " MASTER/SLAVE-BIT: 0 = Sender is slave\n"); + LOGP(DSIMI, LOGL_INFO, " MASTER/SLAVE-BIT: 0 = Sender is slave\n"); if (*data & ICB1_WT_EXT) - PDEBUG(DSIMI, DEBUG_INFO, " WT-EXTENSION-BIT: 1 = Request for WT-Extension\n"); + LOGP(DSIMI, LOGL_INFO, " WT-EXTENSION-BIT: 1 = Request for WT-Extension\n"); else - PDEBUG(DSIMI, DEBUG_INFO, " WT-EXTENSION-BIT: 0 = No request for WT-Extension\n"); + LOGP(DSIMI, LOGL_INFO, " WT-EXTENSION-BIT: 0 = No request for WT-Extension\n"); if (*data & ICB1_ABORT) - PDEBUG(DSIMI, DEBUG_INFO, " ABORT/TERMINATE-BIT: 1 = Abort/Terminate request\n"); + LOGP(DSIMI, LOGL_INFO, " ABORT/TERMINATE-BIT: 1 = Abort/Terminate request\n"); else - PDEBUG(DSIMI, DEBUG_INFO, " ABORT/TERMINATE-BIT: 0 = No meaning\n"); + LOGP(DSIMI, LOGL_INFO, " ABORT/TERMINATE-BIT: 0 = No meaning\n"); if (*data & ICB1_ERROR) - PDEBUG(DSIMI, DEBUG_INFO, " ERROR-BIT: 1 = Error\n"); + LOGP(DSIMI, LOGL_INFO, " ERROR-BIT: 1 = Error\n"); else - PDEBUG(DSIMI, DEBUG_INFO, " ERROR-BIT: 0 = No meaning\n"); + LOGP(DSIMI, LOGL_INFO, " ERROR-BIT: 0 = No meaning\n"); if (*data & ICB1_CHAINING) - PDEBUG(DSIMI, DEBUG_INFO, " CHAINING-BIT: 1 = More ICL data follows\n"); + LOGP(DSIMI, LOGL_INFO, " CHAINING-BIT: 1 = More ICL data follows\n"); else - PDEBUG(DSIMI, DEBUG_INFO, " CHAINING-BIT: 0 = No more ICL data follows\n"); + LOGP(DSIMI, LOGL_INFO, " CHAINING-BIT: 0 = No more ICL data follows\n"); if (*data & ICB_EXT) - PDEBUG(DSIMI, DEBUG_INFO, " ICB-EXTENSION-BIT: 1 = ICB2 follows\n"); + LOGP(DSIMI, LOGL_INFO, " ICB-EXTENSION-BIT: 1 = ICB2 follows\n"); else { - PDEBUG(DSIMI, DEBUG_INFO, " ICB-EXTENSION-BIT: 0 = no ICB follows\n"); + LOGP(DSIMI, LOGL_INFO, " ICB-EXTENSION-BIT: 0 = no ICB follows\n"); ext = 0; } data++; @@ -243,27 +243,27 @@ static void rx_icl_pdu(uint8_t *data, int length) if (ext) { if (length < 1) { - PDEBUG(DSIMI, DEBUG_NOTICE, "Message too short\n"); + LOGP(DSIMI, LOGL_NOTICE, "Message too short\n"); return; } - PDEBUG(DSIMI, DEBUG_INFO, "Interface control layer ICB2:\n"); + LOGP(DSIMI, LOGL_INFO, "Interface control layer ICB2:\n"); if (*data & ICB2_DYNAMIC) - PDEBUG(DSIMI, DEBUG_INFO, " DYN-BUFFER-SIZE-BIT: 1 = Buffer size %d\n", (*data & ICB2_BUFFER) * 8); + LOGP(DSIMI, LOGL_INFO, " DYN-BUFFER-SIZE-BIT: 1 = Buffer size %d\n", (*data & ICB2_BUFFER) * 8); else - PDEBUG(DSIMI, DEBUG_INFO, " DYN-BUFFER-SIZE-BIT: 0 = No meaning\n"); + LOGP(DSIMI, LOGL_INFO, " DYN-BUFFER-SIZE-BIT: 0 = No meaning\n"); if (*data & ICB2_ISO_L2) - PDEBUG(DSIMI, DEBUG_INFO, " ISO-7816-BLOCK-BIT: 1 = Compatible\n"); + LOGP(DSIMI, LOGL_INFO, " ISO-7816-BLOCK-BIT: 1 = Compatible\n"); else - PDEBUG(DSIMI, DEBUG_INFO, " ISO-7816-BLOCK-BIT: 0 = Incompatible\n"); + LOGP(DSIMI, LOGL_INFO, " ISO-7816-BLOCK-BIT: 0 = Incompatible\n"); if (*data & ICB2_PRIVATE) - PDEBUG(DSIMI, DEBUG_INFO, " PRIVATE-USE-BIT: 1 = Private use layer 7 protocol\n"); + LOGP(DSIMI, LOGL_INFO, " PRIVATE-USE-BIT: 1 = Private use layer 7 protocol\n"); else - PDEBUG(DSIMI, DEBUG_INFO, " PRIVATE-USE-BIT: 0 = No meaning\n"); + LOGP(DSIMI, LOGL_INFO, " PRIVATE-USE-BIT: 0 = No meaning\n"); if (*data & ICB_EXT) - PDEBUG(DSIMI, DEBUG_INFO, " ICB-EXTENSION-BIT: 1 = ICB3 follows\n"); + LOGP(DSIMI, LOGL_INFO, " ICB-EXTENSION-BIT: 1 = ICB3 follows\n"); else { - PDEBUG(DSIMI, DEBUG_INFO, " ICB-EXTENSION-BIT: 0 = no ICB follows\n"); + LOGP(DSIMI, LOGL_INFO, " ICB-EXTENSION-BIT: 0 = no ICB follows\n"); ext = 0; } data++; @@ -273,12 +273,12 @@ static void rx_icl_pdu(uint8_t *data, int length) icb_count = 2; while (ext) { if (length < 1) { - PDEBUG(DSIMI, DEBUG_NOTICE, "Message too short\n"); + LOGP(DSIMI, LOGL_NOTICE, "Message too short\n"); return; } - PDEBUG(DSIMI, DEBUG_INFO, "Interface control layer ICB%d:\n", ++icb_count); - PDEBUG(DSIMI, DEBUG_INFO, " Value: 0x%02x\n", *data); + LOGP(DSIMI, LOGL_INFO, "Interface control layer ICB%d:\n", ++icb_count); + LOGP(DSIMI, LOGL_INFO, " Value: 0x%02x\n", *data); if (!(*data & 0x80)) ext = 0; data++; @@ -301,7 +301,7 @@ static uint8_t flip(uint8_t c) void sniffer_reset(sim_sniffer_t *sim) { - PDEBUG(DSIM1, DEBUG_INFO, "Resetting sniffer\n"); + LOGP(DSIM1, LOGL_INFO, "Resetting sniffer\n"); memset(sim, 0, sizeof(*sim)); } @@ -380,47 +380,47 @@ static void decode_ta1(sim_sniffer_t __attribute__((unused)) *sim, uint8_t c, in } if (fi > 0) - PDEBUG(DSIM2, DEBUG_INFO, " TA%d Fi = %d, f(max.) = %.1f MHz\n", count, fi, fmax); + LOGP(DSIM2, LOGL_INFO, " TA%d Fi = %d, f(max.) = %.1f MHz\n", count, fi, fmax); else - PDEBUG(DSIM2, DEBUG_INFO, " TA%d Fi = RFU\n", count); + LOGP(DSIM2, LOGL_INFO, " TA%d Fi = RFU\n", count); if (di > 0) - PDEBUG(DSIM2, DEBUG_INFO, " TA%d Di = %d\n", count, di); + LOGP(DSIM2, LOGL_INFO, " TA%d Di = %d\n", count, di); else - PDEBUG(DSIM2, DEBUG_INFO, " TA%d Di = RFU\n", count); + LOGP(DSIM2, LOGL_INFO, " TA%d Di = RFU\n", count); } static void decode_ta2(sim_sniffer_t __attribute__((unused)) *sim, uint8_t c, int count) { - PDEBUG(DSIM2, DEBUG_INFO, " TA%d T = %d\n", count, c & 0xf); + LOGP(DSIM2, LOGL_INFO, " TA%d T = %d\n", count, c & 0xf); if (!(c & 0x10)) - PDEBUG(DSIM2, DEBUG_INFO, " TA%d : Fi and Di by TA1 shall apply.\n", count); + LOGP(DSIM2, LOGL_INFO, " TA%d : Fi and Di by TA1 shall apply.\n", count); else - PDEBUG(DSIM2, DEBUG_INFO, " TA%d : Implicit values (and not Di / Di by TA1) sall apply.\n", count); + LOGP(DSIM2, LOGL_INFO, " TA%d : Implicit values (and not Di / Di by TA1) sall apply.\n", count); if (!(c & 0x80)) - PDEBUG(DSIM2, DEBUG_INFO, " TA%d : Capable to change negotiable/specific mode.\n", count); + LOGP(DSIM2, LOGL_INFO, " TA%d : Capable to change negotiable/specific mode.\n", count); else - PDEBUG(DSIM2, DEBUG_INFO, " TA%d : Unable to change negotiable/specific mode.\n", count); + LOGP(DSIM2, LOGL_INFO, " TA%d : Unable to change negotiable/specific mode.\n", count); } static void decode_tai(sim_sniffer_t *sim, uint8_t c, int count) { if ((sim->atr_td & 0xf) != 14) { - PDEBUG(DSIM2, DEBUG_INFO, " TA%d Value = 0x%02x\n", count, c); + LOGP(DSIM2, LOGL_INFO, " TA%d Value = 0x%02x\n", count, c); return; } if (count == 3) { switch (c & 0xf) { case 0: - PDEBUG(DSIM2, DEBUG_INFO, " TA%d fsmin = Default\n", count); + LOGP(DSIM2, LOGL_INFO, " TA%d fsmin = Default\n", count); break; case 1: case 2: case 3: - PDEBUG(DSIM2, DEBUG_INFO, " TA%d fsmin = %d MHz\n", count, c & 0xf); + LOGP(DSIM2, LOGL_INFO, " TA%d fsmin = %d MHz\n", count, c & 0xf); break; default: - PDEBUG(DSIM2, DEBUG_INFO, " TA%d fsmin = reserved\n", count); + LOGP(DSIM2, LOGL_INFO, " TA%d fsmin = reserved\n", count); break; } @@ -429,110 +429,110 @@ static void decode_tai(sim_sniffer_t *sim, uint8_t c, int count) case 1: case 2: case 3: - PDEBUG(DSIM2, DEBUG_INFO, " TA%d fsmax = reserved\n", count); + LOGP(DSIM2, LOGL_INFO, " TA%d fsmax = reserved\n", count); break; case 5: - PDEBUG(DSIM2, DEBUG_INFO, " TA%d fsmax = 5 MHz (Default)\n", count); + LOGP(DSIM2, LOGL_INFO, " TA%d fsmax = 5 MHz (Default)\n", count); break; default: - PDEBUG(DSIM2, DEBUG_INFO, " TA%d fsmax = %d MHz\n", count, c >> 4); + LOGP(DSIM2, LOGL_INFO, " TA%d fsmax = %d MHz\n", count, c >> 4); break; } } else { - PDEBUG(DSIM2, DEBUG_INFO, " TA%d Block Waiting Time = %d\n", count, c); + LOGP(DSIM2, LOGL_INFO, " TA%d Block Waiting Time = %d\n", count, c); } } static void decode_tb1(sim_sniffer_t __attribute__((unused)) *sim, uint8_t c, int count) { if ((c & 0x1f) == 0) - PDEBUG(DSIM2, DEBUG_INFO, " TB%d PI1=0: VPP not connected\n", count); + LOGP(DSIM2, LOGL_INFO, " TB%d PI1=0: VPP not connected\n", count); else if ((c & 0x1f) == 5) - PDEBUG(DSIM2, DEBUG_INFO, " TB%d PI1=5: VPP is 5 Volts (default)\n", count); + LOGP(DSIM2, LOGL_INFO, " TB%d PI1=5: VPP is 5 Volts (default)\n", count); else if ((c & 0x1f) >= 6 && (c & 0x1f) <= 25) - PDEBUG(DSIM2, DEBUG_INFO, " TB%d PI1=%d: VPP is %d Volts\n", count, c & 0x1f, (c & 0x1f) - 1); + LOGP(DSIM2, LOGL_INFO, " TB%d PI1=%d: VPP is %d Volts\n", count, c & 0x1f, (c & 0x1f) - 1); else - PDEBUG(DSIM2, DEBUG_INFO, " TB%d PI1=%d: not defined\n", count, c & 0x1f); - PDEBUG(DSIM2, DEBUG_INFO, " TB%d II = %d\n", count, (c >> 5) & 0x3); + LOGP(DSIM2, LOGL_INFO, " TB%d PI1=%d: not defined\n", count, c & 0x1f); + LOGP(DSIM2, LOGL_INFO, " TB%d II = %d\n", count, (c >> 5) & 0x3); } static void decode_tb2(sim_sniffer_t __attribute__((unused)) *sim, uint8_t c, int count) { - PDEBUG(DSIM2, DEBUG_INFO, " TB%d Value = 0x%02x\n", count, c); + LOGP(DSIM2, LOGL_INFO, " TB%d Value = 0x%02x\n", count, c); } static void decode_tbi(sim_sniffer_t *sim, uint8_t c, int count) { if ((sim->atr_td & 0xf) != 14) { - PDEBUG(DSIM2, DEBUG_INFO, " TB%d Value = 0x%02x\n", count, c); + LOGP(DSIM2, LOGL_INFO, " TB%d Value = 0x%02x\n", count, c); return; } if (count == 3) { - PDEBUG(DSIM2, DEBUG_INFO, " TB%d Maximum block size = %d\n", count, c); + LOGP(DSIM2, LOGL_INFO, " TB%d Maximum block size = %d\n", count, c); } else { if (!(c & 0x01)) - PDEBUG(DSIM2, DEBUG_INFO, " TB%d XOR Checksum\n", count); + LOGP(DSIM2, LOGL_INFO, " TB%d XOR Checksum\n", count); else - PDEBUG(DSIM2, DEBUG_INFO, " TB%d CRC Checksum\n", count); + LOGP(DSIM2, LOGL_INFO, " TB%d CRC Checksum\n", count); if (!(c & 0x02)) - PDEBUG(DSIM2, DEBUG_INFO, " TB%d 12-etu frame\n", count); + LOGP(DSIM2, LOGL_INFO, " TB%d 12-etu frame\n", count); else - PDEBUG(DSIM2, DEBUG_INFO, " TB%d 11-etu frame\n", count); + LOGP(DSIM2, LOGL_INFO, " TB%d 11-etu frame\n", count); if (!(c & 0x04)) - PDEBUG(DSIM2, DEBUG_INFO, " TB%d No Chaining in ICL-Layer-Protocol\n", count); + LOGP(DSIM2, LOGL_INFO, " TB%d No Chaining in ICL-Layer-Protocol\n", count); else - PDEBUG(DSIM2, DEBUG_INFO, " TB%d Chaining in ICL-Layer-Protocol\n", count); + LOGP(DSIM2, LOGL_INFO, " TB%d Chaining in ICL-Layer-Protocol\n", count); if (!(c & 0x08)) - PDEBUG(DSIM2, DEBUG_INFO, " TB%d Incompatible to ISO 7816 (Character Protocol)\n", count); + LOGP(DSIM2, LOGL_INFO, " TB%d Incompatible to ISO 7816 (Character Protocol)\n", count); else - PDEBUG(DSIM2, DEBUG_INFO, " TB%d Compatible to ISO 7816 (Character Protocol)\n", count); + LOGP(DSIM2, LOGL_INFO, " TB%d Compatible to ISO 7816 (Character Protocol)\n", count); if (!(c & 0x10)) - PDEBUG(DSIM2, DEBUG_INFO, " TB%d No private in ICL-Layer-Protocol\n", count); + LOGP(DSIM2, LOGL_INFO, " TB%d No private in ICL-Layer-Protocol\n", count); else - PDEBUG(DSIM2, DEBUG_INFO, " TB%d Private in ICL-Layer-Protocol\n", count); + LOGP(DSIM2, LOGL_INFO, " TB%d Private in ICL-Layer-Protocol\n", count); if (!(c & 0x20)) - PDEBUG(DSIM2, DEBUG_INFO, " TB%d No ICB-Extension in ICL-Layer-Protocol\n", count); + LOGP(DSIM2, LOGL_INFO, " TB%d No ICB-Extension in ICL-Layer-Protocol\n", count); else - PDEBUG(DSIM2, DEBUG_INFO, " TB%d ICB-Extension in ICL-Layer-Protocol\n", count); + LOGP(DSIM2, LOGL_INFO, " TB%d ICB-Extension in ICL-Layer-Protocol\n", count); } } static void decode_tc1(sim_sniffer_t __attribute__((unused)) *sim, uint8_t c, int count) { - PDEBUG(DSIM2, DEBUG_INFO, " TC%d N = %d\n", count, c); + LOGP(DSIM2, LOGL_INFO, " TC%d N = %d\n", count, c); } static void decode_tc2(sim_sniffer_t __attribute__((unused)) *sim, uint8_t c, int count) { - PDEBUG(DSIM2, DEBUG_INFO, " TC%d Value = 0x%02x\n", count, c); + LOGP(DSIM2, LOGL_INFO, " TC%d Value = 0x%02x\n", count, c); } static void decode_tci(sim_sniffer_t *sim, uint8_t c, int count) { if ((sim->atr_td & 0xf) != 14) { - PDEBUG(DSIM2, DEBUG_INFO, " TC%d Value = 0x%02x\n", count, c); + LOGP(DSIM2, LOGL_INFO, " TC%d Value = 0x%02x\n", count, c); return; } - PDEBUG(DSIM2, DEBUG_INFO, " TC%d Character Waiting Time = %d\n", count, c); + LOGP(DSIM2, LOGL_INFO, " TC%d Character Waiting Time = %d\n", count, c); } static void decode_td(sim_sniffer_t __attribute__((unused)) *sim, uint8_t c, int count) { switch (c & 0xf) { case 0: - PDEBUG(DSIM2, DEBUG_INFO, " TD%d T=1: Half-duplex transmission of characters (ISO 7816).\n", count); + LOGP(DSIM2, LOGL_INFO, " TD%d T=1: Half-duplex transmission of characters (ISO 7816).\n", count); break; case 1: - PDEBUG(DSIM2, DEBUG_INFO, " TD%d T=1: Half-duplex transmission of blocks (ISO 7816).\n", count); + LOGP(DSIM2, LOGL_INFO, " TD%d T=1: Half-duplex transmission of blocks (ISO 7816).\n", count); break; case 2: case 3: - PDEBUG(DSIM2, DEBUG_INFO, " TD%d T=%d: Reserved for future full-duplex operations.\n", count, c & 0xf); + LOGP(DSIM2, LOGL_INFO, " TD%d T=%d: Reserved for future full-duplex operations.\n", count, c & 0xf); break; case 4: - PDEBUG(DSIM2, DEBUG_INFO, " TD%d T=4: Reserved for an enhanced half-duplex transmission of characters.\n", count); + LOGP(DSIM2, LOGL_INFO, " TD%d T=4: Reserved for an enhanced half-duplex transmission of characters.\n", count); break; case 5: case 6: @@ -543,13 +543,13 @@ static void decode_td(sim_sniffer_t __attribute__((unused)) *sim, uint8_t c, int case 11: case 12: case 13: - PDEBUG(DSIM2, DEBUG_INFO, " TD%d T=%d: Reserved for future use by ISO/IEC JTC 1/SC 17.\n", count, c & 0xf); + LOGP(DSIM2, LOGL_INFO, " TD%d T=%d: Reserved for future use by ISO/IEC JTC 1/SC 17.\n", count, c & 0xf); break; case 14: - PDEBUG(DSIM2, DEBUG_INFO, " TD%d T=14: Refers to transmission protocols not standardized by ISO/IEC JTC 1/SC 17.\n", count); + LOGP(DSIM2, LOGL_INFO, " TD%d T=14: Refers to transmission protocols not standardized by ISO/IEC JTC 1/SC 17.\n", count); break; case 15: - PDEBUG(DSIM2, DEBUG_INFO, " TD%d T=15: Does not refer to a transmission protocol, but only qualifies global interface bytes.\n", count); + LOGP(DSIM2, LOGL_INFO, " TD%d T=15: Does not refer to a transmission protocol, but only qualifies global interface bytes.\n", count); break; } } @@ -589,26 +589,26 @@ static void decode_if(sim_sniffer_t *sim, int count) } if ((sim->atr_td >> 4)) - PDEBUG(DSIM2, DEBUG_INFO, "----------------------------------------\n"); + LOGP(DSIM2, LOGL_INFO, "----------------------------------------\n"); } static void decode_hist(sim_sniffer_t __attribute__((unused)) *sim, uint8_t c, int count) { - PDEBUG(DSIM2, DEBUG_INFO, " History byte #%d: 0x%02x\n", count, c); + LOGP(DSIM2, LOGL_INFO, " History byte #%d: 0x%02x\n", count, c); } static void rx_atr(sim_sniffer_t *sim, uint8_t c) { /* TS */ if (sim->atr_count == 0) { - PDEBUG(DSIM1, DEBUG_INFO, "----------------------------------------\n"); + LOGP(DSIM1, LOGL_INFO, "----------------------------------------\n"); switch (c) { case 0x3f: - PDEBUG(DSIM2, DEBUG_INFO, "Reading ATR inverse bit order:\n"); + LOGP(DSIM2, LOGL_INFO, "Reading ATR inverse bit order:\n"); sim->inverse_order = 1; break; case 0x3b: - PDEBUG(DSIM2, DEBUG_INFO, "Reading ATR normal bit order:\n"); + LOGP(DSIM2, LOGL_INFO, "Reading ATR normal bit order:\n"); sim->inverse_order = 0; break; default: @@ -689,14 +689,14 @@ static void rx_atr(sim_sniffer_t *sim, uint8_t c) } if (sim->atr_tck == 0) - PDEBUG(DSIM2, DEBUG_INFO, " Checksum 0x%02x ok.\n", c); + LOGP(DSIM2, LOGL_INFO, " Checksum 0x%02x ok.\n", c); else - PDEBUG(DSIM2, DEBUG_NOTICE, " Checksum 0x%02x error!\n", c); + LOGP(DSIM2, LOGL_NOTICE, " Checksum 0x%02x error!\n", c); sim->l1_state = L1_STATE_RECEIVE; sim->block_state = BLOCK_STATE_ADDRESS; - PDEBUG(DSIM2, DEBUG_INFO, "ATR done!\n"); + LOGP(DSIM2, LOGL_INFO, "ATR done!\n"); } static void rx_char(sim_sniffer_t *sim, uint8_t c) @@ -714,7 +714,7 @@ static void rx_char(sim_sniffer_t *sim, uint8_t c) sniffer_rx(sim, c); return; } - PDEBUG(DSIM1, DEBUG_INFO, "----------------------------------------\n"); + LOGP(DSIM1, LOGL_INFO, "----------------------------------------\n"); sim->block_address = c; sim->block_state = BLOCK_STATE_CONTROL; sim->block_checksum = c; @@ -733,17 +733,17 @@ static void rx_char(sim_sniffer_t *sim, uint8_t c) sim->block_data[sim->block_count++] = c; return; } - PDEBUG(DSIM2, DEBUG_INFO, "Layer 2:\n"); - PDEBUG(DSIM2, DEBUG_INFO, " source %d -> to %d\n", sim->block_address >> 4, sim->block_address & 0xf); + LOGP(DSIM2, LOGL_INFO, "Layer 2:\n"); + LOGP(DSIM2, LOGL_INFO, " source %d -> to %d\n", sim->block_address >> 4, sim->block_address & 0xf); if ((sim->block_control & 0x11) == 0x00) - PDEBUG(DSIM2, DEBUG_INFO, " control I: N(S)=%d N(R)=%d\n", (sim->block_control >> 1) & 7, sim->block_control >> 5); + LOGP(DSIM2, LOGL_INFO, " control I: N(S)=%d N(R)=%d\n", (sim->block_control >> 1) & 7, sim->block_control >> 5); else if ((sim->block_control & 0x1f) == 0x09) - PDEBUG(DSIM2, DEBUG_INFO, " control REJ: N(R)=%d\n", sim->block_control >> 5); + LOGP(DSIM2, LOGL_INFO, " control REJ: N(R)=%d\n", sim->block_control >> 5); else if (sim->block_control == 0xef) - PDEBUG(DSIM2, DEBUG_INFO, " control RES\n"); + LOGP(DSIM2, LOGL_INFO, " control RES\n"); else - PDEBUG(DSIM2, DEBUG_INFO, " control unknown 0x%02x\n", sim->block_control); - PDEBUG(DSIM2, DEBUG_INFO, " length %d\n", sim->block_length); + LOGP(DSIM2, LOGL_INFO, " control unknown 0x%02x\n", sim->block_control); + LOGP(DSIM2, LOGL_INFO, " length %d\n", sim->block_length); if (sim->block_checksum == 0) { FILE *fp; if (write_pdu_file && (fp = fopen(write_pdu_file, "a"))) { @@ -756,7 +756,7 @@ static void rx_char(sim_sniffer_t *sim, uint8_t c) } rx_icl_pdu(sim->block_data, sim->block_length); } else - PDEBUG(DSIM2, DEBUG_NOTICE, "Received message with checksum error!\n"); + LOGP(DSIM2, LOGL_NOTICE, "Received message with checksum error!\n"); sim->block_state = BLOCK_STATE_ADDRESS; } } @@ -764,12 +764,12 @@ static void rx_char(sim_sniffer_t *sim, uint8_t c) void sniffer_rx(sim_sniffer_t *sim, uint8_t c) { - PDEBUG(DSIM1, DEBUG_DEBUG, "Serial RX '0x%02x'\n", c); + LOGP(DSIM1, LOGL_DEBUG, "Serial RX '0x%02x'\n", c); switch (sim->l1_state) { case L1_STATE_RESET: if (c != 0x3f && c != 0x3b) { - PDEBUG(DSIM1, DEBUG_INFO, "Received garbage '0x%02x' while waiting for ATR\n", c); + LOGP(DSIM1, LOGL_INFO, "Received garbage '0x%02x' while waiting for ATR\n", c); break; } sim->l1_state = L1_STATE_ATR; @@ -792,13 +792,13 @@ void sniffer_timeout(sim_sniffer_t *sim) case L1_STATE_RESET: case L1_STATE_ATR: if (sim->l1_state == L1_STATE_ATR && sim->atr_count) - PDEBUG(DSIM1, DEBUG_NOTICE, "Timeout while receiving ATR!\n"); + LOGP(DSIM1, LOGL_NOTICE, "Timeout while receiving ATR!\n"); sim->l1_state = L1_STATE_ATR; sim->atr_count = 0; break; case L1_STATE_RECEIVE: if (sim->block_state != BLOCK_STATE_ADDRESS) - PDEBUG(DSIM1, DEBUG_NOTICE, "Timeout while receiving message!\n"); + LOGP(DSIM1, LOGL_NOTICE, "Timeout while receiving message!\n"); sim->block_state = BLOCK_STATE_ADDRESS; break; default: |