|
@@ -6,6 +6,7 @@
|
|
#include <linux/err.h>
|
|
#include <linux/err.h>
|
|
#include <linux/highmem.h>
|
|
#include <linux/highmem.h>
|
|
#include <linux/mm.h>
|
|
#include <linux/mm.h>
|
|
|
|
+#include <linux/module.h>
|
|
#include <linux/sched.h>
|
|
#include <linux/sched.h>
|
|
#include <asm/current.h>
|
|
#include <asm/current.h>
|
|
#include <asm/page.h>
|
|
#include <asm/page.h>
|
|
@@ -149,6 +150,7 @@ int copy_from_user(void *to, const void __user *from, int n)
|
|
buffer_op((unsigned long) from, n, 0, copy_chunk_from_user, &to):
|
|
buffer_op((unsigned long) from, n, 0, copy_chunk_from_user, &to):
|
|
n;
|
|
n;
|
|
}
|
|
}
|
|
|
|
+EXPORT_SYMBOL(copy_from_user);
|
|
|
|
|
|
static int copy_chunk_to_user(unsigned long to, int len, void *arg)
|
|
static int copy_chunk_to_user(unsigned long to, int len, void *arg)
|
|
{
|
|
{
|
|
@@ -170,6 +172,7 @@ int copy_to_user(void __user *to, const void *from, int n)
|
|
buffer_op((unsigned long) to, n, 1, copy_chunk_to_user, &from) :
|
|
buffer_op((unsigned long) to, n, 1, copy_chunk_to_user, &from) :
|
|
n;
|
|
n;
|
|
}
|
|
}
|
|
|
|
+EXPORT_SYMBOL(copy_to_user);
|
|
|
|
|
|
static int strncpy_chunk_from_user(unsigned long from, int len, void *arg)
|
|
static int strncpy_chunk_from_user(unsigned long from, int len, void *arg)
|
|
{
|
|
{
|
|
@@ -204,6 +207,7 @@ int strncpy_from_user(char *dst, const char __user *src, int count)
|
|
return -EFAULT;
|
|
return -EFAULT;
|
|
return strnlen(dst, count);
|
|
return strnlen(dst, count);
|
|
}
|
|
}
|
|
|
|
+EXPORT_SYMBOL(strncpy_from_user);
|
|
|
|
|
|
static int clear_chunk(unsigned long addr, int len, void *unused)
|
|
static int clear_chunk(unsigned long addr, int len, void *unused)
|
|
{
|
|
{
|
|
@@ -226,6 +230,7 @@ int clear_user(void __user *mem, int len)
|
|
return access_ok(VERIFY_WRITE, mem, len) ?
|
|
return access_ok(VERIFY_WRITE, mem, len) ?
|
|
buffer_op((unsigned long) mem, len, 1, clear_chunk, NULL) : len;
|
|
buffer_op((unsigned long) mem, len, 1, clear_chunk, NULL) : len;
|
|
}
|
|
}
|
|
|
|
+EXPORT_SYMBOL(clear_user);
|
|
|
|
|
|
static int strnlen_chunk(unsigned long str, int len, void *arg)
|
|
static int strnlen_chunk(unsigned long str, int len, void *arg)
|
|
{
|
|
{
|
|
@@ -251,3 +256,4 @@ int strnlen_user(const void __user *str, int len)
|
|
return count + 1;
|
|
return count + 1;
|
|
return -EFAULT;
|
|
return -EFAULT;
|
|
}
|
|
}
|
|
|
|
+EXPORT_SYMBOL(strnlen_user);
|