XenevaOS
Loading...
Searching...
No Matches
drm_suballoc.h
Go to the documentation of this file.
1/* SPDX-License-Identifier: GPL-2.0 OR MIT */
2/*
3 * Copyright 2011 Red Hat Inc.
4 * Copyright © 2022 Intel Corporation
5 */
6#ifndef _DRM_SUBALLOC_H_
7#define _DRM_SUBALLOC_H_
8
9#include <drm/drm_mm.h>
10
11#include <linux/dma-fence.h>
12#include <linux/types.h>
13
14#define DRM_SUBALLOC_MAX_QUEUES 32
32
50
52 size_t size, size_t align);
53
55
57
59 struct drm_suballoc *sa, size_t size, bool intr,
60 size_t align);
61
62struct drm_suballoc *
63drm_suballoc_new(struct drm_suballoc_manager *sa_manager, size_t size,
64 gfp_t gfp, bool intr, size_t align);
65
67
74static inline size_t drm_suballoc_soffset(struct drm_suballoc *sa)
75{
76 return sa->soffset;
77}
78
85static inline size_t drm_suballoc_eoffset(struct drm_suballoc *sa)
86{
87 return sa->eoffset;
88}
89
96static inline size_t drm_suballoc_size(struct drm_suballoc *sa)
97{
98 return sa->eoffset - sa->soffset;
99}
100
101#ifdef CONFIG_DEBUG_FS
102void drm_suballoc_dump_debug_info(struct drm_suballoc_manager *sa_manager,
103 struct drm_printer *p,
104 unsigned long long suballoc_base);
105#else
106static inline void
107drm_suballoc_dump_debug_info(struct drm_suballoc_manager *sa_manager,
108 struct drm_printer *p,
109 unsigned long long suballoc_base)
110{ }
111
112#endif
113
114#endif /* _DRM_SUBALLOC_H_ */
size_t size
Definition drm_bridge.h:1299
void drm_suballoc_manager_init(struct drm_suballoc_manager *sa_manager, size_t size, size_t align)
int drm_suballoc_insert(struct drm_suballoc_manager *sa_manager, struct drm_suballoc *sa, size_t size, bool intr, size_t align)
struct drm_suballoc * drm_suballoc_new(struct drm_suballoc_manager *sa_manager, size_t size, gfp_t gfp, bool intr, size_t align)
struct drm_suballoc * drm_suballoc_alloc(gfp_t gfp)
void drm_suballoc_manager_fini(struct drm_suballoc_manager *sa_manager)
void drm_suballoc_free(struct drm_suballoc *sa, struct dma_fence *fence)
#define DRM_SUBALLOC_MAX_QUEUES
Definition drm_suballoc.h:14
unsigned int gfp_t
Definition kernel.h:56
Definition dma-fence.h:70
Definition drm_print.h:181
Definition drm_suballoc.h:24
struct list_head * hole
Definition drm_suballoc.h:26
size_t size
Definition drm_suballoc.h:29
struct list_head flist[DRM_SUBALLOC_MAX_QUEUES]
Definition drm_suballoc.h:28
wait_queue_head_t wq
Definition drm_suballoc.h:25
struct list_head olist
Definition drm_suballoc.h:27
size_t align
Definition drm_suballoc.h:30
Definition drm_suballoc.h:42
struct list_head olist
Definition drm_suballoc.h:43
struct drm_suballoc_manager * manager
Definition drm_suballoc.h:45
struct list_head flist
Definition drm_suballoc.h:44
struct dma_fence * fence
Definition drm_suballoc.h:48
size_t soffset
Definition drm_suballoc.h:46
size_t eoffset
Definition drm_suballoc.h:47
Definition list.h:11
Definition wait.h:75