1169695Skan/* bcopy -- copy memory regions of arbitary length 2169695Skan 3169695Skan@deftypefn Supplemental void bcopy (char *@var{in}, char *@var{out}, int @var{length}) 4169695Skan 5169695SkanCopies @var{length} bytes from memory region @var{in} to region 6169695Skan@var{out}. The use of @code{bcopy} is deprecated in new programs. 7169695Skan 8169695Skan@end deftypefn 9169695Skan 10169695Skan*/ 11169695Skan 12169695Skan#include <stddef.h> 13169695Skan 14169695Skanvoid 15169695Skanbcopy (const void *src, void *dest, size_t len) 16169695Skan{ 17169695Skan if (dest < src) 18169695Skan { 19169695Skan const char *firsts = src; 20169695Skan char *firstd = dest; 21169695Skan while (len--) 22169695Skan *firstd++ = *firsts++; 23169695Skan } 24169695Skan else 25169695Skan { 26169695Skan const char *lasts = (const char *)src + (len-1); 27169695Skan char *lastd = (char *)dest + (len-1); 28169695Skan while (len--) 29169695Skan *lastd-- = *lasts--; 30169695Skan } 31169695Skan} 32