+static int mi_partial_session(const char *session_name)
+{
+ int ret;
+ assert(writer);
+ assert(session_name);
+
+ /* Open session element */
+ ret = mi_lttng_writer_open_element(writer, config_element_session);
+ if (ret) {
+ goto end;
+ }
+
+ ret = mi_lttng_writer_write_element_string(writer, config_element_name,
+ session_name);
+ if (ret) {
+ goto end;
+ }
+
+ /* Closing session element */
+ ret = mi_lttng_writer_close_element(writer);
+end:
+ return ret;
+}
+
+/*
+ * Mi print of load command
+ */
+static int mi_load_print(const char *session_name)
+{
+ int ret;
+ assert(writer);
+
+ if (opt_load_all) {
+ /* We use a wildcard to represent all sessions */
+ session_name = "*";
+ }
+
+ /* Print load element */
+ ret = mi_lttng_writer_open_element(writer, mi_lttng_element_load);
+ if (ret) {
+ goto end;
+ }
+
+ /* Print session element */
+ ret = mi_partial_session(session_name);
+ if (ret) {
+ goto end;
+ }
+
+ /* Path element */
+ if (opt_input_path) {
+ ret = mi_lttng_writer_write_element_string(writer, config_element_path,
+ opt_input_path);
+ if (ret) {
+ goto end;
+ }
+ }
+
+ /* Close load element */
+ ret = mi_lttng_writer_close_element(writer);
+
+end:
+ return ret;
+}
+