| /* bcopy -- copy memory regions of arbitary length |
| |
| NAME |
| bcopy -- copy memory regions of arbitrary length |
| |
| SYNOPSIS |
| void bcopy (char *in, char *out, int length) |
| |
| DESCRIPTION |
| Copy LENGTH bytes from memory region pointed to by IN to memory |
| region pointed to by OUT. |
| |
| BUGS |
| Significant speed improvements can be made in some cases by |
| implementing copies of multiple bytes simultaneously, or unrolling |
| the copy loop. |
| |
| */ |
| |
| void |
| bcopy (src, dest, len) |
| register char *src, *dest; |
| int len; |
| { |
| if (dest < src) |
| while (len--) |
| *dest++ = *src++; |
| else |
| { |
| char *lasts = src + (len-1); |
| char *lastd = dest + (len-1); |
| while (len--) |
| *(char *)lastd-- = *(char *)lasts--; |
| } |
| } |