1*b819cea2SGordon Ross /*
2*b819cea2SGordon Ross * This file and its contents are supplied under the terms of the
3*b819cea2SGordon Ross * Common Development and Distribution License ("CDDL"), version 1.0.
4*b819cea2SGordon Ross * You may only use this file in accordance with the terms of version
5*b819cea2SGordon Ross * 1.0 of the CDDL.
6*b819cea2SGordon Ross *
7*b819cea2SGordon Ross * A full copy of the text of the CDDL should have accompanied this
8*b819cea2SGordon Ross * source. A copy of the CDDL is also available via the Internet at
9*b819cea2SGordon Ross * http://www.illumos.org/license/CDDL.
10*b819cea2SGordon Ross */
11*b819cea2SGordon Ross
12*b819cea2SGordon Ross /*
13*b819cea2SGordon Ross * Copyright 2013 Nexenta Systems, Inc. All rights reserved.
14*b819cea2SGordon Ross */
15*b819cea2SGordon Ross
16*b819cea2SGordon Ross
17*b819cea2SGordon Ross #include <sys/types.h>
18*b819cea2SGordon Ross #include <sys/time.h>
19*b819cea2SGordon Ross #include <sys/systm.h>
20*b819cea2SGordon Ross #include <sys/errno.h>
21*b819cea2SGordon Ross
22*b819cea2SGordon Ross int
copyinstr(const char * src,char * dst,size_t max_len,size_t * copied)23*b819cea2SGordon Ross copyinstr(const char *src, char *dst, size_t max_len, size_t *copied)
24*b819cea2SGordon Ross {
25*b819cea2SGordon Ross return (copystr(src, dst, max_len, copied));
26*b819cea2SGordon Ross }
27*b819cea2SGordon Ross
28*b819cea2SGordon Ross int
copystr(const char * src,char * dst,size_t max_len,size_t * outlen)29*b819cea2SGordon Ross copystr(const char *src, char *dst, size_t max_len, size_t *outlen)
30*b819cea2SGordon Ross {
31*b819cea2SGordon Ross size_t copied;
32*b819cea2SGordon Ross
33*b819cea2SGordon Ross if (max_len == 0)
34*b819cea2SGordon Ross return (ENAMETOOLONG);
35*b819cea2SGordon Ross
36*b819cea2SGordon Ross copied = strlcpy(dst, src, max_len) + 1;
37*b819cea2SGordon Ross if (copied >= max_len)
38*b819cea2SGordon Ross return (ENAMETOOLONG);
39*b819cea2SGordon Ross
40*b819cea2SGordon Ross if (outlen != NULL)
41*b819cea2SGordon Ross *outlen = copied;
42*b819cea2SGordon Ross
43*b819cea2SGordon Ross return (0);
44*b819cea2SGordon Ross }
45*b819cea2SGordon Ross
46*b819cea2SGordon Ross void
ovbcopy(const void * src,void * dst,size_t len)47*b819cea2SGordon Ross ovbcopy(const void *src, void *dst, size_t len)
48*b819cea2SGordon Ross {
49*b819cea2SGordon Ross (void) memmove(dst, src, len);
50*b819cea2SGordon Ross }
51