~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/include/drm/drm_prime.h

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /include/drm/drm_prime.h (Version linux-6.12-rc7) and /include/drm/drm_prime.h (Version linux-5.17.15)


  1 /*                                                  1 /*
  2  * Copyright © 2012 Red Hat                        2  * Copyright © 2012 Red Hat
  3  * Copyright 1999 Precision Insight, Inc., Ced      3  * Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
  4  * Copyright 2000 VA Linux Systems, Inc., Sunn      4  * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
  5  * Copyright (c) 2009-2010, Code Aurora Forum.      5  * Copyright (c) 2009-2010, Code Aurora Forum.
  6  *                                                  6  *
  7  * Permission is hereby granted, free of charg      7  * Permission is hereby granted, free of charge, to any person obtaining a
  8  * copy of this software and associated docume      8  * copy of this software and associated documentation files (the "Software"),
  9  * to deal in the Software without restriction      9  * to deal in the Software without restriction, including without limitation
 10  * the rights to use, copy, modify, merge, pub     10  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
 11  * and/or sell copies of the Software, and to      11  * and/or sell copies of the Software, and to permit persons to whom the
 12  * Software is furnished to do so, subject to      12  * Software is furnished to do so, subject to the following conditions:
 13  *                                                 13  *
 14  * The above copyright notice and this permiss     14  * The above copyright notice and this permission notice (including the next
 15  * paragraph) shall be included in all copies      15  * paragraph) shall be included in all copies or substantial portions of the
 16  * Software.                                       16  * Software.
 17  *                                                 17  *
 18  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT W     18  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 19  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE W     19  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 20  * FITNESS FOR A PARTICULAR PURPOSE AND NONINF     20  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
 21  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE      21  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 22  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT     22  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 23  * FROM, OUT OF OR IN CONNECTION WITH THE SOFT     23  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
 24  * IN THE SOFTWARE.                                24  * IN THE SOFTWARE.
 25  *                                                 25  *
 26  * Authors:                                        26  * Authors:
 27  *      Dave Airlie <airlied@redhat.com>           27  *      Dave Airlie <airlied@redhat.com>
 28  *      Rob Clark <rob.clark@linaro.org>           28  *      Rob Clark <rob.clark@linaro.org>
 29  *                                                 29  *
 30  */                                                30  */
 31                                                    31 
 32 #ifndef __DRM_PRIME_H__                            32 #ifndef __DRM_PRIME_H__
 33 #define __DRM_PRIME_H__                            33 #define __DRM_PRIME_H__
 34                                                    34 
 35 #include <linux/mutex.h>                           35 #include <linux/mutex.h>
 36 #include <linux/rbtree.h>                          36 #include <linux/rbtree.h>
 37 #include <linux/scatterlist.h>                     37 #include <linux/scatterlist.h>
 38                                                    38 
 39 /**                                                39 /**
 40  * struct drm_prime_file_private - per-file tr     40  * struct drm_prime_file_private - per-file tracking for PRIME
 41  *                                                 41  *
 42  * This just contains the internal &struct dma     42  * This just contains the internal &struct dma_buf and handle caches for each
 43  * &struct drm_file used by the PRIME core cod     43  * &struct drm_file used by the PRIME core code.
 44  */                                                44  */
 45 struct drm_prime_file_private {                    45 struct drm_prime_file_private {
 46 /* private: */                                     46 /* private: */
 47         struct mutex lock;                         47         struct mutex lock;
 48         struct rb_root dmabufs;                    48         struct rb_root dmabufs;
 49         struct rb_root handles;                    49         struct rb_root handles;
 50 };                                                 50 };
 51                                                    51 
 52 struct device;                                     52 struct device;
 53                                                    53 
 54 struct dma_buf_export_info;                        54 struct dma_buf_export_info;
 55 struct dma_buf;                                    55 struct dma_buf;
 56 struct dma_buf_attachment;                         56 struct dma_buf_attachment;
 57 struct iosys_map;                              !!  57 struct dma_buf_map;
 58                                                    58 
 59 enum dma_data_direction;                           59 enum dma_data_direction;
 60                                                    60 
 61 struct drm_device;                                 61 struct drm_device;
 62 struct drm_gem_object;                             62 struct drm_gem_object;
 63 struct drm_file;                                   63 struct drm_file;
 64                                                    64 
 65 /* core prime functions */                         65 /* core prime functions */
 66 struct dma_buf *drm_gem_dmabuf_export(struct d     66 struct dma_buf *drm_gem_dmabuf_export(struct drm_device *dev,
 67                                       struct d     67                                       struct dma_buf_export_info *exp_info);
 68 void drm_gem_dmabuf_release(struct dma_buf *dm     68 void drm_gem_dmabuf_release(struct dma_buf *dma_buf);
 69                                                    69 
 70 int drm_gem_prime_fd_to_handle(struct drm_devi     70 int drm_gem_prime_fd_to_handle(struct drm_device *dev,
 71                                struct drm_file     71                                struct drm_file *file_priv, int prime_fd, uint32_t *handle);
 72 struct dma_buf *drm_gem_prime_handle_to_dmabuf << 
 73                                struct drm_file << 
 74                                uint32_t flags) << 
 75 int drm_gem_prime_handle_to_fd(struct drm_devi     72 int drm_gem_prime_handle_to_fd(struct drm_device *dev,
 76                                struct drm_file     73                                struct drm_file *file_priv, uint32_t handle, uint32_t flags,
 77                                int *prime_fd);     74                                int *prime_fd);
 78                                                    75 
 79 /* helper functions for exporting */               76 /* helper functions for exporting */
 80 int drm_gem_map_attach(struct dma_buf *dma_buf     77 int drm_gem_map_attach(struct dma_buf *dma_buf,
 81                        struct dma_buf_attachme     78                        struct dma_buf_attachment *attach);
 82 void drm_gem_map_detach(struct dma_buf *dma_bu     79 void drm_gem_map_detach(struct dma_buf *dma_buf,
 83                         struct dma_buf_attachm     80                         struct dma_buf_attachment *attach);
 84 struct sg_table *drm_gem_map_dma_buf(struct dm     81 struct sg_table *drm_gem_map_dma_buf(struct dma_buf_attachment *attach,
 85                                      enum dma_     82                                      enum dma_data_direction dir);
 86 void drm_gem_unmap_dma_buf(struct dma_buf_atta     83 void drm_gem_unmap_dma_buf(struct dma_buf_attachment *attach,
 87                            struct sg_table *sg     84                            struct sg_table *sgt,
 88                            enum dma_data_direc     85                            enum dma_data_direction dir);
 89 int drm_gem_dmabuf_vmap(struct dma_buf *dma_bu !!  86 int drm_gem_dmabuf_vmap(struct dma_buf *dma_buf, struct dma_buf_map *map);
 90 void drm_gem_dmabuf_vunmap(struct dma_buf *dma !!  87 void drm_gem_dmabuf_vunmap(struct dma_buf *dma_buf, struct dma_buf_map *map);
 91                                                    88 
 92 int drm_gem_prime_mmap(struct drm_gem_object *     89 int drm_gem_prime_mmap(struct drm_gem_object *obj, struct vm_area_struct *vma);
 93 int drm_gem_dmabuf_mmap(struct dma_buf *dma_bu     90 int drm_gem_dmabuf_mmap(struct dma_buf *dma_buf, struct vm_area_struct *vma);
 94                                                    91 
 95 struct sg_table *drm_prime_pages_to_sg(struct      92 struct sg_table *drm_prime_pages_to_sg(struct drm_device *dev,
 96                                        struct      93                                        struct page **pages, unsigned int nr_pages);
 97 struct dma_buf *drm_gem_prime_export(struct dr     94 struct dma_buf *drm_gem_prime_export(struct drm_gem_object *obj,
 98                                      int flags     95                                      int flags);
 99                                                    96 
100 unsigned long drm_prime_get_contiguous_size(st     97 unsigned long drm_prime_get_contiguous_size(struct sg_table *sgt);
101                                                    98 
102 /* helper functions for importing */               99 /* helper functions for importing */
103 struct drm_gem_object *drm_gem_prime_import_de    100 struct drm_gem_object *drm_gem_prime_import_dev(struct drm_device *dev,
104                                                   101                                                 struct dma_buf *dma_buf,
105                                                   102                                                 struct device *attach_dev);
106 struct drm_gem_object *drm_gem_prime_import(st    103 struct drm_gem_object *drm_gem_prime_import(struct drm_device *dev,
107                                             st    104                                             struct dma_buf *dma_buf);
108                                                   105 
109 void drm_prime_gem_destroy(struct drm_gem_obje    106 void drm_prime_gem_destroy(struct drm_gem_object *obj, struct sg_table *sg);
110                                                   107 
111 int drm_prime_sg_to_page_array(struct sg_table    108 int drm_prime_sg_to_page_array(struct sg_table *sgt, struct page **pages,
112                                int max_pages);    109                                int max_pages);
113 int drm_prime_sg_to_dma_addr_array(struct sg_t    110 int drm_prime_sg_to_dma_addr_array(struct sg_table *sgt, dma_addr_t *addrs,
114                                    int max_pag    111                                    int max_pages);
115                                                   112 
116 #endif /* __DRM_PRIME_H__ */                      113 #endif /* __DRM_PRIME_H__ */
117                                                   114 

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php