/*
 * DO NOT EDIT.
 * Built from ../../include/pcp/{pmapi,deprecated}.h by mk_pmdbg.
 * Any modifications here will be lost.
 */

typedef struct {
    const char	*name;
    const int	bit;		/* old 32-bit mask value */
    int	* const options;	/* points to a new pmDebugOptions.xxx */
    int		state;		/* for internal use */
    const char	*text;		/* explanation */
} debug_map_t;

static debug_map_t debug_map[] = {
    { "pdu", DBG_TRACE_PDU, &pmDebugOptions.pdu, 0, "PDU traffic at the Xmit and Recv level" },
    { "fetch", DBG_TRACE_FETCH, &pmDebugOptions.fetch, 0, "Results from pmFetch" },
    { "profile", DBG_TRACE_PROFILE, &pmDebugOptions.profile, 0, "Changes and xmits for instance profile" },
    { "value", DBG_TRACE_VALUE, &pmDebugOptions.value, 0, "Metric value extraction and conversion" },
    { "context", DBG_TRACE_CONTEXT, &pmDebugOptions.context, 0, "Changes to PMAPI contexts" },
    { "indom", DBG_TRACE_INDOM, &pmDebugOptions.indom, 0, "Instance domain operations" },
    { "pdubuf", DBG_TRACE_PDUBUF, &pmDebugOptions.pdubuf, 0, "PDU buffer operations" },
    { "log", DBG_TRACE_LOG, &pmDebugOptions.log, 0, "Archive manipulations" },
    { "logmeta", DBG_TRACE_LOGMETA, &pmDebugOptions.logmeta, 0, "Archive metadata operations" },
    { "optfetch", DBG_TRACE_OPTFETCH, &pmDebugOptions.optfetch, 0, "optFetch magic" },
    { "af", DBG_TRACE_AF, &pmDebugOptions.af, 0, "Asynchronous event scheduling" },
    { "appl0", DBG_TRACE_APPL0, &pmDebugOptions.appl0, 0, "Application-specific flag 0" },
    { "appl1", DBG_TRACE_APPL1, &pmDebugOptions.appl1, 0, "Application-specific flag 1" },
    { "appl2", DBG_TRACE_APPL2, &pmDebugOptions.appl2, 0, "Application-specific flag 2" },
    { "pmns", DBG_TRACE_PMNS, &pmDebugOptions.pmns, 0, "PMNS operations" },
    { "libpmda", DBG_TRACE_LIBPMDA, &pmDebugOptions.libpmda, 0, "PMDA operations in libpcp_pmda" },
    { "timecontrol", DBG_TRACE_TIMECONTROL, &pmDebugOptions.timecontrol, 0, "Time control API" },
    { "pmc", DBG_TRACE_PMC, &pmDebugOptions.pmc, 0, "Metrics class operations" },
    { "derive", DBG_TRACE_DERIVE, &pmDebugOptions.derive, 0, "Derived metrics functionality" },
    { "lock", DBG_TRACE_LOCK, &pmDebugOptions.lock, 0, "Synchronization and lock tracing" },
    { "interp", DBG_TRACE_INTERP, &pmDebugOptions.interp, 0, "Interpolate mode for archives" },
    { "config", DBG_TRACE_CONFIG, &pmDebugOptions.config, 0, "Configuration parameters" },
    { "pmapi", DBG_TRACE_PMAPI, &pmDebugOptions.pmapi, 0, "PMAPI call tracing" },
    { "fault", DBG_TRACE_FAULT, &pmDebugOptions.fault, 0, "Fault injection tracing" },
    { "auth", DBG_TRACE_AUTH, &pmDebugOptions.auth, 0, "Authentication tracing" },
    { "discovery", DBG_TRACE_DISCOVERY, &pmDebugOptions.discovery, 0, "Service discovery tracing" },
    { "attr", DBG_TRACE_ATTR, &pmDebugOptions.attr, 0, "Connection attribute handling" },
    { "http", DBG_TRACE_HTTP, &pmDebugOptions.http, 0, "Trace HTTP operations in libpcp_web" },
    { "desperate", DBG_TRACE_DESPERATE, &pmDebugOptions.desperate, 0, "Verbose/Desperate level (developers only)" },
/* new debug options with no DBG_TRACE_xxx equivalent */
    { "deprecated", 0, &pmDebugOptions.deprecated, 0, "Report use of deprecated services" },
    { "exec", 0, &pmDebugOptions.exec, 0, "__pmProcessExec and related calls" },
    { "labels", 0, &pmDebugOptions.labels, 0, "Metric label metadata operations" },
    { "series", 0, &pmDebugOptions.series, 0, "Time series tracing" },
    { "libweb", 0, &pmDebugOptions.libweb, 0, "Trace services from libpcp_web" },
    { "alloc", 0, &pmDebugOptions.alloc, 0, "Miscellaneous alloc/free operations" },
    { "services", 0, &pmDebugOptions.services, 0, "Services and daemons" },
    { "appl3", 0, &pmDebugOptions.appl3, 0, "Application-specific flag 3" },
    { "appl4", 0, &pmDebugOptions.appl4, 0, "Application-specific flag 4" },
    { "appl5", 0, &pmDebugOptions.appl5, 0, "Application-specific flag 5" },
    { "access", 0, &pmDebugOptions.access, 0, "Access controls" },
    { "qa", 0, &pmDebugOptions.qa, 0, "QA (transient, developers only)" },
    { "search", 0, &pmDebugOptions.search, 0, "Text search tracing" },
    { "query", 0, &pmDebugOptions.query, 0, "libpcp_web query parsing and evaluation" },
    { "compress", 0, &pmDebugOptions.compress, 0, "Archive compress/decompress operations" },
    { "dev0", 0, &pmDebugOptions.dev0, 0, "Developer flag 0" },
    { "dev1", 0, &pmDebugOptions.dev1, 0, "Developer flag 1" },
    { "dev2", 0, &pmDebugOptions.dev2, 0, "Developer flag 2" },
    { "pmlc", 0, &pmDebugOptions.pmlc, 0, "Protocol between pmlc and pmlogger" },
    { "appl6", 0, &pmDebugOptions.appl6, 0, "Application-specific flag 6" },
    { "appl7", 0, &pmDebugOptions.appl7, 0, "Application-specific flag 7" },
    { "appl8", 0, &pmDebugOptions.appl8, 0, "Application-specific flag 8" },
    { "appl9", 0, &pmDebugOptions.appl9, 0, "Application-specific flag 9" },
    { "tls", 0, &pmDebugOptions.tls, 0, "Transport Layer Security operations" },
    { "misc", 0, &pmDebugOptions.misc, 0, "Miscellaneous odds and sods" },
    { "qed", 0, &pmDebugOptions.qed, 0, "Methods in libpcp_qed" },
};

static const int num_debug = sizeof(debug_map) / sizeof(debug_map[0]);
