xref: /titanic_51/usr/src/lib/libfakekernel/common/copy.c (revision b819cea2f73f98c5662230cc9affc8cc84f77fcf)
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
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
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
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