staging: sync: Export sync API symbols

This is needed to allow modules to link against the sync subsystem

Cc: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Cc: Erik Gilling <konkers@android.com>
Cc: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: Rob Clark <robclark@gmail.com>
Cc: Sumit Semwal <sumit.semwal@linaro.org>
Cc: dri-devel@lists.freedesktop.org
Cc: Android Kernel Team <kernel-team@android.com>
Signed-off-by: Erik Gilling <konkers@android.com>
Signed-off-by: John Stultz <john.stultz@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Erik Gilling 2013-02-28 16:43:06 -08:00 committed by Greg Kroah-Hartman
parent c0f61a4e61
commit 8edb4ad911
1 changed files with 14 additions and 0 deletions

View File

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