100bf4279Sespie /* bcopy -- copy memory regions of arbitary length 200bf4279Sespie 39588ddcfSespie @deftypefn Supplemental void bcopy (char *@var{in}, char *@var{out}, int @var{length}) 400bf4279Sespie 59588ddcfSespie Copies @var{length} bytes from memory region @var{in} to region 69588ddcfSespie @var{out}. The use of @code{bcopy} is deprecated in new programs. 700bf4279Sespie 89588ddcfSespie @end deftypefn 900bf4279Sespie 1000bf4279Sespie */ 1100bf4279Sespie 12*20fce977Smiod #include <stddef.h> 13*20fce977Smiod 1400bf4279Sespie void bcopy(const void * src,void * dest,size_t len)15*20fce977Smiodbcopy (const void *src, void *dest, size_t len) 1600bf4279Sespie { 1700bf4279Sespie if (dest < src) 18*20fce977Smiod { 19*20fce977Smiod const char *firsts = src; 20*20fce977Smiod char *firstd = dest; 2100bf4279Sespie while (len--) 22*20fce977Smiod *firstd++ = *firsts++; 23*20fce977Smiod } 2400bf4279Sespie else 2500bf4279Sespie { 26*20fce977Smiod const char *lasts = (const char *)src + (len-1); 27*20fce977Smiod char *lastd = (char *)dest + (len-1); 2800bf4279Sespie while (len--) 29*20fce977Smiod *lastd-- = *lasts--; 3000bf4279Sespie } 3100bf4279Sespie } 32