1 |
#ifndef lint |
2 |
static const char RCSid[] = "$Id: byteswap.c,v 3.1 2006/12/23 17:27:45 greg Exp $"; |
3 |
#endif |
4 |
/* |
5 |
* Byte swapping routines |
6 |
* |
7 |
* External symbols declared in rtio.h |
8 |
*/ |
9 |
|
10 |
#include "copyright.h" |
11 |
#include "rtio.h" |
12 |
|
13 |
void |
14 |
swap16( /* swap n 16-bit words */ |
15 |
char *wp, |
16 |
size_t n |
17 |
) |
18 |
{ |
19 |
int t; |
20 |
|
21 |
while (n-- > 0) { |
22 |
t = wp[0]; wp[0] = wp[1]; wp[1] = t; |
23 |
wp += 2; |
24 |
} |
25 |
} |
26 |
|
27 |
|
28 |
void |
29 |
swap32( /* swap n 32-bit words */ |
30 |
char *wp, |
31 |
size_t n |
32 |
) |
33 |
{ |
34 |
int t; |
35 |
|
36 |
while (n-- > 0) { |
37 |
t = wp[0]; wp[0] = wp[3]; wp[3] = t; |
38 |
t = wp[1]; wp[1] = wp[2]; wp[2] = t; |
39 |
wp += 4; |
40 |
} |
41 |
} |
42 |
|
43 |
|
44 |
void |
45 |
swap64( /* swap n 64-bit words */ |
46 |
char *wp, |
47 |
size_t n |
48 |
) |
49 |
{ |
50 |
int t; |
51 |
|
52 |
while (n-- > 0) { |
53 |
t = wp[0]; wp[0] = wp[7]; wp[7] = t; |
54 |
t = wp[1]; wp[1] = wp[6]; wp[6] = t; |
55 |
t = wp[2]; wp[2] = wp[5]; wp[5] = t; |
56 |
t = wp[3]; wp[3] = wp[4]; wp[4] = t; |
57 |
wp += 8; |
58 |
} |
59 |
} |
60 |
|