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 }