diff libiberty/bcopy.c @ 0:a06113de4d67

first commit
author kent <kent@cr.ie.u-ryukyu.ac.jp>
date Fri, 17 Jul 2009 14:47:48 +0900
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libiberty/bcopy.c	Fri Jul 17 14:47:48 2009 +0900
@@ -0,0 +1,31 @@
+/* bcopy -- copy memory regions of arbitary length
+
+@deftypefn Supplemental void bcopy (char *@var{in}, char *@var{out}, int @var{length})
+
+Copies @var{length} bytes from memory region @var{in} to region
+@var{out}.  The use of @code{bcopy} is deprecated in new programs.
+
+@end deftypefn
+
+*/
+
+#include <stddef.h>
+
+void
+bcopy (const void *src, void *dest, size_t len)
+{
+  if (dest < src)
+    {
+      const char *firsts = (const char *) src;
+      char *firstd = (char *) dest;
+      while (len--)
+	*firstd++ = *firsts++;
+    }
+  else
+    {
+      const char *lasts = (const char *)src + (len-1);
+      char *lastd = (char *)dest + (len-1);
+      while (len--)
+        *lastd-- = *lasts--;
+    }
+}