diff options
| author | Jonathan Lemon <jlemon@FreeBSD.org> | 2001-02-16 14:31:49 +0000 |
|---|---|---|
| committer | Jonathan Lemon <jlemon@FreeBSD.org> | 2001-02-16 14:31:49 +0000 |
| commit | c3d7bcdfc9ebb7e74c0a38ff26da7272bd4ea9b3 (patch) | |
| tree | 96162e2bd0925b96ac6d6df0e77e19504acde789 /sys/kern/kern_subr.c | |
| parent | 7f77ae579506d6f400442abf67fcaeb870310990 (diff) | |
Notes
Diffstat (limited to 'sys/kern/kern_subr.c')
| -rw-r--r-- | sys/kern/kern_subr.c | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/sys/kern/kern_subr.c b/sys/kern/kern_subr.c index 6b51c5cb1c25..ac4bad61d07d 100644 --- a/sys/kern/kern_subr.c +++ b/sys/kern/kern_subr.c @@ -387,3 +387,39 @@ uio_yield() PICKUP_GIANT(); splx(s); } + +int +copyinfrom(const void *src, void *dst, size_t len, int seg) +{ + int error = 0; + + switch (seg) { + case UIO_USERSPACE: + error = copyin(src, dst, len); + break; + case UIO_SYSSPACE: + bcopy(src, dst, len); + break; + default: + panic("copyinfrom: bad seg %d\n", seg); + } + return (error); +} + +int +copyinstrfrom(const void *src, void *dst, size_t len, size_t *copied, int seg) +{ + int error = 0; + + switch (seg) { + case UIO_USERSPACE: + error = copyinstr(src, dst, len, copied); + break; + case UIO_SYSSPACE: + error = copystr(src, dst, len, copied); + break; + default: + panic("copyinstrfrom: bad seg %d\n", seg); + } + return (error); +} |
