| // Copyright 2016 The Fuchsia Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| |
| #pragma once |
| |
| #include <stddef.h> |
| #include <zircon/types.h> |
| |
| #define MAX_BUILDID_SIZE 64 |
| |
| namespace inspector { |
| |
| extern int verbosity_level; |
| |
| extern void do_print_error(const char* file, int line, const char* fmt, ...); |
| |
| extern void do_print_zx_error(const char* file, int line, const char* what, zx_status_t status); |
| |
| #define print_error(fmt...) \ |
| do { \ |
| ::inspector::do_print_error(__FILE__, __LINE__, fmt); \ |
| } while (0) |
| |
| #define print_zx_error(what, status) \ |
| do { \ |
| ::inspector::do_print_zx_error(__FILE__, __LINE__, (what), static_cast<zx_status_t>(status)); \ |
| } while (0) |
| |
| extern void do_print_debug(const char* file, int line, const char* func, const char* fmt, ...); |
| |
| #define debugf(level, fmt...) \ |
| do { \ |
| if (::inspector::verbosity_level >= (level)) { \ |
| ::inspector::do_print_debug(__FILE__, __LINE__, __func__, fmt); \ |
| } \ |
| } while (0) |
| |
| extern const char* path_basename(const char* path); |
| |
| extern zx_status_t read_mem(zx_handle_t h, zx_vaddr_t vaddr, void* ptr, size_t len); |
| |
| extern zx_status_t fetch_string(zx_handle_t h, zx_vaddr_t vaddr, char* ptr, size_t max); |
| |
| extern zx_status_t fetch_build_id(zx_handle_t h, zx_vaddr_t base, char* buf, size_t buf_size); |
| |
| } // namespace inspector |