12#ifndef MICRO_OS_PLUS_DIAG_TRACE_H_
13#define MICRO_OS_PLUS_DIAG_TRACE_H_
17#if defined(__cplusplus)
30#if defined(__cplusplus)
46#if defined(MICRO_OS_PLUS_TRACE) || defined(MICRO_OS_PLUS_TRACE_TESTING)
48#if defined(MICRO_OS_PLUS_TRACE_TESTING)
49#define MICRO_OS_PLUS_TRACE_NAME_TESTING(name) name##_testing
51#define MICRO_OS_PLUS_TRACE_NAME_TESTING(name) name
54#if defined(__cplusplus)
85#pragma clang diagnostic push
86#pragma clang diagnostic ignored "-Wpre-c++17-compat"
90namespace micro_os_plus::MICRO_OS_PLUS_TRACE_NAME_TESTING(
trace)
93#pragma clang diagnostic pop
129 write (
const void* buf, std::size_t nbyte);
161 printf (
const char* format, ...);
173 vprintf (
const char* format, std::va_list arguments);
183 puts (
const char* s =
"");
204 dump_args (
int argc,
char* argv[],
const char* name =
"main");
211#if defined(__cplusplus)
240 const void* buf,
size_t nbyte);
261 const char* format, ...);
273 const char* format, va_list arguments);
302 int argc,
char* argv[]);
304#if defined(__cplusplus)
311#if !defined(MICRO_OS_PLUS_TRACE)
313#if defined(__cplusplus)
315#pragma GCC diagnostic push
316#if defined(__clang__)
317#pragma clang diagnostic ignored "-Wc++98-compat"
318#pragma clang diagnostic ignored "-Wc++98-c++11-c++14-compat"
330 write (
const void* buf, std::size_t nbyte);
335 printf (
const char* format, ...);
338 vprintf (
const char* format, std::va_list arguments);
341 puts (
const char* s =
"");
347 dump_args (
int argc,
char* argv[],
const char* name =
"main");
351 inline __attribute__ ((always_inline))
void
356#pragma GCC diagnostic push
357#pragma GCC diagnostic ignored "-Wunused-parameter"
359 inline __attribute__ ((always_inline)) ssize_t
360 write (
const void* buf, std::size_t nbyte)
362 return static_cast<ssize_t
> (nbyte);
365 inline __attribute__ ((always_inline))
void
370 inline __attribute__ ((always_inline))
int
371 printf (
const char* format, ...)
376 inline __attribute__ ((always_inline))
int
377 vprintf (
const char* format, std::va_list arguments)
382 inline __attribute__ ((always_inline))
int
388 inline __attribute__ ((always_inline))
int
394 inline __attribute__ ((always_inline))
void
395 dump_args (
int argc,
char* argv[],
const char* name)
399#pragma GCC diagnostic pop
403#pragma GCC diagnostic pop
407#if defined(__cplusplus)
439#if defined(__cplusplus)
443inline __attribute__ ((always_inline))
void
448#pragma GCC diagnostic push
449#pragma GCC diagnostic ignored "-Wunused-parameter"
451#pragma GCC diagnostic push
452#if defined(__cplusplus)
453#pragma GCC diagnostic ignored "-Wold-style-cast"
456inline __attribute__ ((always_inline)) ssize_t
459 return (ssize_t)(nbyte);
462inline __attribute__ ((always_inline))
void
467#pragma GCC diagnostic pop
469inline __attribute__ ((always_inline))
int
475inline __attribute__ ((always_inline))
int
481inline __attribute__ ((always_inline))
int
487inline __attribute__ ((always_inline))
int
493inline __attribute__ ((always_inline))
void
498#pragma GCC diagnostic pop
505#define trace_initialize micro_os_plus_trace_initialize
506#define trace_write micro_os_plus_trace_write
507#define trace_flush micro_os_plus_trace_flush
509#define trace_printf micro_os_plus_trace_printf
510#define trace_vprintf micro_os_plus_trace_vprintf
511#define trace_puts micro_os_plus_trace_puts
512#define trace_putchar micro_os_plus_trace_putchar
513#define trace_dump_args micro_os_plus_trace_dump_args
void micro_os_plus_trace_initialize(void)
Initialize the trace output channel.
ssize_t micro_os_plus_trace_write(const void *buf, size_t nbyte)
Write the given number of bytes to the trace output channel.
void micro_os_plus_trace_flush(void)
Flush the trace output channel.
int micro_os_plus_trace_printf(const char *format,...)
Write a formatted string to the trace output channel.
int micro_os_plus_trace_puts(const char *s)
Write the string and a line terminator to the trace output channel.
int micro_os_plus_trace_vprintf(const char *format, va_list arguments)
Write a formatted variable arguments list to the trace output channel.
int micro_os_plus_trace_putchar(int c)
Write the single character to the trace output channel.
void flush(void)
Flush the trace output channel.
void initialize(void)
Initialize the trace output channel.
ssize_t write(const void *buf, std::size_t nbyte)
Write the given number of bytes to the trace output channel.
int printf(const char *format,...)
Write a formatted string to the trace output channel.
int putchar(int c)
Write the single character to the trace output channel.
int puts(const char *s="")
Write the string and a line terminator to the trace output channel.
int vprintf(const char *format, std::va_list arguments)
Write a formatted variable arguments list to the trace output channel.
Tracing support namespace.
#define MICRO_OS_PLUS_TRACE_NAME_TESTING(name)