1 /*
2 * This file and its contents are supplied under the terms of the
3 * Common Development and Distribution License ("CDDL"), version 1.0.
4 * You may only use this file in accordance with the terms of version
5 * 1.0 of the CDDL.
6 *
7 * A full copy of the text of the CDDL should have accompanied this
8 * source. A copy of the CDDL is also available via the Internet at
9 * http://www.illumos.org/license/CDDL.
10 */
11
12 /*
13 * Copyright 2017 Nexenta Systems, Inc. All rights reserved.
14 */
15
16
17 #include <sys/types.h>
18 #include <sys/time.h>
19 #include <sys/systm.h>
20 #include <sys/errno.h>
21
22 int
copyin(const void * u,void * k,size_t s)23 copyin(const void *u, void *k, size_t s)
24 {
25 bcopy(u, k, s);
26 return (0);
27 }
28
29 int
copyout(const void * k,void * u,size_t s)30 copyout(const void *k, void *u, size_t s)
31 {
32 bcopy(k, u, s);
33 return (0);
34 }
35
36 int
copyinstr(const char * src,char * dst,size_t max_len,size_t * copied)37 copyinstr(const char *src, char *dst, size_t max_len, size_t *copied)
38 {
39 return (copystr(src, dst, max_len, copied));
40 }
41
42 int
copystr(const char * src,char * dst,size_t max_len,size_t * outlen)43 copystr(const char *src, char *dst, size_t max_len, size_t *outlen)
44 {
45 size_t copied;
46
47 if (max_len == 0)
48 return (ENAMETOOLONG);
49
50 copied = strlcpy(dst, src, max_len) + 1;
51 if (copied >= max_len)
52 return (ENAMETOOLONG);
53
54 if (outlen != NULL)
55 *outlen = copied;
56
57 return (0);
58 }
59
60 void
ovbcopy(const void * src,void * dst,size_t len)61 ovbcopy(const void *src, void *dst, size_t len)
62 {
63 (void) memmove(dst, src, len);
64 }
65
66 /* ARGSUSED */
67 int
ddi_copyin(const void * buf,void * kernbuf,size_t size,int flags)68 ddi_copyin(const void *buf, void *kernbuf, size_t size, int flags)
69 {
70 return (copyin(buf, kernbuf, size));
71 }
72
73 /* ARGSUSED */
74 int
ddi_copyout(const void * buf,void * kernbuf,size_t size,int flags)75 ddi_copyout(const void *buf, void *kernbuf, size_t size, int flags)
76 {
77 return (copyout(buf, kernbuf, size));
78 }
79