+/* Keep same order. */
+void lttng_remove_context_field_index(struct lttng_ctx **ctx_p, size_t index)
+{
+ struct lttng_ctx *ctx = *ctx_p;
+
+ WARN_ON_ONCE(ctx->nr_fields >= index);
+ if (index != ctx->nr_fields - 1) {
+ memmove(&ctx->fields[index], &ctx->fields[index + 1],
+ (ctx->nr_fields - index - 1) * sizeof(struct lttng_ctx_field));
+ }
+ /* Clear last item. */
+ memset(&ctx->fields[ctx->nr_fields - 1], 0, sizeof(struct lttng_ctx_field));
+ ctx->nr_fields--;
+}
+EXPORT_SYMBOL_GPL(lttng_remove_context_field_index);
+