Add ddi_copyin/ddi_copyout support for fake kernel originated ioctls.

This commit is contained in:
Brian Behlendorf
2009-07-10 10:56:32 -07:00
parent 2a734e9c26
commit d3126abe75
2 changed files with 30 additions and 0 deletions
+27
View File
@@ -35,6 +35,7 @@
#include <sys/proc.h>
#include <sys/kstat.h>
#include <sys/utsname.h>
#include <sys/file.h>
#include <linux/kmod.h>
#ifdef DEBUG_SUBSYSTEM
@@ -226,6 +227,32 @@ EXPORT_SYMBOL(ddi_strtol);
EXPORT_SYMBOL(ddi_strtoll);
EXPORT_SYMBOL(ddi_strtoull);
int
ddi_copyin(const void *from, void *to, size_t len, int flags)
{
/* Fake ioctl() issued by kernel, 'from' is a kernel address */
if (flags & FKIOCTL) {
memcpy(to, from, len);
return 0;
}
return copyin(from, to, len);
}
EXPORT_SYMBOL(ddi_copyin);
int
ddi_copyout(const void *from, void *to, size_t len, int flags)
{
/* Fake ioctl() issued by kernel, 'from' is a kernel address */
if (flags & FKIOCTL) {
memcpy(to, from, len);
return 0;
}
return copyout(from, to, len);
}
EXPORT_SYMBOL(ddi_copyout);
struct new_utsname *__utsname(void)
{
#ifdef HAVE_INIT_UTSNAME