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