/*
 * SPDX-License-Identifier: MIT
 *
 * Copyright © 2019 Intel Corporation
 */

#ifndef IGT_LIVE_TEST_H
#define IGT_LIVE_TEST_H

#include "gt/intel_gt_defines.h" /* for I915_MAX_GT */
#include "gt/intel_engine.h" /* for I915_NUM_ENGINES */

struct drm_i915_private;

struct igt_live_test {
	struct drm_i915_private *i915;
	const char *func;
	const char *name;

	unsigned int reset_global;
	unsigned int reset_engine[I915_MAX_GT][I915_NUM_ENGINES];
};

/*
 * Flush the GPU state before and after the test to ensure that no residual
 * code is running on the GPU that may affect this test. Also compare the
 * state before and after the test and alert if it unexpectedly changes,
 * e.g. if the GPU was reset.
 */
int igt_live_test_begin(struct igt_live_test *t,
			struct drm_i915_private *i915,
			const char *func,
			const char *name);
int igt_live_test_end(struct igt_live_test *t);

#endif /* IGT_LIVE_TEST_H */
