ensure USB config numbers always start from 1
Depending on which features (and thus USB configurations) are included
in the firmware, we need to re-define the ordering of the configuration
numbers, as the Atmel USBD driver simply assumes that configurations are
numbered 1..N without any gaps in the sequence.
diff --git a/firmware/src_simtrace/main.c b/firmware/src_simtrace/main.c
index 9686949..852b2f4 100644
--- a/firmware/src_simtrace/main.c
+++ b/firmware/src_simtrace/main.c
@@ -6,6 +6,7 @@
#define TRACE_LEVEL 5
#include "board.h"
+#include "simtrace.h"
#include "utils.h"
#include "req_ctx.h"
diff --git a/firmware/src_simtrace/mode_cardemu.c b/firmware/src_simtrace/mode_cardemu.c
index 96ecca6..3b0c3d2 100644
--- a/firmware/src_simtrace/mode_cardemu.c
+++ b/firmware/src_simtrace/mode_cardemu.c
@@ -1,4 +1,6 @@
#include "board.h"
+#include "simtrace.h"
+#include "ringbuffer.h"
#include "card_emu.h"
#include "iso7816_fidi.h"
#include "utils.h"
diff --git a/firmware/src_simtrace/simtrace.h b/firmware/src_simtrace/simtrace.h
index df5f01b..725ef41 100644
--- a/firmware/src_simtrace/simtrace.h
+++ b/firmware/src_simtrace/simtrace.h
@@ -2,6 +2,7 @@
#define SIMTRACE_H
#include "ringbuffer.h"
+#include "board.h"
/* Endpoint numbers */
#define DATAOUT 1
@@ -37,7 +38,20 @@
extern const Pin pinPhoneRST;
enum confNum {
- CFG_NUM_SNIFF = 1, CFG_NUM_CCID, CFG_NUM_PHONE, CFG_NUM_MITM, NUM_CONF
+ CFG_NUM_NONE = 0,
+#ifdef HAVE_SNIFFER
+ CFG_NUM_SNIFF,
+#endif
+#ifdef HAVE_CCID
+ CFG_NUM_CCID,
+#endif
+#ifdef HAVE_CARDEM
+ CFG_NUM_PHONE,
+#endif
+#ifdef HAVE_MITM
+ CFG_NUM_MITM,
+#endif
+ NUM_CONF
};
/// CCIDDriverConfiguration Descriptors
diff --git a/firmware/src_simtrace/simtrace_iso7816.c b/firmware/src_simtrace/simtrace_iso7816.c
index 0c4a096..c24ac0a 100644
--- a/firmware/src_simtrace/simtrace_iso7816.c
+++ b/firmware/src_simtrace/simtrace_iso7816.c
@@ -32,6 +32,8 @@
*------------------------------------------------------------------------------*/
#include "board.h"
+#include "simtrace.h"
+#include "ringbuffer.h"
#include "iso7816_fidi.h"
#include <string.h>
diff --git a/firmware/src_simtrace/usb.c b/firmware/src_simtrace/usb.c
index 6b57b1b..3d69780 100644
--- a/firmware/src_simtrace/usb.c
+++ b/firmware/src_simtrace/usb.c
@@ -32,6 +32,7 @@
*----------------------------------------------------------------------------*/
#include "board.h"
+#include "simtrace.h"
#include "utils.h"
#include <cciddriverdescriptors.h>