b3SwapUtils.h 904 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #ifndef B3_SWAP_UTILS_H
  2. #define B3_SWAP_UTILS_H
  3. inline void b3Swap16(unsigned char *ptr)
  4. {
  5. unsigned char val;
  6. // Swap 1st and 2nd bytes
  7. val = *(ptr);
  8. *(ptr) = *(ptr + 1);
  9. *(ptr + 1) = val;
  10. }
  11. inline void b3Swap32(unsigned char *ptr)
  12. {
  13. unsigned char val;
  14. // Swap 1st and 4th bytes
  15. val = *(ptr);
  16. *(ptr) = *(ptr + 3);
  17. *(ptr + 3) = val;
  18. //Swap 2nd and 3rd bytes
  19. ptr += 1;
  20. val = *(ptr);
  21. *(ptr) = *(ptr + 1);
  22. *(ptr + 1) = val;
  23. }
  24. inline void b3Swap64(unsigned char *ptr)
  25. {
  26. unsigned char val;
  27. // Swap 1st and 8th bytes
  28. val = *(ptr);
  29. *(ptr) = *(ptr + 7);
  30. *(ptr + 7) = val;
  31. // Swap 2nd and 7th bytes
  32. ptr += 1;
  33. val = *(ptr);
  34. *(ptr) = *(ptr + 5);
  35. *(ptr + 5) = val;
  36. // Swap 3rd and 6th bytes
  37. ptr += 1;
  38. val = *(ptr);
  39. *(ptr) = *(ptr + 3);
  40. *(ptr + 3) = val;
  41. // Swap 4th and 5th bytes
  42. ptr += 1;
  43. val = *(ptr);
  44. *(ptr) = *(ptr + 1);
  45. *(ptr + 1) = val;
  46. }
  47. #endif //B3_SWAP_UTILS_H