+/*
+ * bt_ctf_trace_get_environment_field_count: get environment field count.
+ *
+ * Get the trace's environment field count.
+ *
+ * @param trace Trace instance.
+ *
+ * Returns the environment field count, a negative value on error.
+ */
+extern int bt_ctf_trace_get_environment_field_count(
+ struct bt_ctf_trace *trace);
+
+/*
+ * bt_ctf_trace_get_environment_field_name: get environment field name.
+ *
+ * Get an environment field's name. The string's ownership is not
+ * transferred to the caller. The string data is valid as long as
+ * this trace's environment is not modified.
+ *
+ * @param trace Trace instance.
+ * @param index Index of the environment field.
+ *
+ * Returns the environment field's name, NULL on error.
+ */
+extern const char *
+bt_ctf_trace_get_environment_field_name(struct bt_ctf_trace *trace,
+ int index);
+
+/*
+ * bt_ctf_trace_get_environment_field_value: get environment
+ * field value (an object).
+ *
+ * Get an environment field's value (an object). The returned object's
+ * reference count is incremented. When done with the object, the caller
+ * must call bt_value_put() on it.
+ *
+ * @param trace Trace instance.
+ * @param index Index of the environment field.
+ *
+ * Returns the environment field's object value, NULL on error.
+ */
+extern struct bt_value *
+bt_ctf_trace_get_environment_field_value(struct bt_ctf_trace *trace,
+ int index);
+
+/*
+ * bt_ctf_trace_get_environment_field_value_by_name: get environment
+ * field value (an object) by name.
+ *
+ * Get an environment field's value (an object) by its field name. The
+ * returned object's reference count is incremented. When done with the
+ * object, the caller must call bt_value_put() on it.
+ *
+ * @param trace Trace instance.
+ * @param name Environment field's name
+ *
+ * Returns the environment field's object value, NULL on error.
+ */
+extern struct bt_value *
+bt_ctf_trace_get_environment_field_value_by_name(struct bt_ctf_trace *trace,
+ const char *name);
+