diff options
author | Gustavo Padovan | 2016-04-28 15:46:54 +0200 |
---|---|---|
committer | Greg Kroah-Hartman | 2016-04-30 02:37:10 +0200 |
commit | d4cab38e153d62ecd502645390c0289c1b8337df (patch) | |
tree | da5da540c6e08eb4bd9bd44bc46c8e8c583c3d4c /drivers/staging/android/sync_file.h | |
parent | staging/android: remove name arg from sync_file_create() (diff) | |
download | kernel-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.h | 57 |
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 */ |