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
22int
23copyin(const void *u, void *k, size_t s)
24{
25	bcopy(u, k, s);
26	return (0);
27}
28
29int
30copyout(const void *k, void *u, size_t s)
31{
32	bcopy(k, u, s);
33	return (0);
34}
35
36int
37copyinstr(const char *src, char *dst, size_t max_len, size_t *copied)
38{
39	return (copystr(src, dst, max_len, copied));
40}
41
42int
43copystr(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
60void
61ovbcopy(const void *src, void *dst, size_t len)
62{
63	(void) memmove(dst, src, len);
64}
65
66/* ARGSUSED */
67int
68ddi_copyin(const void *buf, void *kernbuf, size_t size, int flags)
69{
70	return (copyin(buf, kernbuf, size));
71}
72
73/* ARGSUSED */
74int
75ddi_copyout(const void *buf, void *kernbuf, size_t size, int flags)
76{
77	return (copyout(buf, kernbuf, size));
78}
79