/* * Copyright (c) 2017 Oticon A/S * * SPDX-License-Identifier: Apache-2.0 */ #include #include "bs_tracing.h" /* * Provide the posix_print_* functions required from all POSIX arch boards * (This functions provide a lower level, more direct, print mechanism than * Zephyr's printk or logger and therefore can be relied on even if the kernel * is down. */ #if (CONFIG_NATIVE_SIMULATOR_NUMBER_MCUS > 1) static const char *cpu_prefix = "CPU"; static const unsigned int cpu_number = CONFIG_NATIVE_SIMULATOR_MCU_N; #else static const char *cpu_prefix; static const unsigned int cpu_number; #endif /* (CONFIG_NATIVE_SIMULATOR_NUMBER_MCUS > 1) */ void posix_vprint_error_and_exit(const char *format, va_list vargs) { bs_trace_vprint(BS_TRACE_ERROR, cpu_prefix, cpu_number, 0, BS_TRACE_AUTOTIME, 0, format, vargs); } void posix_vprint_warning(const char *format, va_list vargs) { bs_trace_vprint(BS_TRACE_WARNING, cpu_prefix, cpu_number, 0, BS_TRACE_AUTOTIME, 0, format, vargs); } void posix_vprint_trace(const char *format, va_list vargs) { bs_trace_vprint(BS_TRACE_RAW, cpu_prefix, cpu_number, 2, BS_TRACE_AUTOTIME, 0, format, vargs); } void posix_print_error_and_exit(const char *format, ...) { va_list variable_argsp; va_start(variable_argsp, format); posix_vprint_error_and_exit(format, variable_argsp); va_end(variable_argsp); } void posix_print_warning(const char *format, ...) { va_list variable_argsp; va_start(variable_argsp, format); bs_trace_vprint(BS_TRACE_WARNING, cpu_prefix, cpu_number, 0, BS_TRACE_AUTOTIME, 0, format, variable_argsp); va_end(variable_argsp); } void posix_print_trace(const char *format, ...) { va_list variable_argsp; va_start(variable_argsp, format); bs_trace_vprint(BS_TRACE_RAW, cpu_prefix, cpu_number, 2, BS_TRACE_AUTOTIME, 0, format, variable_argsp); va_end(variable_argsp); } int posix_trace_over_tty(int file_number) { return bs_trace_is_tty(file_number); } void nsi_vprint_error_and_exit(const char *format, va_list vargs) { bs_trace_vprint(BS_TRACE_ERROR, cpu_prefix, cpu_number, 0, BS_TRACE_AUTOTIME, 0, format, vargs); } void nsi_vprint_warning(const char *format, va_list vargs) { bs_trace_vprint(BS_TRACE_WARNING, cpu_prefix, cpu_number, 0, BS_TRACE_AUTOTIME, 0, format, vargs); } void nsi_vprint_trace(const char *format, va_list vargs) { bs_trace_vprint(BS_TRACE_RAW, cpu_prefix, cpu_number, 2, BS_TRACE_AUTOTIME, 0, format, vargs); }