xref: /openbsd-src/sys/dev/pci/drm/i915/gt/mock_engine.h (revision 5ca02815211fc20fa71222bf4e6148b043e505b3)
1*5ca02815Sjsg /* SPDX-License-Identifier: MIT */
2c349dbc7Sjsg /*
3c349dbc7Sjsg  * Copyright © 2016 Intel Corporation
4c349dbc7Sjsg  */
5c349dbc7Sjsg 
6c349dbc7Sjsg #ifndef __MOCK_ENGINE_H__
7c349dbc7Sjsg #define __MOCK_ENGINE_H__
8c349dbc7Sjsg 
9c349dbc7Sjsg #include <linux/list.h>
10c349dbc7Sjsg #include <linux/spinlock.h>
11c349dbc7Sjsg #include <linux/timer.h>
12c349dbc7Sjsg 
13c349dbc7Sjsg #include "gt/intel_engine.h"
14c349dbc7Sjsg 
15c349dbc7Sjsg struct mock_engine {
16c349dbc7Sjsg 	struct intel_engine_cs base;
17c349dbc7Sjsg 
18c349dbc7Sjsg 	spinlock_t hw_lock;
19c349dbc7Sjsg 	struct list_head hw_queue;
20c349dbc7Sjsg 	struct timer_list hw_delay;
21c349dbc7Sjsg };
22c349dbc7Sjsg 
23c349dbc7Sjsg struct intel_engine_cs *mock_engine(struct drm_i915_private *i915,
24c349dbc7Sjsg 				    const char *name,
25c349dbc7Sjsg 				    int id);
26c349dbc7Sjsg int mock_engine_init(struct intel_engine_cs *engine);
27c349dbc7Sjsg 
28c349dbc7Sjsg void mock_engine_flush(struct intel_engine_cs *engine);
29c349dbc7Sjsg void mock_engine_reset(struct intel_engine_cs *engine);
30c349dbc7Sjsg void mock_engine_free(struct intel_engine_cs *engine);
31c349dbc7Sjsg 
32c349dbc7Sjsg #endif /* !__MOCK_ENGINE_H__ */
33