Kévin Redon has uploaded this change for review. ( 
https://gerrit.osmocom.org/10211


Change subject: sniff: ensure the checksum error flag is also printed
......................................................................

sniff: ensure the checksum error flag is also printed

the firmware now also use a generic value_string array (as does the
host application)

Change-Id: I861bd8b52e8f2f2a4786bbe1cc834917119dc394
---
M firmware/libcommon/source/sniffer.c
M host/simtrace2-sniff.c
2 files changed, 36 insertions(+), 18 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/simtrace2 refs/changes/11/10211/1

diff --git a/firmware/libcommon/source/sniffer.c 
b/firmware/libcommon/source/sniffer.c
index e800216..5cf96fd 100644
--- a/firmware/libcommon/source/sniffer.c
+++ b/firmware/libcommon/source/sniffer.c
@@ -302,6 +302,38 @@
        //TRACE_INFO("Changed to ISO 7816-3 state %u\n\r", iso_state); /* don't 
print since this is function is also called by ISRs */
 }

+const struct value_string data_flags[] = {
+       {
+               .value = SNIFF_DATA_FLAG_ERROR_INCOMPLETE,
+               .str = "incomplete",
+       },
+       {
+               .value = SNIFF_DATA_FLAG_ERROR_MALFORMED,
+               .str = "malformed",
+       },
+       {
+               .value = SNIFF_DATA_FLAG_ERROR_CHECKSUM,
+               .str = "checksum error",
+       },
+       {
+               .value = 0,
+               .str = NULL,
+       },
+};
+
+static void print_flags(const struct value_string* flag_meanings, uint32_t 
nb_flags, uint32_t flags) {
+       uint32_t i;
+       for (i = 0; i < nb_flags; i++) {
+               if (flags & flag_meanings[i].value) {
+                       printf(flag_meanings[i].str);
+                       flags &= ~flag_meanings[i].value;
+                       if (flags) {
+                               printf(", ");
+                       }
+               }
+       }
+}
+
 static void usb_send_data(enum simtrace_msg_type_sniff type, const uint8_t* 
data, uint16_t length, uint32_t flags)
 {
        /* Sanity check */
@@ -329,20 +361,7 @@
        }
        if (flags) {
                printf(" (");
-               if (flags & SNIFF_DATA_FLAG_ERROR_INCOMPLETE) {
-                       printf("incomplete");
-                       flags &= ~SNIFF_DATA_FLAG_ERROR_INCOMPLETE;
-                       if (flags) {
-                               printf(", ");
-                       }
-               }
-               if (flags & SNIFF_DATA_FLAG_ERROR_MALFORMED) {
-                       printf("malformed");
-                       flags &= ~SNIFF_DATA_FLAG_ERROR_MALFORMED;
-                       if (flags) {
-                               printf(", ");
-                       }
-               }
+               print_flags(data_flags, ARRAY_SIZE(data_flags), flags);
                putchar(')');
        }
        printf(": ");
diff --git a/host/simtrace2-sniff.c b/host/simtrace2-sniff.c
index aeacc6b..4ba43f4 100644
--- a/host/simtrace2-sniff.c
+++ b/host/simtrace2-sniff.c
@@ -131,14 +131,13 @@
                .value = SNIFF_DATA_FLAG_ERROR_MALFORMED,
                .str = "malformed",
        },
+               .value = SNIFF_DATA_FLAG_ERROR_CHECKSUM,
+               .str = "checksum error",
+       },
        {
                .value = 0,
                .str = NULL,
        },
-       {
-               .value = SNIFF_DATA_FLAG_ERROR_CHECKSUM,
-               .str = "checksum error",
-       },
 };

 static void print_flags(const struct value_string* flag_meanings, uint32_t 
nb_flags, uint32_t flags) {

--
To view, visit https://gerrit.osmocom.org/10211
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: simtrace2
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I861bd8b52e8f2f2a4786bbe1cc834917119dc394
Gerrit-Change-Number: 10211
Gerrit-PatchSet: 1
Gerrit-Owner: Kévin Redon <[email protected]>

Reply via email to