Loading...
Note: File does not exist in v3.1.
1/* SPDX-License-Identifier: GPL-2.0 OR MIT */
2
3#ifndef _TTM_RANGE_MANAGER_H_
4#define _TTM_RANGE_MANAGER_H_
5
6#include <drm/ttm/ttm_resource.h>
7#include <drm/drm_mm.h>
8
9/**
10 * struct ttm_range_mgr_node
11 *
12 * @base: base clase we extend
13 * @mm_nodes: MM nodes, usually 1
14 *
15 * Extending the ttm_resource object to manage an address space allocation with
16 * one or more drm_mm_nodes.
17 */
18struct ttm_range_mgr_node {
19 struct ttm_resource base;
20 struct drm_mm_node mm_nodes[];
21};
22
23/**
24 * to_ttm_range_mgr_node
25 *
26 * @res: the resource to upcast
27 *
28 * Upcast the ttm_resource object into a ttm_range_mgr_node object.
29 */
30static inline struct ttm_range_mgr_node *
31to_ttm_range_mgr_node(struct ttm_resource *res)
32{
33 return container_of(res, struct ttm_range_mgr_node, base);
34}
35
36int ttm_range_man_init(struct ttm_device *bdev,
37 unsigned type, bool use_tt,
38 unsigned long p_size);
39int ttm_range_man_fini(struct ttm_device *bdev,
40 unsigned type);
41
42#endif