18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 28c2ecf20Sopenharmony_ci#ifndef PERF_PRINT_BINARY_H 38c2ecf20Sopenharmony_ci#define PERF_PRINT_BINARY_H 48c2ecf20Sopenharmony_ci 58c2ecf20Sopenharmony_ci#include <stddef.h> 68c2ecf20Sopenharmony_ci#include <stdio.h> 78c2ecf20Sopenharmony_ci 88c2ecf20Sopenharmony_cienum binary_printer_ops { 98c2ecf20Sopenharmony_ci BINARY_PRINT_DATA_BEGIN, 108c2ecf20Sopenharmony_ci BINARY_PRINT_LINE_BEGIN, 118c2ecf20Sopenharmony_ci BINARY_PRINT_ADDR, 128c2ecf20Sopenharmony_ci BINARY_PRINT_NUM_DATA, 138c2ecf20Sopenharmony_ci BINARY_PRINT_NUM_PAD, 148c2ecf20Sopenharmony_ci BINARY_PRINT_SEP, 158c2ecf20Sopenharmony_ci BINARY_PRINT_CHAR_DATA, 168c2ecf20Sopenharmony_ci BINARY_PRINT_CHAR_PAD, 178c2ecf20Sopenharmony_ci BINARY_PRINT_LINE_END, 188c2ecf20Sopenharmony_ci BINARY_PRINT_DATA_END, 198c2ecf20Sopenharmony_ci}; 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_citypedef int (*binary__fprintf_t)(enum binary_printer_ops op, 228c2ecf20Sopenharmony_ci unsigned int val, void *extra, FILE *fp); 238c2ecf20Sopenharmony_ci 248c2ecf20Sopenharmony_ciint binary__fprintf(unsigned char *data, size_t len, 258c2ecf20Sopenharmony_ci size_t bytes_per_line, binary__fprintf_t printer, 268c2ecf20Sopenharmony_ci void *extra, FILE *fp); 278c2ecf20Sopenharmony_ci 288c2ecf20Sopenharmony_cistatic inline void print_binary(unsigned char *data, size_t len, 298c2ecf20Sopenharmony_ci size_t bytes_per_line, binary__fprintf_t printer, 308c2ecf20Sopenharmony_ci void *extra) 318c2ecf20Sopenharmony_ci{ 328c2ecf20Sopenharmony_ci binary__fprintf(data, len, bytes_per_line, printer, extra, stdout); 338c2ecf20Sopenharmony_ci} 348c2ecf20Sopenharmony_ci 358c2ecf20Sopenharmony_ciint is_printable_array(char *p, unsigned int len); 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_ci#endif /* PERF_PRINT_BINARY_H */ 38