hexstream.c 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. /*====================================================================*
  2. *
  3. * Copyright (c) 2013 Qualcomm Atheros, Inc.
  4. *
  5. * All rights reserved.
  6. *
  7. *====================================================================*/
  8. /*====================================================================*
  9. *
  10. * char const * hexstream (char buffer [], register size_t length, void const * memory, register size_t extent)
  11. *
  12. * memory.h
  13. *
  14. * encode a character buffer with a stream of hexadecimal digits;
  15. *
  16. *--------------------------------------------------------------------*/
  17. #ifndef HEXSTREAM_SOURCE
  18. #define HEXSTREAM_SOURCE
  19. #include "../tools/number.h"
  20. #include "../tools/memory.h"
  21. char const * hexstream (char buffer [], register size_t length, void const * memory, register size_t extent)
  22. {
  23. register char * string = (char *) (buffer);
  24. register byte * offset = (byte *) (memory);
  25. if (length)
  26. {
  27. length >>= 1;
  28. while ((length--) && (extent--))
  29. {
  30. * string++ = DIGITS_HEX [(* offset >> 4) & 0x0F];
  31. * string++ = DIGITS_HEX [(* offset >> 0) & 0x0F];
  32. offset++;
  33. }
  34. * string = (char) (0);
  35. }
  36. return (buffer);
  37. }
  38. #endif