Skip to content
Snippets Groups Projects
Commit ece68a62 authored by Thomas Jahns's avatar Thomas Jahns :cartwheel:
Browse files

Shorten byte swap code.

parent b7422960
No related branches found
No related tags found
No related merge requests found
......@@ -2,6 +2,7 @@
# include "config.h"
#endif
#include <inttypes.h>
#include <stdio.h>
#include "error.h"
......@@ -9,52 +10,28 @@
void swap4byte(void *ptr, size_t size)
{
INT32 *ptrtmp;
int nval;
int32_t *ptrtmp = ptr;
nval = size;
if ( nval < 0 ) nval = 0;
ptrtmp = (INT32 *) ptr;
if ( sizeof(INT32) == 4 )
{
while ( nval-- )
{
*ptrtmp = (((*ptrtmp >> 24) & 0x00ff) | ((*ptrtmp & 0x00ff) << 24) |
((*ptrtmp >> 8) & 0xff00) | ((*ptrtmp & 0xff00) << 8));
ptrtmp++;
}
}
if (sizeof (int32_t) == 4)
for (size_t i = 0; i < size; ++i)
ptrtmp[i] = (((ptrtmp[i] >> 24) & 0x00ff) | ((ptrtmp[i] & 0x00ff) << 24) |
((ptrtmp[i] >> 8) & 0xff00) | ((ptrtmp[i] & 0xff00) << 8));
else
{
Error("not implemented for %d byte data", sizeof(INT32));
}
Error("not implemented for %d byte data", sizeof(int32_t));
}
void swap8byte(void *ptr, size_t size)
{
INT64 *ptrtmp;
int nval;
nval = size;
if ( nval < 0 ) nval = 0;
ptrtmp = (INT64 *) ptr;
if ( sizeof(INT64) == 8 )
{
while ( nval-- )
{
*ptrtmp = (((*ptrtmp >> 56) & 0x000000ff) | ((*ptrtmp & 0x000000ff) << 56) |
((*ptrtmp >> 40) & 0x0000ff00) | ((*ptrtmp & 0x0000ff00) << 40) |
((*ptrtmp >> 24) & 0x00ff0000) | ((*ptrtmp & 0x00ff0000) << 24) |
((*ptrtmp >> 8) & 0xff000000) | ((*ptrtmp & 0xff000000) << 8));
ptrtmp++;
}
}
int64_t *ptrtmp = ptr;
if (sizeof (int64_t) == 8)
for (size_t i = 0; i < size; ++i)
ptrtmp[i] = (((ptrtmp[i] >> 56) & 0x000000ff) | ((ptrtmp[i] & 0x000000ff) << 56) |
((ptrtmp[i] >> 40) & 0x0000ff00) | ((ptrtmp[i] & 0x0000ff00) << 40) |
((ptrtmp[i] >> 24) & 0x00ff0000) | ((ptrtmp[i] & 0x00ff0000) << 24) |
((ptrtmp[i] >> 8) & 0xff000000) | ((ptrtmp[i] & 0xff000000) << 8));
else
{
Error("not implemented for %d byte data", sizeof(INT64));
}
Error("not implemented for %d byte data", sizeof(int64_t));
}
/*
* Local Variables:
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment