:pserver:cvsanon@mok.lvcm.com:/CVS/ReactOS reactos
[reactos.git] / lib / crtdll / stdlib / swab.c
1 /* Copyright (C) 1995 DJ Delorie, see COPYING.DJ for details */
2 #include <crtdll/stdlib.h>
3
4 void    _swab (const char* caFrom, char* caTo, size_t sizeToCopy)
5 {
6   unsigned long temp;
7
8   sizeToCopy >>= 1; sizeToCopy++;
9 #define STEP    temp = *((const char *)caFrom)++,*((char *)caTo)++ = *((const char *)caFrom)++,*((char *)caTo)++ = temp
10   /* round to multiple of 8 */
11   while ((--sizeToCopy) & 07)
12     STEP;
13   sizeToCopy >>= 3;
14   while (--sizeToCopy >= 0) {
15     STEP; STEP; STEP; STEP;
16     STEP; STEP; STEP; STEP;
17   }
18 }