162306a36Sopenharmony_ci/* SPDX-License-Identifier: MIT */
262306a36Sopenharmony_ci/*
362306a36Sopenharmony_ci * Copyright © 2016 Intel Corporation
462306a36Sopenharmony_ci */
562306a36Sopenharmony_ci
662306a36Sopenharmony_ci#ifndef __MOCK_ENGINE_H__
762306a36Sopenharmony_ci#define __MOCK_ENGINE_H__
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci#include <linux/list.h>
1062306a36Sopenharmony_ci#include <linux/spinlock.h>
1162306a36Sopenharmony_ci#include <linux/timer.h>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ci#include "gt/intel_engine.h"
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_cistruct mock_engine {
1662306a36Sopenharmony_ci	struct intel_engine_cs base;
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ci	spinlock_t hw_lock;
1962306a36Sopenharmony_ci	struct list_head hw_queue;
2062306a36Sopenharmony_ci	struct timer_list hw_delay;
2162306a36Sopenharmony_ci};
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_cistruct intel_engine_cs *mock_engine(struct drm_i915_private *i915,
2462306a36Sopenharmony_ci				    const char *name,
2562306a36Sopenharmony_ci				    int id);
2662306a36Sopenharmony_ciint mock_engine_init(struct intel_engine_cs *engine);
2762306a36Sopenharmony_ci
2862306a36Sopenharmony_civoid mock_engine_flush(struct intel_engine_cs *engine);
2962306a36Sopenharmony_civoid mock_engine_reset(struct intel_engine_cs *engine);
3062306a36Sopenharmony_civoid mock_engine_free(struct intel_engine_cs *engine);
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci#endif /* !__MOCK_ENGINE_H__ */
33