Add copyin/copyout mapping

Fix some vnode types



git-svn-id: https://outreach.scidac.gov/svn/spl/trunk@40 7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c
This commit is contained in:
behlendo
2008-03-12 21:33:28 +00:00
parent 4b17158506
commit 2f5d55aac5
6 changed files with 33 additions and 11 deletions
+12
View File
@@ -8,6 +8,9 @@
int p0 = 0;
EXPORT_SYMBOL(p0);
char hw_serial[11];
EXPORT_SYMBOL(hw_serial);
int
highbit(unsigned long i)
{
@@ -39,8 +42,17 @@ highbit(unsigned long i)
}
EXPORT_SYMBOL(highbit);
int
ddi_strtoul(const char *str, char **nptr, int base, unsigned long *result)
{
char *end;
return (*result = simple_strtoul(str, &end, base));
}
EXPORT_SYMBOL(ddi_strtoul);
static int __init spl_init(void)
{
strcpy(hw_serial, "007f0100"); /* loopback */
printk(KERN_INFO "spl: Loaded Solaris Porting Layer v%s\n", VERSION);
return 0;
}
+6 -3
View File
@@ -159,7 +159,7 @@ vn_rdwr(uio_rw_t uio, vnode_t *vp, void *addr, ssize_t len, offset_t off,
EXPORT_SYMBOL(vn_rdwr);
int
vn_close(vnode_t *vp, int flags, int x1, int x2, int x3, int x4)
vn_close(vnode_t *vp, int flags, int x1, int x2, void *x3, void *x4)
{
int rc;
@@ -180,13 +180,16 @@ static struct dentry *lookup_hash(struct nameidata *nd)
/* Modified do_unlinkat() from linux/fs/namei.c, only uses exported symbols */
int
vn_remove(const char *path, int x1, int x2)
vn_remove(const char *path, int seg, int flags)
{
struct dentry *dentry;
struct nameidata nd;
struct inode *inode = NULL;
int rc = 0;
BUG_ON(seg != UIO_SYSSPACE);
BUG_ON(flags != RMFILE);
rc = path_lookup(path, LOOKUP_PARENT, &nd);
if (rc)
goto exit;
@@ -348,7 +351,7 @@ vn_getattr(vnode_t *vp, vattr_t *vap, int flags, int x3, void *x4)
}
EXPORT_SYMBOL(vn_getattr);
int vn_fsync(vnode_t *vp, int flags, int x3, int x4)
int vn_fsync(vnode_t *vp, int flags, void *x3, void *x4)
{
BUG_ON(!vp);
BUG_ON(!vp->v_fp);
+4 -4
View File
@@ -147,7 +147,7 @@ splat_vnode_test3(struct file *file, void *arg)
out:
VOP_CLOSE(vp, 0, 0, 0, 0, 0);
VN_RELE(vp);
vn_remove(SPLAT_VNODE_TEST_FILE_RW, 0, 0);
vn_remove(SPLAT_VNODE_TEST_FILE_RW, UIO_SYSSPACE, RMFILE);
return rc;
} /* splat_vnode_test3() */
@@ -226,8 +226,8 @@ out2:
VOP_CLOSE(vp, 0, 0, 0, 0, 0);
VN_RELE(vp);
out:
vn_remove(SPLAT_VNODE_TEST_FILE_RW1, 0, 0);
vn_remove(SPLAT_VNODE_TEST_FILE_RW2, 0, 0);
vn_remove(SPLAT_VNODE_TEST_FILE_RW1, UIO_SYSSPACE, RMFILE);
vn_remove(SPLAT_VNODE_TEST_FILE_RW2, UIO_SYSSPACE, RMFILE);
return rc;
} /* splat_vnode_test4() */
@@ -312,7 +312,7 @@ splat_vnode_test6(struct file *file, void *arg)
out:
VOP_CLOSE(vp, 0, 0, 0, 0, 0);
VN_RELE(vp);
vn_remove(SPLAT_VNODE_TEST_FILE_RW, 0, 0);
vn_remove(SPLAT_VNODE_TEST_FILE_RW, UIO_SYSSPACE, RMFILE);
return rc;
} /* splat_vnode_test4() */