hexwrite.c 985 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /*====================================================================*
  2. *
  3. * Copyright (c) 2013 Qualcomm Atheros, Inc.
  4. *
  5. * All rights reserved.
  6. *
  7. *====================================================================*/
  8. /*====================================================================*
  9. *
  10. * void hexwrite (signed fd, void const * memory, size_t extent);
  11. *
  12. * number.h
  13. *
  14. * write a memory region as a stream of hexadecimal characters;
  15. *
  16. *
  17. *--------------------------------------------------------------------*/
  18. #ifndef HEXWRITE_SOURCE
  19. #define HEXWRITE_SOURCE
  20. #include <unistd.h>
  21. #include "../tools/types.h"
  22. #include "../tools/number.h"
  23. void hexwrite (signed fd, void const * memory, size_t extent)
  24. {
  25. byte * offset = (byte *) (memory);
  26. while (extent--)
  27. {
  28. byte byte = * offset;
  29. write (fd, & DIGITS_HEX [(byte >> 4) & 0x0F], sizeof (byte));
  30. write (fd, & DIGITS_HEX [(byte >> 0) & 0x0F], sizeof (byte));
  31. offset++;
  32. }
  33. return;
  34. }
  35. #endif