+
+/* NOTE: do not change these state names. They're documented,
+ * and we rely on them to match SVF input (except for "RUN/IDLE").
+ */
+static const struct name_mapping {
+ enum tap_state symbol;
+ const char *name;
+} tap_name_mapping[] = {
+ { TAP_RESET, "RESET", },
+ { TAP_IDLE, "RUN/IDLE", },
+ { TAP_DRSELECT, "DRSELECT", },
+ { TAP_DRCAPTURE,"DRCAPTURE", },
+ { TAP_DRSHIFT, "DRSHIFT", },
+ { TAP_DREXIT1, "DREXIT1", },
+ { TAP_DRPAUSE, "DRPAUSE", },
+ { TAP_DREXIT2, "DREXIT2", },
+ { TAP_DRUPDATE, "DRUPDATE", },
+ { TAP_IRSELECT, "IRSELECT", },
+ { TAP_IRCAPTURE,"IRCAPTURE", },
+ { TAP_IRSHIFT, "IRSHIFT", },
+ { TAP_IREXIT1, "IREXIT1", },
+ { TAP_IRPAUSE, "IRPAUSE", },
+ { TAP_IREXIT2, "IREXIT2", },
+ { TAP_IRUPDATE, "IRUPDATE", },
+
+ /* only for input: accept standard SVF name */
+ { TAP_IDLE, "IDLE", },
+};
+
+const char *tap_state_name(tap_state_t state)