LTTCOMM_RELAYD_CONFIGURATION_FLAG_CLEAR_ALLOWED = (1 << 0),
};
+enum lttcomm_relayd_configuration_query_flag {
+ LTTCOMM_RELAYD_CONFIGURATION_QUERY_FLAG_SUPPORTED_TRACE_FORMAT = (1 << 0),
+ LTTCOMM_RELAYD_CONFIGURATION_QUERY_FLAG_MASK = 0x01
+};
+
+enum lttcomm_relayd_configuration_trace_format_flag {
+ LTTCOMM_RELAYD_CONFIGURATION_TRACE_FORMAT_SUPPORTED_CTF1 = (1 << 0),
+ LTTCOMM_RELAYD_CONFIGURATION_TRACE_FORMAT_SUPPORTED_CTF2 = (1 << 1)
+};
+
struct lttcomm_relayd_get_configuration {
uint64_t query_flags;
} LTTNG_PACKED;
+struct lttcomm_relayd_get_configuration_specialized_query_reply {
+ uint64_t query_flag; // Single flag, enum lttcomm_relayd_configuration_trace_format_flag
+ uint64_t payload_len;
+ /*
+ * Payload dependant on type
+ * LTTCOMM_RELAYD_CONFIGURATION_QUERY_FLAG_SUPPORTED_TRACE_FORMAT:
+ * uint64_t, bitfield of lttcomm_relayd_configuration_trace_format_flag.
+ */
+ char payload[];
+} LTTNG_PACKED;
/*
* Used to return a relay daemon's configuration in reply to the
* RELAYD_GET_CONFIGURATION command.
struct lttcomm_relayd_generic_reply generic;
/* Set of lttcomm_relayd_configuration_flag. */
uint64_t relayd_configuration_flags;
- /* Optional variable-length payload. */
+ /*
+ * Optional variable-length payload.
+ * When N query flags are used, it is expected that N dynamic sized
+ * lttcomm_relayd_get_configuration_specialized_query_reply be present.
+ */
char payload[];
} LTTNG_PACKED;