|
@@ -15,6 +15,7 @@
|
|
|
*/
|
|
|
|
|
|
#include <linux/debugfs.h>
|
|
|
+#include <linux/export.h>
|
|
|
#include <linux/file.h>
|
|
|
#include <linux/fs.h>
|
|
|
#include <linux/kernel.h>
|
|
@@ -64,6 +65,7 @@ struct sync_timeline *sync_timeline_create(const struct sync_timeline_ops *ops,
|
|
|
|
|
|
return obj;
|
|
|
}
|
|
|
+EXPORT_SYMBOL(sync_timeline_create);
|
|
|
|
|
|
static void sync_timeline_free(struct sync_timeline *obj)
|
|
|
{
|
|
@@ -94,6 +96,7 @@ void sync_timeline_destroy(struct sync_timeline *obj)
|
|
|
else
|
|
|
sync_timeline_signal(obj);
|
|
|
}
|
|
|
+EXPORT_SYMBOL(sync_timeline_destroy);
|
|
|
|
|
|
static void sync_timeline_add_pt(struct sync_timeline *obj, struct sync_pt *pt)
|
|
|
{
|
|
@@ -152,6 +155,7 @@ void sync_timeline_signal(struct sync_timeline *obj)
|
|
|
sync_fence_signal_pt(pt);
|
|
|
}
|
|
|
}
|
|
|
+EXPORT_SYMBOL(sync_timeline_signal);
|
|
|
|
|
|
struct sync_pt *sync_pt_create(struct sync_timeline *parent, int size)
|
|
|
{
|
|
@@ -169,6 +173,7 @@ struct sync_pt *sync_pt_create(struct sync_timeline *parent, int size)
|
|
|
|
|
|
return pt;
|
|
|
}
|
|
|
+EXPORT_SYMBOL(sync_pt_create);
|
|
|
|
|
|
void sync_pt_free(struct sync_pt *pt)
|
|
|
{
|
|
@@ -179,6 +184,7 @@ void sync_pt_free(struct sync_pt *pt)
|
|
|
|
|
|
kfree(pt);
|
|
|
}
|
|
|
+EXPORT_SYMBOL(sync_pt_free);
|
|
|
|
|
|
/* call with pt->parent->active_list_lock held */
|
|
|
static int _sync_pt_has_signaled(struct sync_pt *pt)
|
|
@@ -284,6 +290,7 @@ struct sync_fence *sync_fence_create(const char *name, struct sync_pt *pt)
|
|
|
|
|
|
return fence;
|
|
|
}
|
|
|
+EXPORT_SYMBOL(sync_fence_create);
|
|
|
|
|
|
static int sync_fence_copy_pts(struct sync_fence *dst, struct sync_fence *src)
|
|
|
{
|
|
@@ -331,16 +338,19 @@ err:
|
|
|
fput(file);
|
|
|
return NULL;
|
|
|
}
|
|
|
+EXPORT_SYMBOL(sync_fence_fdget);
|
|
|
|
|
|
void sync_fence_put(struct sync_fence *fence)
|
|
|
{
|
|
|
fput(fence->file);
|
|
|
}
|
|
|
+EXPORT_SYMBOL(sync_fence_put);
|
|
|
|
|
|
void sync_fence_install(struct sync_fence *fence, int fd)
|
|
|
{
|
|
|
fd_install(fd, fence->file);
|
|
|
}
|
|
|
+EXPORT_SYMBOL(sync_fence_install);
|
|
|
|
|
|
static int sync_fence_get_status(struct sync_fence *fence)
|
|
|
{
|
|
@@ -388,6 +398,7 @@ err:
|
|
|
kfree(fence);
|
|
|
return NULL;
|
|
|
}
|
|
|
+EXPORT_SYMBOL(sync_fence_merge);
|
|
|
|
|
|
static void sync_fence_signal_pt(struct sync_pt *pt)
|
|
|
{
|
|
@@ -447,6 +458,7 @@ out:
|
|
|
|
|
|
return err;
|
|
|
}
|
|
|
+EXPORT_SYMBOL(sync_fence_wait_async);
|
|
|
|
|
|
int sync_fence_cancel_async(struct sync_fence *fence,
|
|
|
struct sync_fence_waiter *waiter)
|
|
@@ -475,6 +487,7 @@ int sync_fence_cancel_async(struct sync_fence *fence,
|
|
|
spin_unlock_irqrestore(&fence->waiter_list_lock, flags);
|
|
|
return ret;
|
|
|
}
|
|
|
+EXPORT_SYMBOL(sync_fence_cancel_async);
|
|
|
|
|
|
int sync_fence_wait(struct sync_fence *fence, long timeout)
|
|
|
{
|
|
@@ -500,6 +513,7 @@ int sync_fence_wait(struct sync_fence *fence, long timeout)
|
|
|
|
|
|
return 0;
|
|
|
}
|
|
|
+EXPORT_SYMBOL(sync_fence_wait);
|
|
|
|
|
|
static int sync_fence_release(struct inode *inode, struct file *file)
|
|
|
{
|