1 | /* SPDX-License-Identifier: MIT */ |
---|---|
2 | /* |
3 | * Copyright © 2014-2018 Intel Corporation |
4 | */ |
5 | |
6 | #ifndef INTEL_GT_BUFFER_POOL_TYPES_H |
7 | #define INTEL_GT_BUFFER_POOL_TYPES_H |
8 | |
9 | #include <linux/list.h> |
10 | #include <linux/spinlock.h> |
11 | #include <linux/workqueue.h> |
12 | |
13 | #include "gem/i915_gem_object_types.h" |
14 | #include "i915_active_types.h" |
15 | |
16 | struct intel_gt_buffer_pool { |
17 | spinlock_t lock; |
18 | struct list_head cache_list[4]; |
19 | struct delayed_work work; |
20 | }; |
21 | |
22 | struct intel_gt_buffer_pool_node { |
23 | struct i915_active active; |
24 | struct drm_i915_gem_object *obj; |
25 | struct list_head link; |
26 | union { |
27 | struct intel_gt_buffer_pool *pool; |
28 | struct intel_gt_buffer_pool_node *free; |
29 | struct rcu_head rcu; |
30 | }; |
31 | unsigned long age; |
32 | enum i915_map_type type; |
33 | u32 pinned; |
34 | }; |
35 | |
36 | #endif /* INTEL_GT_BUFFER_POOL_TYPES_H */ |
37 |