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
23 copyin(const void *u, void *k, size_t s)
24 {
25 bcopy(u, k, s);
26 return (0);
27 }
28
29 int
30 copyout(const void *k, void *u, size_t s)
31 {
32 bcopy(k, u, s);
33 return (0);
34 }
35
36 int
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
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
61 ovbcopy(const void *src, void *dst, size_t len)
62 {
63 (void) memmove(dst, src, len);
64 }
65
66 /* ARGSUSED */
67 int
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
75 ddi_copyout(const void *buf, void *kernbuf, size_t size, int flags)
76 {
77 return (copyout(buf, kernbuf, size));
78 }