4 * Copyright (C) 2008 Adam Williams <broadcast at earthling dot net>
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
25 #include <sys/types.h>
27 inline int get_byte_order()
28 { // 1 if little endian
29 return (*(const u_int32_t*)"a ") & 0x00000001;
32 #define SWAP_ITERATE \
39 #define SWAP_24BIT_ITERATE \
48 #define SWAP_32BIT_ITERATE \
59 inline int swap_bytes(int wordsize, unsigned char *buffer, long len)
61 register unsigned char byte1, byte2, byte3, byte4;
62 register unsigned char *buffer1 = buffer;
63 register unsigned char *buffer2 = buffer + 1;
64 register unsigned char *buffer3 = buffer + 2;
65 register unsigned char *buffer4 = buffer + 3;
68 //printf("swap bytes\n");