]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/staging/android/sync.h
Merge branch 'for-3.15' of git://linux-nfs.org/~bfields/linux
[karo-tx-linux.git] / drivers / staging / android / sync.h
index 62e2255b1c1e2c1a4bc52da6e90f50fa09c35cc7..eaf57cccf62656c5540f72f0edd82e9908057ff1 100644 (file)
 #define _LINUX_SYNC_H
 
 #include <linux/types.h>
-#ifdef __KERNEL__
-
 #include <linux/kref.h>
 #include <linux/ktime.h>
 #include <linux/list.h>
 #include <linux/spinlock.h>
 #include <linux/wait.h>
 
+#include "uapi/sync.h"
+
 struct sync_timeline;
 struct sync_pt;
 struct sync_fence;
@@ -53,7 +53,7 @@ struct sync_timeline_ops {
        const char *driver_name;
 
        /* required */
-       struct sync_pt *(*dup)(struct sync_pt *pt);
+       struct sync_pt * (*dup)(struct sync_pt *pt);
 
        /* required */
        int (*has_signaled)(struct sync_pt *pt);
@@ -341,86 +341,4 @@ int sync_fence_cancel_async(struct sync_fence *fence,
  */
 int sync_fence_wait(struct sync_fence *fence, long timeout);
 
-#endif /* __KERNEL__ */
-
-/**
- * struct sync_merge_data - data passed to merge ioctl
- * @fd2:       file descriptor of second fence
- * @name:      name of new fence
- * @fence:     returns the fd of the new fence to userspace
- */
-struct sync_merge_data {
-       __s32   fd2; /* fd of second fence */
-       char    name[32]; /* name of new fence */
-       __s32   fence; /* fd on newly created fence */
-};
-
-/**
- * struct sync_pt_info - detailed sync_pt information
- * @len:               length of sync_pt_info including any driver_data
- * @obj_name:          name of parent sync_timeline
- * @driver_name:       name of driver implementing the parent
- * @status:            status of the sync_pt 0:active 1:signaled <0:error
- * @timestamp_ns:      timestamp of status change in nanoseconds
- * @driver_data:       any driver dependent data
- */
-struct sync_pt_info {
-       __u32   len;
-       char    obj_name[32];
-       char    driver_name[32];
-       __s32   status;
-       __u64   timestamp_ns;
-
-       __u8    driver_data[0];
-};
-
-/**
- * struct sync_fence_info_data - data returned from fence info ioctl
- * @len:       ioctl caller writes the size of the buffer its passing in.
- *             ioctl returns length of sync_fence_data returned to userspace
- *             including pt_info.
- * @name:      name of fence
- * @status:    status of fence. 1: signaled 0:active <0:error
- * @pt_info:   a sync_pt_info struct for every sync_pt in the fence
- */
-struct sync_fence_info_data {
-       __u32   len;
-       char    name[32];
-       __s32   status;
-
-       __u8    pt_info[0];
-};
-
-#define SYNC_IOC_MAGIC         '>'
-
-/**
- * DOC: SYNC_IOC_WAIT - wait for a fence to signal
- *
- * pass timeout in milliseconds.  Waits indefinitely timeout < 0.
- */
-#define SYNC_IOC_WAIT          _IOW(SYNC_IOC_MAGIC, 0, __s32)
-
-/**
- * DOC: SYNC_IOC_MERGE - merge two fences
- *
- * Takes a struct sync_merge_data.  Creates a new fence containing copies of
- * the sync_pts in both the calling fd and sync_merge_data.fd2.  Returns the
- * new fence's fd in sync_merge_data.fence
- */
-#define SYNC_IOC_MERGE         _IOWR(SYNC_IOC_MAGIC, 1, struct sync_merge_data)
-
-/**
- * DOC: SYNC_IOC_FENCE_INFO - get detailed information on a fence
- *
- * Takes a struct sync_fence_info_data with extra space allocated for pt_info.
- * Caller should write the size of the buffer into len.  On return, len is
- * updated to reflect the total size of the sync_fence_info_data including
- * pt_info.
- *
- * pt_info is a buffer containing sync_pt_infos for every sync_pt in the fence.
- * To iterate over the sync_pt_infos, use the sync_pt_info.len field.
- */
-#define SYNC_IOC_FENCE_INFO    _IOWR(SYNC_IOC_MAGIC, 2,\
-       struct sync_fence_info_data)
-
 #endif /* _LINUX_SYNC_H */