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

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

Version: ~ [ linux-5.13-rc1 ] ~ [ linux-5.12.2 ] ~ [ linux-5.11.19 ] ~ [ linux-5.10.35 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.117 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.190 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.232 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.268 ] ~ [ linux-4.8.17 ] ~ [ linux-4.7.10 ] ~ [ linux-4.6.7 ] ~ [ linux-4.5.7 ] ~ [ linux-4.4.268 ] ~ [ linux-4.3.6 ] ~ [ linux-4.2.8 ] ~ [ linux-4.1.52 ] ~ [ linux-4.0.9 ] ~ [ linux-3.18.140 ] ~ [ linux-3.16.85 ] ~ [ linux-3.14.79 ] ~ [ linux-3.12.74 ] ~ [ 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.5 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 /*
  2  * Copyright © 2012 Red Hat
  3  * Copyright 1999 Precision Insight, Inc., Cedar Park, Texas.
  4  * Copyright 2000 VA Linux Systems, Inc., Sunnyvale, California.
  5  * Copyright (c) 2009-2010, Code Aurora Forum.
  6  *
  7  * Permission is hereby granted, free of charge, to any person obtaining a
  8  * copy of this software and associated documentation files (the "Software"),
  9  * to deal in the Software without restriction, including without limitation
 10  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
 11  * and/or sell copies of the Software, and to permit persons to whom the
 12  * Software is furnished to do so, subject to the following conditions:
 13  *
 14  * The above copyright notice and this permission notice (including the next
 15  * paragraph) shall be included in all copies or substantial portions of the
 16  * Software.
 17  *
 18  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 19  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 20  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
 21  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 22  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 23  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
 24  * IN THE SOFTWARE.
 25  *
 26  * Authors:
 27  *      Dave Airlie <airlied@redhat.com>
 28  *      Rob Clark <rob.clark@linaro.org>
 29  *
 30  */
 31 
 32 #ifndef __DRM_PRIME_H__
 33 #define __DRM_PRIME_H__
 34 
 35 #include <linux/mutex.h>
 36 #include <linux/rbtree.h>
 37 #include <linux/scatterlist.h>
 38 
 39 /**
 40  * struct drm_prime_file_private - per-file tracking for PRIME
 41  *
 42  * This just contains the internal &struct dma_buf and handle caches for each
 43  * &struct drm_file used by the PRIME core code.
 44  */
 45 
 46 struct drm_prime_file_private {
 47 /* private: */
 48         struct mutex lock;
 49         struct rb_root dmabufs;
 50         struct rb_root handles;
 51 };
 52 
 53 struct device;
 54 
 55 struct dma_buf_export_info;
 56 struct dma_buf;
 57 
 58 struct drm_device;
 59 struct drm_gem_object;
 60 struct drm_file;
 61 
 62 struct device;
 63 
 64 struct dma_buf *drm_gem_prime_export(struct drm_device *dev,
 65                                      struct drm_gem_object *obj,
 66                                      int flags);
 67 int drm_gem_prime_handle_to_fd(struct drm_device *dev,
 68                                struct drm_file *file_priv, uint32_t handle, uint32_t flags,
 69                                int *prime_fd);
 70 struct drm_gem_object *drm_gem_prime_import(struct drm_device *dev,
 71                                             struct dma_buf *dma_buf);
 72 
 73 struct drm_gem_object *drm_gem_prime_import_dev(struct drm_device *dev,
 74                                                 struct dma_buf *dma_buf,
 75                                                 struct device *attach_dev);
 76 
 77 int drm_gem_prime_fd_to_handle(struct drm_device *dev,
 78                                struct drm_file *file_priv, int prime_fd, uint32_t *handle);
 79 struct dma_buf *drm_gem_dmabuf_export(struct drm_device *dev,
 80                                       struct dma_buf_export_info *exp_info);
 81 void drm_gem_dmabuf_release(struct dma_buf *dma_buf);
 82 
 83 int drm_prime_sg_to_page_addr_arrays(struct sg_table *sgt, struct page **pages,
 84                                      dma_addr_t *addrs, int max_pages);
 85 struct sg_table *drm_prime_pages_to_sg(struct page **pages, unsigned int nr_pages);
 86 void drm_prime_gem_destroy(struct drm_gem_object *obj, struct sg_table *sg);
 87 
 88 
 89 #endif /* __DRM_PRIME_H__ */
 90 

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

kernel.org | git.kernel.org | LWN.net | Project Home | Wiki (Japanese) | Wiki (English) | 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.

osdn.jp