root/include/linux/sync_file.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /*
   2  * include/linux/sync_file.h
   3  *
   4  * Copyright (C) 2012 Google, Inc.
   5  *
   6  * This program is distributed in the hope that it will be useful,
   7  * but WITHOUT ANY WARRANTY; without even the implied warranty of
   8  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   9  * GNU General Public License for more details.
  10  *
  11  */
  12 
  13 #ifndef _LINUX_SYNC_FILE_H
  14 #define _LINUX_SYNC_FILE_H
  15 
  16 #include <linux/types.h>
  17 #include <linux/ktime.h>
  18 #include <linux/list.h>
  19 #include <linux/spinlock.h>
  20 #include <linux/dma-fence.h>
  21 #include <linux/dma-fence-array.h>
  22 
  23 /**
  24  * struct sync_file - sync file to export to the userspace
  25  * @file:               file representing this fence
  26  * @sync_file_list:     membership in global file list
  27  * @wq:                 wait queue for fence signaling
  28  * @flags:              flags for the sync_file
  29  * @fence:              fence with the fences in the sync_file
  30  * @cb:                 fence callback information
  31  *
  32  * flags:
  33  * POLL_ENABLED: whether userspace is currently poll()'ing or not
  34  */
  35 struct sync_file {
  36         struct file             *file;
  37         /**
  38          * @user_name:
  39          *
  40          * Name of the sync file provided by userspace, for merged fences.
  41          * Otherwise generated through driver callbacks (in which case the
  42          * entire array is 0).
  43          */
  44         char                    user_name[32];
  45 #ifdef CONFIG_DEBUG_FS
  46         struct list_head        sync_file_list;
  47 #endif
  48 
  49         wait_queue_head_t       wq;
  50         unsigned long           flags;
  51 
  52         struct dma_fence        *fence;
  53         struct dma_fence_cb cb;
  54 };
  55 
  56 #define POLL_ENABLED 0
  57 
  58 struct sync_file *sync_file_create(struct dma_fence *fence);
  59 struct dma_fence *sync_file_get_fence(int fd);
  60 char *sync_file_get_name(struct sync_file *sync_file, char *buf, int len);
  61 
  62 #endif /* _LINUX_SYNC_H */

/* [<][>][^][v][top][bottom][index][help] */