xref: /linux/rust/helpers/drm.c (revision 40286d6379aacfcc053253ef78dc78b09addffda)
1 // SPDX-License-Identifier: GPL-2.0
2 
3 #include <drm/drm_gem.h>
4 #include <drm/drm_gem_shmem_helper.h>
5 #include <drm/drm_vma_manager.h>
6 
7 #ifdef CONFIG_DRM
8 
9 __rust_helper void rust_helper_drm_gem_object_get(struct drm_gem_object *obj)
10 {
11 	drm_gem_object_get(obj);
12 }
13 
14 __rust_helper void rust_helper_drm_gem_object_put(struct drm_gem_object *obj)
15 {
16 	drm_gem_object_put(obj);
17 }
18 
19 __rust_helper __u64
20 rust_helper_drm_vma_node_offset_addr(struct drm_vma_offset_node *node)
21 {
22 	return drm_vma_node_offset_addr(node);
23 }
24 
25 #ifdef CONFIG_DRM_GEM_SHMEM_HELPER
26 __rust_helper void
27 rust_helper_drm_gem_shmem_object_free(struct drm_gem_object *obj)
28 {
29 	return drm_gem_shmem_object_free(obj);
30 }
31 
32 __rust_helper void
33 rust_helper_drm_gem_shmem_object_print_info(struct drm_printer *p, unsigned int indent,
34 					    const struct drm_gem_object *obj)
35 {
36 	drm_gem_shmem_object_print_info(p, indent, obj);
37 }
38 
39 __rust_helper int
40 rust_helper_drm_gem_shmem_object_pin(struct drm_gem_object *obj)
41 {
42 	return drm_gem_shmem_object_pin(obj);
43 }
44 
45 __rust_helper void
46 rust_helper_drm_gem_shmem_object_unpin(struct drm_gem_object *obj)
47 {
48 	drm_gem_shmem_object_unpin(obj);
49 }
50 
51 __rust_helper struct sg_table *
52 rust_helper_drm_gem_shmem_object_get_sg_table(struct drm_gem_object *obj)
53 {
54 	return drm_gem_shmem_object_get_sg_table(obj);
55 }
56 
57 __rust_helper int
58 rust_helper_drm_gem_shmem_object_vmap(struct drm_gem_object *obj,
59 				      struct iosys_map *map)
60 {
61 	return drm_gem_shmem_object_vmap(obj, map);
62 }
63 
64 __rust_helper void
65 rust_helper_drm_gem_shmem_object_vunmap(struct drm_gem_object *obj,
66 					struct iosys_map *map)
67 {
68 	drm_gem_shmem_object_vunmap(obj, map);
69 }
70 
71 __rust_helper int
72 rust_helper_drm_gem_shmem_object_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma)
73 {
74 	return drm_gem_shmem_object_mmap(obj, vma);
75 }
76 
77 #endif /* CONFIG_DRM_GEM_SHMEM_HELPER */
78 #endif /* CONFIG_DRM */
79