print_binary.h 945 B

12345678910111213141516171819202122232425262728293031323334353637
  1. /* SPDX-License-Identifier: GPL-2.0 */
  2. #ifndef PERF_PRINT_BINARY_H
  3. #define PERF_PRINT_BINARY_H
  4. #include <stddef.h>
  5. #include <stdio.h>
  6. enum binary_printer_ops {
  7. BINARY_PRINT_DATA_BEGIN,
  8. BINARY_PRINT_LINE_BEGIN,
  9. BINARY_PRINT_ADDR,
  10. BINARY_PRINT_NUM_DATA,
  11. BINARY_PRINT_NUM_PAD,
  12. BINARY_PRINT_SEP,
  13. BINARY_PRINT_CHAR_DATA,
  14. BINARY_PRINT_CHAR_PAD,
  15. BINARY_PRINT_LINE_END,
  16. BINARY_PRINT_DATA_END,
  17. };
  18. typedef int (*binary__fprintf_t)(enum binary_printer_ops op,
  19. unsigned int val, void *extra, FILE *fp);
  20. int binary__fprintf(unsigned char *data, size_t len,
  21. size_t bytes_per_line, binary__fprintf_t printer,
  22. void *extra, FILE *fp);
  23. static inline void print_binary(unsigned char *data, size_t len,
  24. size_t bytes_per_line, binary__fprintf_t printer,
  25. void *extra)
  26. {
  27. binary__fprintf(data, len, bytes_per_line, printer, extra, stdout);
  28. }
  29. int is_printable_array(char *p, unsigned int len);
  30. #endif /* PERF_PRINT_BINARY_H */