+static inline
+const char *state_string(enum state state)
+{
+ switch (state) {
+ case STATE_INIT:
+ return "STATE_INIT";
+ case STATE_DSCOPE_TRACE_PACKET_HEADER_BEGIN:
+ return "STATE_DSCOPE_TRACE_PACKET_HEADER_BEGIN";
+ case STATE_DSCOPE_TRACE_PACKET_HEADER_CONTINUE:
+ return "STATE_DSCOPE_TRACE_PACKET_HEADER_CONTINUE";
+ case STATE_AFTER_TRACE_PACKET_HEADER:
+ return "STATE_AFTER_TRACE_PACKET_HEADER";
+ case STATE_DSCOPE_STREAM_PACKET_CONTEXT_BEGIN:
+ return "STATE_DSCOPE_STREAM_PACKET_CONTEXT_BEGIN";
+ case STATE_DSCOPE_STREAM_PACKET_CONTEXT_CONTINUE:
+ return "STATE_DSCOPE_STREAM_PACKET_CONTEXT_CONTINUE";
+ case STATE_AFTER_STREAM_PACKET_CONTEXT:
+ return "STATE_AFTER_STREAM_PACKET_CONTEXT";
+ case STATE_EMIT_NOTIF_NEW_PACKET:
+ return "STATE_EMIT_NOTIF_NEW_PACKET";
+ case STATE_DSCOPE_STREAM_EVENT_HEADER_BEGIN:
+ return "STATE_DSCOPE_STREAM_EVENT_HEADER_BEGIN";
+ case STATE_DSCOPE_STREAM_EVENT_HEADER_CONTINUE:
+ return "STATE_DSCOPE_STREAM_EVENT_HEADER_CONTINUE";
+ case STATE_AFTER_STREAM_EVENT_HEADER:
+ return "STATE_AFTER_STREAM_EVENT_HEADER";
+ case STATE_DSCOPE_STREAM_EVENT_CONTEXT_BEGIN:
+ return "STATE_DSCOPE_STREAM_EVENT_CONTEXT_BEGIN";
+ case STATE_DSCOPE_STREAM_EVENT_CONTEXT_CONTINUE:
+ return "STATE_DSCOPE_STREAM_EVENT_CONTEXT_CONTINUE";
+ case STATE_DSCOPE_EVENT_CONTEXT_BEGIN:
+ return "STATE_DSCOPE_EVENT_CONTEXT_BEGIN";
+ case STATE_DSCOPE_EVENT_CONTEXT_CONTINUE:
+ return "STATE_DSCOPE_EVENT_CONTEXT_CONTINUE";
+ case STATE_DSCOPE_EVENT_PAYLOAD_BEGIN:
+ return "STATE_DSCOPE_EVENT_PAYLOAD_BEGIN";
+ case STATE_DSCOPE_EVENT_PAYLOAD_CONTINUE:
+ return "STATE_DSCOPE_EVENT_PAYLOAD_CONTINUE";
+ case STATE_EMIT_NOTIF_EVENT:
+ return "STATE_EMIT_NOTIF_EVENT";
+ case STATE_EMIT_NOTIF_END_OF_PACKET:
+ return "STATE_EMIT_NOTIF_END_OF_PACKET";
+ case STATE_SKIP_PACKET_PADDING:
+ return "STATE_SKIP_PACKET_PADDING";
+ default:
+ return "(unknown)";
+ }
+}
+