summaryrefslogtreecommitdiffstats
path: root/drivers/staging/android/sync_file.h
diff options
context:
space:
mode:
authorGustavo Padovan2016-04-28 15:46:54 +0200
committerGreg Kroah-Hartman2016-04-30 02:37:10 +0200
commitd4cab38e153d62ecd502645390c0289c1b8337df (patch)
treeda5da540c6e08eb4bd9bd44bc46c8e8c583c3d4c /drivers/staging/android/sync_file.h
parentstaging/android: remove name arg from sync_file_create() (diff)
downloadkernel-qcow2-linux-d4cab38e153d62ecd502645390c0289c1b8337df.tar.gz
kernel-qcow2-linux-d4cab38e153d62ecd502645390c0289c1b8337df.tar.xz
kernel-qcow2-linux-d4cab38e153d62ecd502645390c0289c1b8337df.zip
staging/android: prepare sync_file for de-staging
Move its functions and structs to their own file. Also moves function's docs to the .c file. Signed-off-by: Gustavo Padovan <gustavo.padovan@collabora.co.uk> Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/staging/android/sync_file.h')
-rw-r--r--drivers/staging/android/sync_file.h57
1 files changed, 57 insertions, 0 deletions
diff --git a/drivers/staging/android/sync_file.h b/drivers/staging/android/sync_file.h
new file mode 100644
index 000000000000..8a1b546fd3b3
--- /dev/null
+++ b/drivers/staging/android/sync_file.h
@@ -0,0 +1,57 @@
+/*
+ * include/linux/sync_file.h
+ *
+ * Copyright (C) 2012 Google, Inc.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ */
+
+#ifndef _LINUX_SYNC_FILE_H
+#define _LINUX_SYNC_FILE_H
+
+#include <linux/types.h>
+#include <linux/kref.h>
+#include <linux/ktime.h>
+#include <linux/list.h>
+#include <linux/spinlock.h>
+#include <linux/fence.h>
+
+struct sync_file_cb {
+ struct fence_cb cb;
+ struct fence *fence;
+ struct sync_file *sync_file;
+};
+
+/**
+ * struct sync_file - sync file to export to the userspace
+ * @file: file representing this fence
+ * @kref: reference count on fence.
+ * @name: name of sync_file. Useful for debugging
+ * @sync_file_list: membership in global file list
+ * @num_fences number of sync_pts in the fence
+ * @wq: wait queue for fence signaling
+ * @status: 0: signaled, >0:active, <0: error
+ * @cbs: sync_pts callback information
+ */
+struct sync_file {
+ struct file *file;
+ struct kref kref;
+ char name[32];
+#ifdef CONFIG_DEBUG_FS
+ struct list_head sync_file_list;
+#endif
+ int num_fences;
+
+ wait_queue_head_t wq;
+ atomic_t status;
+
+ struct sync_file_cb cbs[];
+};
+
+struct sync_file *sync_file_create(struct fence *fence);
+
+#endif /* _LINUX_SYNC_H */