1 // Copyright 2016 The Fuchsia Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #pragma once 6 7 #include <stddef.h> 8 #include <zircon/types.h> 9 10 #define MAX_BUILDID_SIZE 64 11 12 namespace inspector { 13 14 extern int verbosity_level; 15 16 extern void do_print_error(const char* file, int line, const char* fmt, ...); 17 18 extern void do_print_zx_error(const char* file, int line, const char* what, zx_status_t status); 19 20 #define print_error(fmt...) \ 21 do { \ 22 ::inspector::do_print_error(__FILE__, __LINE__, fmt); \ 23 } while (0) 24 25 #define print_zx_error(what, status) \ 26 do { \ 27 ::inspector::do_print_zx_error(__FILE__, __LINE__, \ 28 (what), static_cast<zx_status_t>(status)); \ 29 } while (0) 30 31 extern void do_print_debug(const char* file, int line, const char* func, const char* fmt, ...); 32 33 #define debugf(level, fmt...) \ 34 do { \ 35 if (::inspector::verbosity_level >= (level)) { \ 36 ::inspector::do_print_debug (__FILE__, __LINE__, __func__, fmt); \ 37 } \ 38 } while (0) 39 40 extern const char* path_basename(const char* path); 41 42 extern zx_status_t read_mem(zx_handle_t h, zx_vaddr_t vaddr, void* ptr, size_t len); 43 44 extern zx_status_t fetch_string(zx_handle_t h, zx_vaddr_t vaddr, char* ptr, size_t max); 45 46 extern zx_status_t fetch_build_id(zx_handle_t h, zx_vaddr_t base, char* buf, size_t buf_size); 47 48 } // namespace inspector 49