diff options
author | behlendo <behlendo@7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c> | 2008-03-12 21:33:28 +0000 |
---|---|---|
committer | behlendo <behlendo@7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c> | 2008-03-12 21:33:28 +0000 |
commit | 2f5d55aac5bfe0931a92f222ebc68c1546b227d9 (patch) | |
tree | 04b9b97a5c0eba2005e77f88b422861c0036ad1a /modules/spl | |
parent | 4b17158506d5f3bb7e71111f5b6287f19bf20190 (diff) |
Add copyin/copyout mapping
Fix some vnode types
git-svn-id: https://outreach.scidac.gov/svn/spl/trunk@40 7e1ea52c-4ff2-0310-8f11-9dd32ca42a1c
Diffstat (limited to 'modules/spl')
-rw-r--r-- | modules/spl/spl-generic.c | 12 | ||||
-rw-r--r-- | modules/spl/spl-vnode.c | 9 |
2 files changed, 18 insertions, 3 deletions
diff --git a/modules/spl/spl-generic.c b/modules/spl/spl-generic.c index 1f982f8bd..52d06b827 100644 --- a/modules/spl/spl-generic.c +++ b/modules/spl/spl-generic.c @@ -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; } diff --git a/modules/spl/spl-vnode.c b/modules/spl/spl-vnode.c index 9024909b8..a1f6a680e 100644 --- a/modules/spl/spl-vnode.c +++ b/modules/spl/spl-vnode.c @@ -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); |