- /* Writing pid number
- * Special case for element all on track untrack command
- * All pid is represented as wildcard *
- */
- if ((int) pid == -1) {
- ret = mi_lttng_writer_write_element_string(writer,
- config_element_pid,
- mi_lttng_element_track_untrack_all_wildcard);
- } else {
- ret = mi_lttng_writer_write_element_signed_int(writer,
- config_element_pid, (int) pid);
- }
- if (ret) {
+ switch (lttng_tracker_id_get_type(id)) {
+ case LTTNG_ID_ALL:
+ ret = mi_lttng_writer_open_element(writer, element_target_id);
+ if (ret) {
+ goto end;
+ }
+ ret = mi_lttng_writer_open_element(writer, config_element_type);
+ if (ret) {
+ goto end;
+ }
+ ret = mi_lttng_writer_write_element_bool(
+ writer, config_element_all, 1);
+ if (ret) {
+ goto end;
+ }
+ ret = mi_lttng_writer_close_element(writer);
+ if (ret) {
+ goto end;
+ }
+ break;
+ case LTTNG_ID_VALUE:
+ ret = mi_lttng_writer_open_element(writer, element_target_id);
+ if (ret) {
+ goto end;
+ }
+ ret = mi_lttng_writer_open_element(writer, config_element_type);
+ if (ret) {
+ goto end;
+ }
+
+ status = lttng_tracker_id_get_value(id, &value);
+ if (status != LTTNG_TRACKER_ID_STATUS_OK) {
+ ret = -1;
+ goto end;
+ }
+
+ ret = mi_lttng_writer_write_element_signed_int(
+ writer, config_element_id, value);
+ if (ret) {
+ goto end;
+ }
+ ret = mi_lttng_writer_close_element(writer);
+ if (ret) {
+ goto end;
+ }
+ break;
+ case LTTNG_ID_STRING:
+ ret = mi_lttng_writer_open_element(writer, element_target_id);
+ if (ret) {
+ goto end;
+ }
+ ret = mi_lttng_writer_open_element(writer, config_element_type);
+ if (ret) {
+ goto end;
+ }
+
+ status = lttng_tracker_id_get_string(id, &string);
+ if (status != LTTNG_TRACKER_ID_STATUS_OK) {
+ ret = -1;
+ goto end;
+ }
+
+ ret = mi_lttng_writer_write_element_string(
+ writer, config_element_name, string);
+ if (ret) {
+ goto end;
+ }
+ ret = mi_lttng_writer_close_element(writer);
+ if (ret) {
+ goto end;
+ }
+ break;
+ case LTTNG_ID_UNKNOWN:
+ ret = -LTTNG_ERR_INVALID;