2008-01-09 02:13:24 +01:00
|
|
|
/****************************************************************************
|
2009-06-17 18:28:50 +02:00
|
|
|
* include/debug.h
|
2007-02-18 00:21:28 +01:00
|
|
|
*
|
2021-02-03 11:33:49 +01:00
|
|
|
* Licensed to the Apache Software Foundation (ASF) under one or more
|
|
|
|
* contributor license agreements. See the NOTICE file distributed with
|
|
|
|
* this work for additional information regarding copyright ownership. The
|
|
|
|
* ASF licenses this file to you under the Apache License, Version 2.0 (the
|
|
|
|
* "License"); you may not use this file except in compliance with the
|
|
|
|
* License. You may obtain a copy of the License at
|
2007-02-18 00:21:28 +01:00
|
|
|
*
|
2021-02-03 11:33:49 +01:00
|
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
2007-02-18 00:21:28 +01:00
|
|
|
*
|
2021-02-03 11:33:49 +01:00
|
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
|
|
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
|
|
|
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
|
|
|
* License for the specific language governing permissions and limitations
|
|
|
|
* under the License.
|
2007-02-18 00:21:28 +01:00
|
|
|
*
|
2008-01-09 02:13:24 +01:00
|
|
|
****************************************************************************/
|
2007-02-18 00:21:28 +01:00
|
|
|
|
2009-06-17 18:28:50 +02:00
|
|
|
#ifndef __INCLUDE_DEBUG_H
|
|
|
|
#define __INCLUDE_DEBUG_H
|
2007-02-18 00:21:28 +01:00
|
|
|
|
2008-01-09 02:13:24 +01:00
|
|
|
/****************************************************************************
|
2007-02-18 00:21:28 +01:00
|
|
|
* Included Files
|
2008-01-09 02:13:24 +01:00
|
|
|
****************************************************************************/
|
2007-02-18 00:21:28 +01:00
|
|
|
|
|
|
|
#include <nuttx/config.h>
|
2008-01-09 02:13:24 +01:00
|
|
|
#include <nuttx/compiler.h>
|
2009-12-15 00:32:23 +01:00
|
|
|
|
2016-01-09 13:28:12 +01:00
|
|
|
#ifdef CONFIG_ARCH_DEBUG_H
|
2023-05-13 10:33:29 +02:00
|
|
|
# include <arch/debug.h>
|
2016-01-09 13:28:12 +01:00
|
|
|
#endif
|
2020-11-04 13:55:21 +01:00
|
|
|
#ifdef CONFIG_ARCH_CHIP_DEBUG_H
|
2023-05-13 10:33:29 +02:00
|
|
|
# include <arch/chip/debug.h>
|
2020-11-04 13:55:21 +01:00
|
|
|
#endif
|
2023-08-24 03:11:05 +02:00
|
|
|
#ifdef CONFIG_ARCH_BOARD_DEBUG_H
|
|
|
|
# include <arch/board/debug.h>
|
|
|
|
#endif
|
2016-01-09 13:28:12 +01:00
|
|
|
|
2013-01-28 22:55:16 +01:00
|
|
|
#include <syslog.h>
|
2020-12-22 10:59:19 +01:00
|
|
|
#include <sys/uio.h>
|
2007-02-18 00:21:28 +01:00
|
|
|
|
2008-01-09 02:13:24 +01:00
|
|
|
/****************************************************************************
|
2009-12-15 00:32:23 +01:00
|
|
|
* Pre-processor Definitions
|
2008-01-09 02:13:24 +01:00
|
|
|
****************************************************************************/
|
2007-02-18 00:21:28 +01:00
|
|
|
|
2009-09-15 17:44:14 +02:00
|
|
|
/* Debug macros to runtime filter the debug messages sent to the console. In
|
|
|
|
* general, there are four forms of the debug macros:
|
|
|
|
*
|
2016-06-11 20:38:37 +02:00
|
|
|
* [a-z]info() -- Outputs messages to the console similar to printf() except
|
|
|
|
* that the output is not buffered. Output is only generated if
|
|
|
|
* CONFIG_DEBUG_INFO is defined. The info macros are intended for
|
|
|
|
* verbose "informational" debug output. If you enable CONFIG_DEBUG_INFO,
|
|
|
|
* then very chatty (and often annoying) output will be generated.
|
|
|
|
*
|
2021-03-22 11:11:56 +01:00
|
|
|
* The first character of the macro name indicates the system
|
2016-06-11 20:38:37 +02:00
|
|
|
* (e.g., n=network, f=filesystm, etc.). If the first character is
|
2016-06-16 20:33:32 +02:00
|
|
|
* missing (i.e., _info()), then it is common. The common _info() macro
|
2016-06-11 20:38:37 +02:00
|
|
|
* is enabled simply with CONFIG_DEBUG_INFO. Subsystem debug requires an
|
2009-09-15 17:44:14 +02:00
|
|
|
* additional configuration setting to enable it (e.g., CONFIG_DEBUG_NET
|
2014-07-03 15:58:43 +02:00
|
|
|
* for the network, CONFIG_DEBUG_FS for the file system, etc).
|
2009-09-15 17:44:14 +02:00
|
|
|
*
|
2016-06-11 23:50:49 +02:00
|
|
|
* In general, error messages and output of importance use [a-z]err().
|
2020-05-04 12:55:11 +02:00
|
|
|
* [a-z]err() is implementation dependent but usually uses file
|
|
|
|
* descriptors. (that is a problem only because the interrupt task may
|
|
|
|
* have redirected stdout). Therefore [a-z]err() should not be used in
|
|
|
|
* interrupt handlers.
|
2009-09-15 17:44:14 +02:00
|
|
|
*
|
2016-06-11 20:38:37 +02:00
|
|
|
* [a-z]warn() -- Identical to [a-z]info() except that it also requires that
|
|
|
|
* CONFIG_DEBUG_WARN be defined. This is intended for important exception
|
|
|
|
* conditions that are potential errors (or perhaps real errors with non-
|
|
|
|
* fatal consequences).
|
|
|
|
*
|
2016-06-11 23:50:49 +02:00
|
|
|
* [a-z]err() -- Identical to [a-z]info() except that it also requires that
|
2020-05-04 12:55:11 +02:00
|
|
|
* CONFIG_DEBUG_ERROR be defined. This is intended for important
|
2021-03-22 11:11:56 +01:00
|
|
|
* error-related information that you probably don't want to suppress
|
|
|
|
* during general debugging.
|
2009-09-15 17:44:14 +02:00
|
|
|
*
|
2020-05-04 12:55:11 +02:00
|
|
|
* _alert() - is a special, high-priority, unconditional version that is
|
|
|
|
* really intended only for crash error reporting.
|
2009-09-15 17:44:14 +02:00
|
|
|
*/
|
2007-02-18 00:21:28 +01:00
|
|
|
|
2023-06-08 16:08:23 +02:00
|
|
|
#if !defined(EXTRA_FMT) && !defined(EXTRA_ARG) && \
|
|
|
|
defined(CONFIG_HAVE_FUNCTIONNAME) && !defined(CONFIG_DEFAULT_SMALL)
|
2016-06-11 20:38:37 +02:00
|
|
|
# define EXTRA_FMT "%s: "
|
|
|
|
# define EXTRA_ARG ,__FUNCTION__
|
2021-08-23 16:28:11 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef EXTRA_FMT
|
2016-06-11 20:38:37 +02:00
|
|
|
# define EXTRA_FMT
|
2021-08-23 16:28:11 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef EXTRA_ARG
|
2016-06-11 20:38:37 +02:00
|
|
|
# define EXTRA_ARG
|
2007-02-20 23:39:56 +01:00
|
|
|
#endif
|
|
|
|
|
2008-01-09 02:13:24 +01:00
|
|
|
/* Debug macros will differ depending upon if the toolchain supports
|
|
|
|
* macros with a variable number of arguments or not.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifdef CONFIG_CPP_HAVE_VARARGS
|
2020-11-20 08:48:40 +01:00
|
|
|
/* don't call syslog while performing the compiler's format check. */
|
2021-03-22 11:11:56 +01:00
|
|
|
|
2020-11-20 08:48:40 +01:00
|
|
|
# define _none(format, ...) \
|
|
|
|
do { if (0) syslog(LOG_ERR, format, ##__VA_ARGS__); } while (0)
|
2020-05-04 12:55:11 +02:00
|
|
|
#else
|
|
|
|
# define _none (void)
|
|
|
|
#endif
|
2008-01-09 02:13:24 +01:00
|
|
|
|
2016-06-16 20:33:32 +02:00
|
|
|
/* The actual logger function may be overridden in arch/debug.h if needed.
|
|
|
|
* (Currently only if the pre-processor supports variadic macros)
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef __arch_syslog
|
|
|
|
# define __arch_syslog syslog
|
|
|
|
#endif
|
|
|
|
|
2020-05-04 12:55:11 +02:00
|
|
|
#if !defined(CONFIG_DEBUG_ALERT)
|
|
|
|
# define _alert _none
|
|
|
|
#elif defined(CONFIG_CPP_HAVE_VARARGS)
|
2016-06-21 06:38:54 +02:00
|
|
|
# define _alert(format, ...) \
|
2024-04-22 12:00:38 +02:00
|
|
|
__arch_syslog(LOG_ALERT, EXTRA_FMT format EXTRA_ARG, ##__VA_ARGS__)
|
2016-06-21 06:38:54 +02:00
|
|
|
#endif
|
2016-06-14 17:07:53 +02:00
|
|
|
|
2020-05-04 12:55:11 +02:00
|
|
|
#if !defined(CONFIG_DEBUG_ERROR)
|
|
|
|
# define _err _none
|
|
|
|
#elif defined(CONFIG_CPP_HAVE_VARARGS)
|
2020-01-31 19:07:39 +01:00
|
|
|
# define _err(format, ...) \
|
2016-06-11 20:38:37 +02:00
|
|
|
__arch_syslog(LOG_ERR, EXTRA_FMT format EXTRA_ARG, ##__VA_ARGS__)
|
|
|
|
#endif
|
|
|
|
|
2020-05-04 12:55:11 +02:00
|
|
|
#if !defined(CONFIG_DEBUG_WARN)
|
|
|
|
# define _warn _none
|
|
|
|
#elif defined(CONFIG_CPP_HAVE_VARARGS)
|
2016-06-16 20:33:32 +02:00
|
|
|
# define _warn(format, ...) \
|
2016-06-14 17:07:53 +02:00
|
|
|
__arch_syslog(LOG_WARNING, EXTRA_FMT format EXTRA_ARG, ##__VA_ARGS__)
|
2016-06-21 06:38:54 +02:00
|
|
|
#endif
|
2007-02-18 00:21:28 +01:00
|
|
|
|
2020-05-04 12:55:11 +02:00
|
|
|
#if !defined(CONFIG_DEBUG_INFO)
|
|
|
|
# define _info _none
|
|
|
|
#elif defined(CONFIG_CPP_HAVE_VARARGS)
|
2016-06-16 20:33:32 +02:00
|
|
|
# define _info(format, ...) \
|
2016-06-14 17:07:53 +02:00
|
|
|
__arch_syslog(LOG_INFO, EXTRA_FMT format EXTRA_ARG, ##__VA_ARGS__)
|
2008-01-09 02:13:24 +01:00
|
|
|
#endif
|
|
|
|
|
|
|
|
/* Subsystem specific debug */
|
|
|
|
|
2016-06-12 21:08:23 +02:00
|
|
|
#ifdef CONFIG_DEBUG_MM_ERROR
|
2016-06-16 20:33:32 +02:00
|
|
|
# define merr _err
|
2008-01-09 02:13:24 +01:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define merr _none
|
2016-06-12 21:08:23 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_MM_WARN
|
2016-06-16 20:33:32 +02:00
|
|
|
# define mwarn _warn
|
2016-06-12 21:08:23 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define mwarn _none
|
2016-06-12 21:08:23 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_MM_INFO
|
2016-06-16 20:33:32 +02:00
|
|
|
# define minfo _info
|
2016-06-12 21:08:23 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define minfo _none
|
2008-01-09 02:13:24 +01:00
|
|
|
#endif
|
|
|
|
|
2016-06-12 21:08:23 +02:00
|
|
|
#ifdef CONFIG_DEBUG_SCHED_ERROR
|
2016-06-16 20:33:32 +02:00
|
|
|
# define serr _err
|
2008-01-09 02:13:24 +01:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define serr _none
|
2016-06-12 21:08:23 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_SCHED_WARN
|
2016-06-16 20:33:32 +02:00
|
|
|
# define swarn _warn
|
2016-06-12 21:08:23 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define swarn _none
|
2016-06-12 21:08:23 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_SCHED_INFO
|
2016-06-16 20:33:32 +02:00
|
|
|
# define sinfo _info
|
2016-06-12 21:08:23 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define sinfo _none
|
2008-01-09 02:13:24 +01:00
|
|
|
#endif
|
|
|
|
|
2016-06-16 16:12:38 +02:00
|
|
|
#ifdef CONFIG_DEBUG_SYSCALL_ERROR
|
2016-06-16 20:33:32 +02:00
|
|
|
# define svcerr _err
|
2016-06-16 16:12:38 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define svcerr _none
|
2016-06-16 16:12:38 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_SYSCALL_WARN
|
2016-06-16 20:33:32 +02:00
|
|
|
# define svcwarn _warn
|
2016-06-16 16:12:38 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define svcwarn _none
|
2016-06-16 16:12:38 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_SYSCALL_INFO
|
2016-06-16 20:33:32 +02:00
|
|
|
# define svcinfo _info
|
2016-06-16 16:12:38 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define svcinfo _none
|
2016-06-16 16:12:38 +02:00
|
|
|
#endif
|
|
|
|
|
2016-06-12 21:08:23 +02:00
|
|
|
#ifdef CONFIG_DEBUG_PAGING_ERROR
|
2016-06-16 20:33:32 +02:00
|
|
|
# define pgerr _err
|
2010-08-22 05:44:18 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define pgerr _none
|
2016-06-12 21:08:23 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_PAGING_WARN
|
2016-06-16 20:33:32 +02:00
|
|
|
# define pgwarn _warn
|
2016-06-12 21:08:23 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define pgwarn _none
|
2016-06-12 21:08:23 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_PAGING_INFO
|
2016-06-16 20:33:32 +02:00
|
|
|
# define pginfo _info
|
2016-06-12 21:08:23 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define pginfo _none
|
2010-08-22 05:44:18 +02:00
|
|
|
#endif
|
|
|
|
|
2016-06-12 21:08:23 +02:00
|
|
|
#ifdef CONFIG_DEBUG_NET_ERROR
|
2016-06-16 20:33:32 +02:00
|
|
|
# define nerr _err
|
2008-01-09 02:13:24 +01:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define nerr _none
|
2016-06-12 21:08:23 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_NET_WARN
|
2016-06-16 20:33:32 +02:00
|
|
|
# define nwarn _warn
|
2016-06-12 21:08:23 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define nwarn _none
|
2016-06-12 21:08:23 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_NET_INFO
|
2016-06-16 20:33:32 +02:00
|
|
|
# define ninfo _info
|
2016-06-12 21:08:23 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define ninfo _none
|
2008-01-09 02:13:24 +01:00
|
|
|
#endif
|
|
|
|
|
2017-07-23 15:17:56 +02:00
|
|
|
#ifdef CONFIG_DEBUG_POWER_ERROR
|
|
|
|
# define pwrerr _err
|
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define pwrerr _none
|
2017-07-23 15:17:56 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_POWER_WARN
|
|
|
|
# define pwrwarn _warn
|
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define pwrwarn _none
|
2017-07-23 15:17:56 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_POWER_INFO
|
|
|
|
# define pwrinfo _info
|
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define pwrinfo _none
|
2017-07-23 15:17:56 +02:00
|
|
|
#endif
|
|
|
|
|
2021-10-25 16:43:10 +02:00
|
|
|
#ifdef CONFIG_DEBUG_BATTERY_ERROR
|
|
|
|
# define baterr _err
|
|
|
|
#else
|
|
|
|
# define baterr _none
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_BATTERY_WARN
|
|
|
|
# define batwarn _warn
|
|
|
|
#else
|
|
|
|
# define batwarn _none
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_BATTERY_INFO
|
|
|
|
# define batinfo _info
|
|
|
|
#else
|
|
|
|
# define batinfo _none
|
|
|
|
#endif
|
|
|
|
|
2017-03-15 21:30:24 +01:00
|
|
|
#ifdef CONFIG_DEBUG_WIRELESS_ERROR
|
|
|
|
# define wlerr _err
|
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define wlerr _none
|
2017-03-15 21:30:24 +01:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_WIRELESS_WARN
|
|
|
|
# define wlwarn _warn
|
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define wlwarn _none
|
2017-03-15 21:30:24 +01:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_WIRELESS_INFO
|
|
|
|
# define wlinfo _info
|
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define wlinfo _none
|
2017-03-15 21:30:24 +01:00
|
|
|
#endif
|
|
|
|
|
2016-06-12 21:08:23 +02:00
|
|
|
#ifdef CONFIG_DEBUG_FS_ERROR
|
2016-06-16 20:33:32 +02:00
|
|
|
# define ferr _err
|
2014-07-03 15:58:43 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define ferr _none
|
2016-06-12 21:08:23 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_FS_WARN
|
2016-06-16 20:33:32 +02:00
|
|
|
# define fwarn _warn
|
2016-06-12 21:08:23 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define fwarn _none
|
2016-06-12 21:08:23 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_FS_INFO
|
2016-06-16 20:33:32 +02:00
|
|
|
# define finfo _info
|
2016-06-12 21:08:23 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define finfo _none
|
2014-07-03 15:58:43 +02:00
|
|
|
#endif
|
|
|
|
|
2019-08-19 19:27:23 +02:00
|
|
|
#ifdef CONFIG_DEBUG_CONTACTLESS_ERROR
|
|
|
|
# define ctlserr _err
|
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define ctlserr _none
|
2019-08-19 19:27:23 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_CONTACTLESS_WARN
|
|
|
|
# define ctlswarn _warn
|
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define ctlswarn _none
|
2019-08-19 19:27:23 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_CONTACTLESS_INFO
|
|
|
|
# define ctlsinfo _info
|
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define ctlsinfo _none
|
2019-08-19 19:27:23 +02:00
|
|
|
#endif
|
|
|
|
|
2016-06-12 21:08:23 +02:00
|
|
|
#ifdef CONFIG_DEBUG_CRYPTO_ERROR
|
2016-06-16 20:33:32 +02:00
|
|
|
# define crypterr _err
|
2008-01-09 02:13:24 +01:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define crypterr _none
|
2016-06-12 21:08:23 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_CRYPTO_WARN
|
2016-06-16 20:33:32 +02:00
|
|
|
# define cryptwarn _warn
|
2016-06-12 21:08:23 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define cryptwarn _none
|
2008-01-09 02:13:24 +01:00
|
|
|
#endif
|
|
|
|
|
2016-06-12 21:08:23 +02:00
|
|
|
#ifdef CONFIG_DEBUG_CRYPTO_INFO
|
2016-06-16 20:33:32 +02:00
|
|
|
# define cryptinfo _info
|
2016-06-12 21:08:23 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define cryptinfo _none
|
2016-06-12 21:08:23 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_INPUT_ERROR
|
2016-06-16 20:33:32 +02:00
|
|
|
# define ierr _err
|
2011-07-29 20:51:56 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define ierr _none
|
2016-06-12 21:08:23 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_INPUT_WARN
|
2016-06-16 20:33:32 +02:00
|
|
|
# define iwarn _warn
|
2016-06-12 21:08:23 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define iwarn _none
|
2016-06-12 21:08:23 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_INPUT_INFO
|
2016-06-16 20:33:32 +02:00
|
|
|
# define iinfo _info
|
2016-06-12 21:08:23 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define iinfo _none
|
2011-07-29 20:51:56 +02:00
|
|
|
#endif
|
|
|
|
|
2016-06-12 21:08:23 +02:00
|
|
|
#ifdef CONFIG_DEBUG_ANALOG_ERROR
|
2016-06-16 20:33:32 +02:00
|
|
|
# define aerr _err
|
2011-12-14 20:12:00 +01:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define aerr _none
|
2016-06-12 21:08:23 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_ANALOG_WARN
|
2016-06-16 20:33:32 +02:00
|
|
|
# define awarn _warn
|
2016-06-12 21:08:23 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define awarn _none
|
2016-06-12 21:08:23 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_ANALOG_INFO
|
2016-06-16 20:33:32 +02:00
|
|
|
# define ainfo _info
|
2016-06-12 21:08:23 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define ainfo _none
|
2011-12-14 20:12:00 +01:00
|
|
|
#endif
|
|
|
|
|
2016-06-15 23:45:27 +02:00
|
|
|
#ifdef CONFIG_DEBUG_CAN_ERROR
|
2016-06-16 20:33:32 +02:00
|
|
|
# define canerr _err
|
2016-06-15 23:45:27 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define canerr _none
|
2016-06-15 23:45:27 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_CAN_WARN
|
2016-06-16 20:33:32 +02:00
|
|
|
# define canwarn _warn
|
2016-06-15 23:45:27 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define canwarn _none
|
2016-06-15 23:45:27 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_CAN_INFO
|
2016-06-16 20:33:32 +02:00
|
|
|
# define caninfo _info
|
2016-06-15 23:45:27 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define caninfo _none
|
2016-06-15 23:45:27 +02:00
|
|
|
#endif
|
|
|
|
|
2016-06-12 21:08:23 +02:00
|
|
|
#ifdef CONFIG_DEBUG_GRAPHICS_ERROR
|
2016-06-16 20:33:32 +02:00
|
|
|
# define gerr _err
|
2008-11-25 01:09:14 +01:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define gerr _none
|
2016-06-12 21:08:23 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_GRAPHICS_WARN
|
2016-06-16 20:33:32 +02:00
|
|
|
# define gwarn _warn
|
2016-06-12 21:08:23 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define gwarn _none
|
2016-06-12 21:08:23 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_GRAPHICS_INFO
|
2016-06-16 20:33:32 +02:00
|
|
|
# define ginfo _info
|
2016-06-12 21:08:23 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define ginfo _none
|
2008-11-25 01:09:14 +01:00
|
|
|
#endif
|
|
|
|
|
2016-06-12 21:08:23 +02:00
|
|
|
#ifdef CONFIG_DEBUG_BINFMT_ERROR
|
2016-06-16 20:33:32 +02:00
|
|
|
# define berr _err
|
2009-06-17 18:28:50 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define berr _none
|
2016-06-12 21:08:23 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_BINFMT_WARN
|
2016-06-16 20:33:32 +02:00
|
|
|
# define bwarn _warn
|
2016-06-12 21:08:23 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define bwarn _none
|
2016-06-12 21:08:23 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_BINFMT_INFO
|
2016-06-16 20:33:32 +02:00
|
|
|
# define binfo _info
|
2016-06-12 21:08:23 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define binfo _none
|
2009-06-17 18:28:50 +02:00
|
|
|
#endif
|
|
|
|
|
2016-06-12 21:08:23 +02:00
|
|
|
#ifdef CONFIG_DEBUG_LIB_ERROR
|
2016-06-16 20:33:32 +02:00
|
|
|
# define lerr _err
|
2008-01-09 02:13:24 +01:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define lerr _none
|
2016-06-12 21:08:23 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_LIB_WARN
|
2016-06-16 20:33:32 +02:00
|
|
|
# define lwarn _warn
|
2016-06-12 21:08:23 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define lwarn _none
|
2016-06-12 21:08:23 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_LIB_INFO
|
2016-06-16 20:33:32 +02:00
|
|
|
# define linfo _info
|
2016-06-12 21:08:23 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define linfo _none
|
2008-01-09 02:13:24 +01:00
|
|
|
#endif
|
|
|
|
|
2016-06-12 21:08:23 +02:00
|
|
|
#ifdef CONFIG_DEBUG_AUDIO_ERROR
|
2016-06-16 20:33:32 +02:00
|
|
|
# define auderr _err
|
2013-05-19 23:12:28 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define auderr _none
|
2016-06-12 21:08:23 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_AUDIO_WARN
|
2016-06-16 20:33:32 +02:00
|
|
|
# define audwarn _warn
|
2016-06-12 21:08:23 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define audwarn _none
|
2016-06-12 21:08:23 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_AUDIO_INFO
|
2016-06-16 20:33:32 +02:00
|
|
|
# define audinfo _info
|
2016-06-12 21:08:23 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define audinfo _none
|
2013-05-19 23:12:28 +02:00
|
|
|
#endif
|
|
|
|
|
2016-06-15 16:35:22 +02:00
|
|
|
#ifdef CONFIG_DEBUG_DMA_ERROR
|
2016-06-16 20:33:32 +02:00
|
|
|
# define dmaerr _err
|
2016-06-15 16:35:22 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define dmaerr _none
|
2016-06-15 16:35:22 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_DMA_WARN
|
2016-06-16 20:33:32 +02:00
|
|
|
# define dmawarn _warn
|
2016-06-15 16:35:22 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define dmawarn _none
|
2016-06-15 16:35:22 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_DMA_INFO
|
2016-06-16 20:33:32 +02:00
|
|
|
# define dmainfo _info
|
2016-06-15 16:35:22 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define dmainfo _none
|
2016-06-15 16:35:22 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_IRQ_ERROR
|
2016-06-16 20:33:32 +02:00
|
|
|
# define irqerr _err
|
2016-06-15 16:35:22 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define irqerr _none
|
2016-06-15 16:35:22 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_IRQ_WARN
|
2016-06-16 20:33:32 +02:00
|
|
|
# define irqwarn _warn
|
2016-06-15 16:35:22 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define irqwarn _none
|
2016-06-15 16:35:22 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_IRQ_INFO
|
2016-06-16 20:33:32 +02:00
|
|
|
# define irqinfo _info
|
2016-06-15 16:35:22 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define irqinfo _none
|
2016-06-15 16:35:22 +02:00
|
|
|
#endif
|
|
|
|
|
2016-06-15 19:40:33 +02:00
|
|
|
#ifdef CONFIG_DEBUG_LCD_ERROR
|
2016-06-16 20:33:32 +02:00
|
|
|
# define lcderr _err
|
2016-06-15 19:40:33 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define lcderr _none
|
2016-06-15 19:40:33 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_LCD_WARN
|
2016-06-16 20:33:32 +02:00
|
|
|
# define lcdwarn _warn
|
2016-06-15 19:40:33 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define lcdwarn _none
|
2016-06-15 19:40:33 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_LCD_INFO
|
2016-06-16 20:33:32 +02:00
|
|
|
# define lcdinfo _info
|
2016-06-15 19:40:33 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define lcdinfo _none
|
2016-06-15 19:40:33 +02:00
|
|
|
#endif
|
|
|
|
|
2016-06-15 22:12:19 +02:00
|
|
|
#ifdef CONFIG_DEBUG_LEDS_ERROR
|
2016-06-16 20:33:32 +02:00
|
|
|
# define lederr _err
|
2016-06-15 22:12:19 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define lederr _none
|
2016-06-15 22:12:19 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_LEDS_WARN
|
2016-06-16 20:33:32 +02:00
|
|
|
# define ledwarn _warn
|
2016-06-15 22:12:19 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define ledwarn _none
|
2016-06-15 22:12:19 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_LEDS_INFO
|
2016-06-16 20:33:32 +02:00
|
|
|
# define ledinfo _info
|
2016-06-15 22:12:19 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define ledinfo _none
|
2016-06-15 22:12:19 +02:00
|
|
|
#endif
|
|
|
|
|
2016-06-15 17:20:23 +02:00
|
|
|
#ifdef CONFIG_DEBUG_GPIO_ERROR
|
2016-06-16 20:33:32 +02:00
|
|
|
# define gpioerr _err
|
2016-06-15 17:20:23 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define gpioerr _none
|
2016-06-15 17:20:23 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_GPIO_WARN
|
2016-06-16 20:33:32 +02:00
|
|
|
# define gpiowarn _warn
|
2016-06-15 17:20:23 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define gpiowarn _none
|
2016-06-15 17:20:23 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_GPIO_INFO
|
2016-06-16 20:33:32 +02:00
|
|
|
# define gpioinfo _info
|
2016-06-15 17:20:23 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define gpioinfo _none
|
2016-06-15 17:20:23 +02:00
|
|
|
#endif
|
|
|
|
|
2016-06-16 00:30:12 +02:00
|
|
|
#ifdef CONFIG_DEBUG_I2C_ERROR
|
2016-06-16 20:33:32 +02:00
|
|
|
# define i2cerr _err
|
2016-06-16 00:30:12 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define i2cerr _none
|
2016-06-16 00:30:12 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_I2C_WARN
|
2016-06-16 20:33:32 +02:00
|
|
|
# define i2cwarn _warn
|
2016-06-16 00:30:12 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define i2cwarn _none
|
2016-06-16 00:30:12 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_I2C_INFO
|
2016-06-16 20:33:32 +02:00
|
|
|
# define i2cinfo _info
|
2016-06-16 00:30:12 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define i2cinfo _none
|
2016-06-16 00:30:12 +02:00
|
|
|
#endif
|
|
|
|
|
2016-06-16 00:54:01 +02:00
|
|
|
#ifdef CONFIG_DEBUG_I2S_ERROR
|
2016-06-16 20:33:32 +02:00
|
|
|
# define i2serr _err
|
2016-06-16 00:54:01 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define i2serr _none
|
2016-06-16 00:54:01 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_I2S_WARN
|
2016-06-16 20:33:32 +02:00
|
|
|
# define i2swarn _warn
|
2016-06-16 00:54:01 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define i2swarn _none
|
2016-06-16 00:54:01 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_I2S_INFO
|
2016-06-16 20:33:32 +02:00
|
|
|
# define i2sinfo _info
|
2016-06-16 00:54:01 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define i2sinfo _none
|
2016-06-16 00:54:01 +02:00
|
|
|
#endif
|
|
|
|
|
2016-06-16 01:23:56 +02:00
|
|
|
#ifdef CONFIG_DEBUG_PWM_ERROR
|
2016-06-16 20:33:32 +02:00
|
|
|
# define pwmerr _err
|
2016-06-16 01:23:56 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define pwmerr _none
|
2016-06-16 01:23:56 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_PWM_WARN
|
2016-06-16 20:33:32 +02:00
|
|
|
# define pwmwarn _warn
|
2016-06-16 01:23:56 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define pwmwarn _none
|
2016-06-16 01:23:56 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_PWM_INFO
|
2016-06-16 20:33:32 +02:00
|
|
|
# define pwminfo _info
|
2016-06-16 01:23:56 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define pwminfo _none
|
2016-06-16 01:23:56 +02:00
|
|
|
#endif
|
|
|
|
|
2023-08-08 04:37:26 +02:00
|
|
|
#ifdef CONFIG_DEBUG_CAPTURE_ERROR
|
|
|
|
# define cperr _err
|
|
|
|
#else
|
|
|
|
# define cperr _none
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_CAPTURE_WARN
|
|
|
|
# define cpwarn _warn
|
|
|
|
#else
|
|
|
|
# define cpwarn _none
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_CAPTURE_INFO
|
|
|
|
# define cpinfo _info
|
|
|
|
#else
|
|
|
|
# define cpinfo _none
|
|
|
|
#endif
|
|
|
|
|
2020-10-23 10:36:11 +02:00
|
|
|
#ifdef CONFIG_DEBUG_RC_ERROR
|
|
|
|
# define rcerr _err
|
|
|
|
#else
|
|
|
|
# define rcerr _none
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_RC_WARN
|
|
|
|
# define rcwarn _warn
|
|
|
|
#else
|
|
|
|
# define rcwarn _none
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_RC_INFO
|
|
|
|
# define rcinfo _info
|
|
|
|
#else
|
|
|
|
# define rcinfo _none
|
|
|
|
#endif
|
|
|
|
|
2023-07-19 14:17:15 +02:00
|
|
|
#ifdef CONFIG_DEBUG_REGMAP_ERROR
|
|
|
|
# define regmaperr _err
|
|
|
|
#else
|
|
|
|
# define regmaperr _none
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_REGMAP_WARN
|
|
|
|
# define regmapwarn _warn
|
|
|
|
#else
|
|
|
|
# define regmapwarn _none
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_REGMAP_INFO
|
|
|
|
# define regmapinfo _info
|
|
|
|
#else
|
|
|
|
# define regmapinfo _none
|
|
|
|
#endif
|
|
|
|
|
2023-07-01 17:18:07 +02:00
|
|
|
#ifdef CONFIG_DEBUG_RMT_ERROR
|
|
|
|
# define rmterr _err
|
|
|
|
#else
|
|
|
|
# define rmterr _none
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_RMT_WARN
|
|
|
|
# define rmtwarn _warn
|
|
|
|
#else
|
|
|
|
# define rmtwarn _none
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_RMT_INFO
|
|
|
|
# define rmtinfo _info
|
|
|
|
#else
|
|
|
|
# define rmtinfo _none
|
|
|
|
#endif
|
|
|
|
|
2016-06-16 15:39:23 +02:00
|
|
|
#ifdef CONFIG_DEBUG_RTC_ERROR
|
2016-06-16 20:33:32 +02:00
|
|
|
# define rtcerr _err
|
2016-06-16 15:39:23 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define rtcerr _none
|
2016-06-16 15:39:23 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_RTC_WARN
|
2016-06-16 20:33:32 +02:00
|
|
|
# define rtcwarn _warn
|
2016-06-16 15:39:23 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define rtcwarn _none
|
2016-06-16 15:39:23 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_RTC_INFO
|
2016-06-16 20:33:32 +02:00
|
|
|
# define rtcinfo _info
|
2016-06-16 15:39:23 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define rtcinfo _none
|
2016-06-16 15:39:23 +02:00
|
|
|
#endif
|
|
|
|
|
2016-06-16 15:50:54 +02:00
|
|
|
#ifdef CONFIG_DEBUG_MEMCARD_ERROR
|
2016-06-16 20:33:32 +02:00
|
|
|
# define mcerr _err
|
2016-06-16 15:50:54 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define mcerr _none
|
2016-06-16 15:50:54 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_MEMCARD_WARN
|
2016-06-16 20:33:32 +02:00
|
|
|
# define mcwarn _warn
|
2016-06-16 15:50:54 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define mcwarn _none
|
2016-06-16 15:50:54 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_MEMCARD_INFO
|
2016-06-16 20:33:32 +02:00
|
|
|
# define mcinfo _info
|
2016-06-16 15:50:54 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define mcinfo _none
|
2016-06-16 15:50:54 +02:00
|
|
|
#endif
|
|
|
|
|
2016-06-15 18:41:13 +02:00
|
|
|
#ifdef CONFIG_DEBUG_SENSORS_ERROR
|
2016-06-16 20:33:32 +02:00
|
|
|
# define snerr _err
|
2016-06-15 18:41:13 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define snerr _none
|
2016-06-15 18:41:13 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_SENSORS_WARN
|
2016-06-16 20:33:32 +02:00
|
|
|
# define snwarn _warn
|
2016-06-15 18:41:13 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define snwarn _none
|
2016-06-15 18:41:13 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_SENSORS_INFO
|
2016-06-16 20:33:32 +02:00
|
|
|
# define sninfo _info
|
2016-06-15 18:41:13 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define sninfo _none
|
2016-06-15 18:41:13 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_SPI_ERROR
|
2016-06-16 20:33:32 +02:00
|
|
|
# define spierr _err
|
2016-06-15 18:41:13 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define spierr _none
|
2016-06-15 18:41:13 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_SPI_WARN
|
2016-06-16 20:33:32 +02:00
|
|
|
# define spiwarn _warn
|
2016-06-15 18:41:13 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define spiwarn _none
|
2016-06-15 18:41:13 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_SPI_INFO
|
2016-06-16 20:33:32 +02:00
|
|
|
# define spiinfo _info
|
2016-06-15 18:41:13 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define spiinfo _none
|
2016-06-15 18:41:13 +02:00
|
|
|
#endif
|
|
|
|
|
2023-10-13 17:10:56 +02:00
|
|
|
#ifdef CONFIG_DEBUG_THERMAL_ERROR
|
|
|
|
# define therr _err
|
|
|
|
#else
|
|
|
|
# define therr _none
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_THERMAL_WARN
|
|
|
|
# define thwarn _warn
|
|
|
|
#else
|
|
|
|
# define thwarn _none
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_THERMAL_INFO
|
|
|
|
# define thinfo _info
|
|
|
|
#else
|
|
|
|
# define thinfo _none
|
|
|
|
#endif
|
|
|
|
|
2016-06-16 15:16:25 +02:00
|
|
|
#ifdef CONFIG_DEBUG_TIMER_ERROR
|
2016-06-16 20:33:32 +02:00
|
|
|
# define tmrerr _err
|
2016-06-16 15:16:25 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define tmrerr _none
|
2016-06-16 15:16:25 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_TIMER_WARN
|
2016-06-16 20:33:32 +02:00
|
|
|
# define tmrwarn _warn
|
2016-06-16 15:16:25 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define tmrwarn _none
|
2016-06-16 15:16:25 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_TIMER_INFO
|
2016-06-16 20:33:32 +02:00
|
|
|
# define tmrinfo _info
|
2016-06-16 15:16:25 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define tmrinfo _none
|
2016-06-16 15:16:25 +02:00
|
|
|
#endif
|
|
|
|
|
2016-06-16 14:28:04 +02:00
|
|
|
#ifdef CONFIG_DEBUG_USB_ERROR
|
2016-06-16 20:33:32 +02:00
|
|
|
# define uerr _err
|
2016-06-16 14:28:04 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define uerr _none
|
2016-06-16 14:28:04 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_USB_WARN
|
2016-06-16 20:33:32 +02:00
|
|
|
# define uwarn _warn
|
2016-06-16 14:28:04 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define uwarn _none
|
2016-06-16 14:28:04 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_USB_INFO
|
2016-06-16 20:33:32 +02:00
|
|
|
# define uinfo _info
|
2016-06-16 14:28:04 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define uinfo _none
|
2016-06-16 14:28:04 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_WATCHDOG_ERROR
|
2016-06-16 20:33:32 +02:00
|
|
|
# define wderr _err
|
2016-06-16 14:28:04 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define wderr _none
|
2016-06-16 14:28:04 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_WATCHDOG_WARN
|
2016-06-16 20:33:32 +02:00
|
|
|
# define wdwarn _warn
|
2016-06-16 14:28:04 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define wdwarn _none
|
2016-06-16 14:28:04 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_WATCHDOG_INFO
|
2016-06-16 20:33:32 +02:00
|
|
|
# define wdinfo _info
|
2016-06-16 14:28:04 +02:00
|
|
|
#else
|
2020-05-04 12:55:11 +02:00
|
|
|
# define wdinfo _none
|
2016-06-16 14:28:04 +02:00
|
|
|
#endif
|
|
|
|
|
2021-04-01 08:56:42 +02:00
|
|
|
#ifdef CONFIG_DEBUG_MOTOR_ERROR
|
|
|
|
# define mtrerr _err
|
|
|
|
#else
|
|
|
|
# define mtrerr _none
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_MOTOR_WARN
|
|
|
|
# define mtrwarn _warn
|
|
|
|
#else
|
|
|
|
# define mtrwarn _none
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_MOTOR_INFO
|
|
|
|
# define mtrinfo _info
|
|
|
|
#else
|
|
|
|
# define mtrinfo _none
|
|
|
|
#endif
|
|
|
|
|
2023-10-11 09:46:50 +02:00
|
|
|
#ifdef CONFIG_DEBUG_STEPPER_ERROR
|
|
|
|
# define stperr _err
|
|
|
|
#else
|
|
|
|
# define stperr _none
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_STEPPER_WARN
|
|
|
|
# define stpwarn _warn
|
|
|
|
#else
|
|
|
|
# define stpwarn _none
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_STEPPER_INFO
|
|
|
|
# define stpinfo _info
|
|
|
|
#else
|
|
|
|
# define stpinfo _none
|
|
|
|
#endif
|
|
|
|
|
2021-09-15 05:06:31 +02:00
|
|
|
#ifdef CONFIG_DEBUG_VIDEO_ERROR
|
|
|
|
# define verr _err
|
|
|
|
#else
|
|
|
|
# define verr _none
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_VIDEO_WARN
|
|
|
|
# define vwarn _warn
|
|
|
|
#else
|
|
|
|
# define vwarn _none
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_VIDEO_INFO
|
|
|
|
# define vinfo _info
|
|
|
|
#else
|
|
|
|
# define vinfo _none
|
|
|
|
#endif
|
|
|
|
|
2022-11-23 12:45:05 +01:00
|
|
|
#ifdef CONFIG_DEBUG_VIRTIO_ERROR
|
|
|
|
# define vrterr _err
|
|
|
|
#else
|
|
|
|
# define vrterr _none
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_VIRTIO_WARN
|
|
|
|
# define vrtwarn _warn
|
|
|
|
#else
|
|
|
|
# define vrtwarn _none
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_VIRTIO_INFO
|
|
|
|
# define vrtinfo _info
|
|
|
|
#else
|
|
|
|
# define vrtinfo _none
|
|
|
|
#endif
|
|
|
|
|
2023-06-06 10:32:15 +02:00
|
|
|
#ifdef CONFIG_DEBUG_RESET_ERROR
|
|
|
|
# define rsterr _err
|
|
|
|
#else
|
|
|
|
# define rsterr _none
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_RESET_WARN
|
|
|
|
# define rstwarn _warn
|
|
|
|
#else
|
|
|
|
# define rstwarn _none
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_RESET_INFO
|
|
|
|
# define rstinfo _info
|
|
|
|
#else
|
|
|
|
# define rstinfo _none
|
|
|
|
#endif
|
|
|
|
|
2023-09-21 13:58:11 +02:00
|
|
|
#ifdef CONFIG_DEBUG_IPC_ERROR
|
|
|
|
# define ipcerr _err
|
|
|
|
#else
|
|
|
|
# define ipcerr _none
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_IPC_WARN
|
|
|
|
# define ipcwarn _warn
|
|
|
|
#else
|
|
|
|
# define ipcwarn _none
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_IPC_INFO
|
|
|
|
# define ipcinfo _info
|
|
|
|
#else
|
|
|
|
# define ipcinfo _none
|
|
|
|
#endif
|
|
|
|
|
Various fixes for PCI work
Squashed commits:
1. Porting prior PCI work in place of jailhouse code
At this point the PCI enumeration works for x86_64 including over
pci-pci bridges.
Running QEMU with this configuration we see the bridge and the
device on the bridge. It also detected the qemu test device
qemu-system-x86_64 \
-cpu host,+pcid,+x2apic,+tsc-deadline,+xsave,+rdrand \
--enable-kvm -smp 1 -m 2G -cdrom boot.iso --nographic -no-reboot \
-device pci-testdev \
-device pci-bridge,id=bridge0,chassis_nr=2 \
-device e1000,bus=bridge0,addr=0x3
qemu_pci_init: Initializing PCI Bus
pci_probe_device: [00:00.0] Found 8086:1237, class/revision 06000002
pci_probe_device: [00:01.1] Found 8086:7010, class/revision 01018000
pci_probe_device: [00:01.2] Found ffff:ffff, class/revision ffffffff
pci_probe_device: [00:01.3] Found 8086:7113, class/revision 06800003
pci_probe_device: [00:01.4] Found ffff:ffff, class/revision ffffffff
pci_probe_device: [00:01.5] Found ffff:ffff, class/revision ffffffff
pci_probe_device: [00:01.6] Found ffff:ffff, class/revision ffffffff
pci_probe_device: [00:01.7] Found ffff:ffff, class/revision ffffffff
pci_probe_device: [00:02.0] Found 1234:1111, class/revision 03000002
pci_probe_device: [00:03.0] Found 8086:100e, class/revision 02000003
pci_probe_device: [00:04.0] Found 1b36:0005, class/revision 00ff0000
pci_probe_device: [00:04.0] Probing
pci_check_pci_bridge: [00:05.0] Found Bridge
pci_probe_device: [01:03.0] Found 8086:100e, class/revision 02000003
pci_probe_device: [00:05.0] Found 1b36:0001, class/revision 06040000
2. Remove unused CONFIG_PCI_MAX_BDF option
3. Add a workaround for Jailhouse pci scanning
4. Extend BAR parsing and handle PIO and MMIO for pci-testdev
Signed-off-by: Brennan Ashton <bashton@brennanashton.com>
5. PCI: Add initial support for QEMU 'edu' test device
Signed-off-by: Brennan Ashton <bashton@brennanashton.com>
6. Bring up PCI later in boot process
Signed-off-by: Brennan Ashton <bashton@brennanashton.com>
7. Add ISR and DMA support to QEMU edu test pci device
Signed-off-by: Brennan Ashton <bashton@brennanashton.com>
8. Fix bad function prototype definition in qemu_edu
9. intel64: Add a pci test configuration and instructions
Signed-off-by: Brennan Ashton <bashton@brennanashton.com>
10. PCI: Fix issue in identification of 64bit bar
Signed-off-by: Brennan Ashton <bashton@brennanashton.com>
2020-05-07 11:59:29 +02:00
|
|
|
#ifdef CONFIG_DEBUG_PCI_ERROR
|
2020-05-04 11:44:11 +02:00
|
|
|
# define pcierr _err
|
|
|
|
#else
|
|
|
|
# define pcierr _none
|
|
|
|
#endif
|
|
|
|
|
Various fixes for PCI work
Squashed commits:
1. Porting prior PCI work in place of jailhouse code
At this point the PCI enumeration works for x86_64 including over
pci-pci bridges.
Running QEMU with this configuration we see the bridge and the
device on the bridge. It also detected the qemu test device
qemu-system-x86_64 \
-cpu host,+pcid,+x2apic,+tsc-deadline,+xsave,+rdrand \
--enable-kvm -smp 1 -m 2G -cdrom boot.iso --nographic -no-reboot \
-device pci-testdev \
-device pci-bridge,id=bridge0,chassis_nr=2 \
-device e1000,bus=bridge0,addr=0x3
qemu_pci_init: Initializing PCI Bus
pci_probe_device: [00:00.0] Found 8086:1237, class/revision 06000002
pci_probe_device: [00:01.1] Found 8086:7010, class/revision 01018000
pci_probe_device: [00:01.2] Found ffff:ffff, class/revision ffffffff
pci_probe_device: [00:01.3] Found 8086:7113, class/revision 06800003
pci_probe_device: [00:01.4] Found ffff:ffff, class/revision ffffffff
pci_probe_device: [00:01.5] Found ffff:ffff, class/revision ffffffff
pci_probe_device: [00:01.6] Found ffff:ffff, class/revision ffffffff
pci_probe_device: [00:01.7] Found ffff:ffff, class/revision ffffffff
pci_probe_device: [00:02.0] Found 1234:1111, class/revision 03000002
pci_probe_device: [00:03.0] Found 8086:100e, class/revision 02000003
pci_probe_device: [00:04.0] Found 1b36:0005, class/revision 00ff0000
pci_probe_device: [00:04.0] Probing
pci_check_pci_bridge: [00:05.0] Found Bridge
pci_probe_device: [01:03.0] Found 8086:100e, class/revision 02000003
pci_probe_device: [00:05.0] Found 1b36:0001, class/revision 06040000
2. Remove unused CONFIG_PCI_MAX_BDF option
3. Add a workaround for Jailhouse pci scanning
4. Extend BAR parsing and handle PIO and MMIO for pci-testdev
Signed-off-by: Brennan Ashton <bashton@brennanashton.com>
5. PCI: Add initial support for QEMU 'edu' test device
Signed-off-by: Brennan Ashton <bashton@brennanashton.com>
6. Bring up PCI later in boot process
Signed-off-by: Brennan Ashton <bashton@brennanashton.com>
7. Add ISR and DMA support to QEMU edu test pci device
Signed-off-by: Brennan Ashton <bashton@brennanashton.com>
8. Fix bad function prototype definition in qemu_edu
9. intel64: Add a pci test configuration and instructions
Signed-off-by: Brennan Ashton <bashton@brennanashton.com>
10. PCI: Fix issue in identification of 64bit bar
Signed-off-by: Brennan Ashton <bashton@brennanashton.com>
2020-05-07 11:59:29 +02:00
|
|
|
#ifdef CONFIG_DEBUG_PCI_WARN
|
2020-05-04 11:44:11 +02:00
|
|
|
# define pciwarn _warn
|
|
|
|
#else
|
|
|
|
# define pciwarn _none
|
|
|
|
#endif
|
|
|
|
|
Various fixes for PCI work
Squashed commits:
1. Porting prior PCI work in place of jailhouse code
At this point the PCI enumeration works for x86_64 including over
pci-pci bridges.
Running QEMU with this configuration we see the bridge and the
device on the bridge. It also detected the qemu test device
qemu-system-x86_64 \
-cpu host,+pcid,+x2apic,+tsc-deadline,+xsave,+rdrand \
--enable-kvm -smp 1 -m 2G -cdrom boot.iso --nographic -no-reboot \
-device pci-testdev \
-device pci-bridge,id=bridge0,chassis_nr=2 \
-device e1000,bus=bridge0,addr=0x3
qemu_pci_init: Initializing PCI Bus
pci_probe_device: [00:00.0] Found 8086:1237, class/revision 06000002
pci_probe_device: [00:01.1] Found 8086:7010, class/revision 01018000
pci_probe_device: [00:01.2] Found ffff:ffff, class/revision ffffffff
pci_probe_device: [00:01.3] Found 8086:7113, class/revision 06800003
pci_probe_device: [00:01.4] Found ffff:ffff, class/revision ffffffff
pci_probe_device: [00:01.5] Found ffff:ffff, class/revision ffffffff
pci_probe_device: [00:01.6] Found ffff:ffff, class/revision ffffffff
pci_probe_device: [00:01.7] Found ffff:ffff, class/revision ffffffff
pci_probe_device: [00:02.0] Found 1234:1111, class/revision 03000002
pci_probe_device: [00:03.0] Found 8086:100e, class/revision 02000003
pci_probe_device: [00:04.0] Found 1b36:0005, class/revision 00ff0000
pci_probe_device: [00:04.0] Probing
pci_check_pci_bridge: [00:05.0] Found Bridge
pci_probe_device: [01:03.0] Found 8086:100e, class/revision 02000003
pci_probe_device: [00:05.0] Found 1b36:0001, class/revision 06040000
2. Remove unused CONFIG_PCI_MAX_BDF option
3. Add a workaround for Jailhouse pci scanning
4. Extend BAR parsing and handle PIO and MMIO for pci-testdev
Signed-off-by: Brennan Ashton <bashton@brennanashton.com>
5. PCI: Add initial support for QEMU 'edu' test device
Signed-off-by: Brennan Ashton <bashton@brennanashton.com>
6. Bring up PCI later in boot process
Signed-off-by: Brennan Ashton <bashton@brennanashton.com>
7. Add ISR and DMA support to QEMU edu test pci device
Signed-off-by: Brennan Ashton <bashton@brennanashton.com>
8. Fix bad function prototype definition in qemu_edu
9. intel64: Add a pci test configuration and instructions
Signed-off-by: Brennan Ashton <bashton@brennanashton.com>
10. PCI: Fix issue in identification of 64bit bar
Signed-off-by: Brennan Ashton <bashton@brennanashton.com>
2020-05-07 11:59:29 +02:00
|
|
|
#ifdef CONFIG_DEBUG_PCI_INFO
|
2020-05-04 11:44:11 +02:00
|
|
|
# define pciinfo _info
|
|
|
|
#else
|
|
|
|
# define pciinfo _none
|
|
|
|
#endif
|
|
|
|
|
2024-02-12 03:56:48 +01:00
|
|
|
#ifdef CONFIG_DEBUG_RPMSG_ERROR
|
|
|
|
# define rpmsgerr _err
|
|
|
|
#else
|
|
|
|
# define rpmsgerr _none
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_RPMSG_WARN
|
|
|
|
# define rpmsgwarn _warn
|
|
|
|
#else
|
|
|
|
# define rpmsgwarn _none
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_RPMSG_INFO
|
|
|
|
# define rpmsginfo _info
|
|
|
|
#else
|
|
|
|
# define rpmsginfo _none
|
|
|
|
#endif
|
|
|
|
|
2023-09-15 13:33:41 +02:00
|
|
|
#ifdef CONFIG_DEBUG_CORESIGHT_ERROR
|
|
|
|
# define cserr _err
|
|
|
|
#else
|
|
|
|
# define cserr _none
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_CORESIGHT_WARN
|
|
|
|
# define cswarn _warn
|
|
|
|
#else
|
|
|
|
# define cswarn _none
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_CORESIGHT_INFO
|
|
|
|
# define csinfo _info
|
|
|
|
#else
|
|
|
|
# define csinfo _none
|
|
|
|
#endif
|
|
|
|
|
2009-06-25 19:44:35 +02:00
|
|
|
/* Buffer dumping macros do not depend on varargs */
|
|
|
|
|
2016-06-11 23:50:49 +02:00
|
|
|
#ifdef CONFIG_DEBUG_ERROR
|
|
|
|
# define errdumpbuffer(m,b,n) lib_dumpbuffer(m,b,n)
|
2016-06-11 19:50:18 +02:00
|
|
|
# ifdef CONFIG_DEBUG_INFO
|
2016-06-11 19:59:51 +02:00
|
|
|
# define infodumpbuffer(m,b,n) lib_dumpbuffer(m,b,n)
|
2009-06-25 19:44:35 +02:00
|
|
|
# else
|
2023-05-20 00:32:34 +02:00
|
|
|
# define infodumpbuffer(m,b,n)
|
2009-06-25 19:44:35 +02:00
|
|
|
# endif
|
|
|
|
#else
|
2023-05-20 00:32:34 +02:00
|
|
|
# define errdumpbuffer(m,b,n)
|
|
|
|
# define infodumpbuffer(m,b,n)
|
|
|
|
# endif
|
2009-06-25 19:44:35 +02:00
|
|
|
|
|
|
|
/* Subsystem specific debug */
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_MM
|
2016-06-11 23:50:49 +02:00
|
|
|
# define merrdumpbuffer(m,b,n) errdumpbuffer(m,b,n)
|
2016-06-11 19:59:51 +02:00
|
|
|
# define minfodumpbuffer(m,b,n) infodumpbuffer(m,b,n)
|
2009-06-25 19:44:35 +02:00
|
|
|
#else
|
2016-06-11 23:50:49 +02:00
|
|
|
# define merrdumpbuffer(m,b,n)
|
2016-06-11 19:59:51 +02:00
|
|
|
# define minfodumpbuffer(m,b,n)
|
2009-06-25 19:44:35 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_SCHED
|
2016-06-11 23:50:49 +02:00
|
|
|
# define serrdumpbuffer(m,b,n) errdumpbuffer(m,b,n)
|
2016-06-11 19:59:51 +02:00
|
|
|
# define sinfodumpbuffer(m,b,n) infodumpbuffer(m,b,n)
|
2009-06-25 19:44:35 +02:00
|
|
|
#else
|
2016-06-11 23:50:49 +02:00
|
|
|
# define serrdumpbuffer(m,b,n)
|
2016-06-11 19:59:51 +02:00
|
|
|
# define sinfodumpbuffer(m,b,n)
|
2009-06-25 19:44:35 +02:00
|
|
|
#endif
|
|
|
|
|
2016-06-16 16:12:38 +02:00
|
|
|
#ifdef CONFIG_DEBUG_SYSCALL
|
|
|
|
# define svcerrdumpbuffer(m,b,n) errdumpbuffer(m,b,n)
|
|
|
|
# define svcinfodumpbuffer(m,b,n) infodumpbuffer(m,b,n)
|
|
|
|
#else
|
|
|
|
# define svcerrdumpbuffer(m,b,n)
|
|
|
|
# define svcinfodumpbuffer(m,b,n)
|
|
|
|
#endif
|
|
|
|
|
2010-08-22 05:44:18 +02:00
|
|
|
#ifdef CONFIG_DEBUG_PAGING
|
2016-06-11 23:50:49 +02:00
|
|
|
# define pgerrdumpbuffer(m,b,n) errdumpbuffer(m,b,n)
|
2016-06-11 19:59:51 +02:00
|
|
|
# define pginfodumpbuffer(m,b,n) infodumpbuffer(m,b,n)
|
2010-08-22 05:44:18 +02:00
|
|
|
#else
|
2016-06-11 23:50:49 +02:00
|
|
|
# define pgerrdumpbuffer(m,b,n)
|
2016-06-11 19:59:51 +02:00
|
|
|
# define pginfodumpbuffer(m,b,n)
|
2010-08-22 05:44:18 +02:00
|
|
|
#endif
|
|
|
|
|
2009-06-25 19:44:35 +02:00
|
|
|
#ifdef CONFIG_DEBUG_NET
|
2016-06-11 23:50:49 +02:00
|
|
|
# define nerrdumpbuffer(m,b,n) errdumpbuffer(m,b,n)
|
2016-06-11 19:59:51 +02:00
|
|
|
# define ninfodumpbuffer(m,b,n) infodumpbuffer(m,b,n)
|
2009-06-25 19:44:35 +02:00
|
|
|
#else
|
2016-06-11 23:50:49 +02:00
|
|
|
# define nerrdumpbuffer(m,b,n)
|
2016-06-11 19:59:51 +02:00
|
|
|
# define ninfodumpbuffer(m,b,n)
|
2009-06-25 19:44:35 +02:00
|
|
|
#endif
|
|
|
|
|
2017-07-23 15:17:56 +02:00
|
|
|
#ifdef CONFIG_DEBUG_POWER
|
|
|
|
# define pwrerrdumpbuffer(m,b,n) errdumpbuffer(m,b,n)
|
|
|
|
# define pwrinfodumpbuffer(m,b,n) infodumpbuffer(m,b,n)
|
|
|
|
#else
|
|
|
|
# define pwrerrdumpbuffer(m,b,n)
|
|
|
|
# define pwrinfodumpbuffer(m,b,n)
|
|
|
|
#endif
|
|
|
|
|
2017-03-15 21:30:24 +01:00
|
|
|
#ifdef CONFIG_DEBUG_WIRELESS
|
|
|
|
# define wlerrdumpbuffer(m,b,n) errdumpbuffer(m,b,n)
|
|
|
|
# define wlinfodumpbuffer(m,b,n) infodumpbuffer(m,b,n)
|
|
|
|
#else
|
|
|
|
# define wlerrdumpbuffer(m,b,n)
|
|
|
|
# define wlinfodumpbuffer(m,b,n)
|
|
|
|
#endif
|
|
|
|
|
2009-06-25 19:44:35 +02:00
|
|
|
#ifdef CONFIG_DEBUG_FS
|
2016-06-11 23:50:49 +02:00
|
|
|
# define ferrdumpbuffer(m,b,n) errdumpbuffer(m,b,n)
|
2016-06-11 19:59:51 +02:00
|
|
|
# define finfodumpbuffer(m,b,n) infodumpbuffer(m,b,n)
|
2009-06-25 19:44:35 +02:00
|
|
|
#else
|
2016-06-11 23:50:49 +02:00
|
|
|
# define ferrdumpbuffer(m,b,n)
|
2016-06-11 19:59:51 +02:00
|
|
|
# define finfodumpbuffer(m,b,n)
|
2009-06-25 19:44:35 +02:00
|
|
|
#endif
|
|
|
|
|
2019-08-19 19:27:23 +02:00
|
|
|
#ifdef CONFIG_DEBUG_CONTACTLESS
|
|
|
|
# define ctlserrdumpbuffer(m,b,n) errdumpbuffer(m,b,n)
|
|
|
|
# define ctlinfodumpbuffer(m,b,n) infodumpbuffer(m,b,n)
|
|
|
|
#else
|
|
|
|
# define ctlserrferrdumpbuffer(m,b,n)
|
|
|
|
# define ctlinfodumpbuffer(m,b,n)
|
|
|
|
#endif
|
|
|
|
|
2011-07-29 20:51:56 +02:00
|
|
|
#ifdef CONFIG_DEBUG_INPUT
|
2016-06-11 23:50:49 +02:00
|
|
|
# define ierrdumpbuffer(m,b,n) errdumpbuffer(m,b,n)
|
2016-06-11 19:59:51 +02:00
|
|
|
# define iinfodumpbuffer(m,b,n) infodumpbuffer(m,b,n)
|
2011-07-29 20:51:56 +02:00
|
|
|
#else
|
2016-06-11 23:50:49 +02:00
|
|
|
# define ierrdumpbuffer(m,b,n)
|
2016-06-11 19:59:51 +02:00
|
|
|
# define iinfodumpbuffer(m,b,n)
|
2011-07-29 20:51:56 +02:00
|
|
|
#endif
|
|
|
|
|
2016-06-15 23:45:27 +02:00
|
|
|
#ifdef CONFIG_DEBUG_ANALOG
|
|
|
|
# define aerrdumpbuffer(m,b,n) errdumpbuffer(m,b,n)
|
|
|
|
# define ainfodumpbuffer(m,b,n) infodumpbuffer(m,b,n)
|
|
|
|
#else
|
|
|
|
# define aerrdumpbuffer(m,b,n)
|
|
|
|
# define ainfodumpbuffer(m,b,n)
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_CAN
|
|
|
|
# define canerrdumpbuffer(m,b,n) errdumpbuffer(m,b,n)
|
|
|
|
# define caninfodumpbuffer(m,b,n) infodumpbuffer(m,b,n)
|
|
|
|
#else
|
|
|
|
# define canerrdumpbuffer(m,b,n)
|
|
|
|
# define caninfodumpbuffer(m,b,n)
|
|
|
|
#endif
|
|
|
|
|
2009-06-25 19:44:35 +02:00
|
|
|
#ifdef CONFIG_DEBUG_GRAPHICS
|
2016-06-11 23:50:49 +02:00
|
|
|
# define gerrdumpbuffer(m,b,n) errdumpbuffer(m,b,n)
|
2016-06-11 19:59:51 +02:00
|
|
|
# define ginfodumpbuffer(m,b,n) infodumpbuffer(m,b,n)
|
2009-06-25 19:44:35 +02:00
|
|
|
#else
|
2016-06-11 23:50:49 +02:00
|
|
|
# define gerrdumpbuffer(m,b,n)
|
2016-06-11 19:59:51 +02:00
|
|
|
# define ginfodumpbuffer(m,b,n)
|
2009-06-25 19:44:35 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_BINFMT
|
2016-06-11 23:50:49 +02:00
|
|
|
# define berrdumpbuffer(m,b,n) errdumpbuffer(m,b,n)
|
2016-06-11 19:59:51 +02:00
|
|
|
# define binfodumpbuffer(m,b,n) infodumpbuffer(m,b,n)
|
2009-06-25 19:44:35 +02:00
|
|
|
#else
|
2016-06-11 23:50:49 +02:00
|
|
|
# define berrdumpbuffer(m,b,n)
|
2016-06-11 19:59:51 +02:00
|
|
|
# define binfodumpbuffer(m,b,n)
|
2009-06-25 19:44:35 +02:00
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_LIB
|
2016-06-11 23:50:49 +02:00
|
|
|
# define lerrdumpbuffer(m,b,n) errdumpbuffer(m,b,n)
|
2016-06-11 19:59:51 +02:00
|
|
|
# define linfodumpbuffer(m,b,n) infodumpbuffer(m,b,n)
|
2009-06-25 19:44:35 +02:00
|
|
|
#else
|
2016-06-11 23:50:49 +02:00
|
|
|
# define lerrdumpbuffer(m,b,n)
|
2016-06-11 19:59:51 +02:00
|
|
|
# define linfodumpbuffer(m,b,n)
|
2009-06-25 19:44:35 +02:00
|
|
|
#endif
|
|
|
|
|
2013-05-19 23:12:28 +02:00
|
|
|
#ifdef CONFIG_DEBUG_AUDIO
|
2016-06-11 23:50:49 +02:00
|
|
|
# define auderrdumpbuffer(m,b,n) errdumpbuffer(m,b,n)
|
2016-06-11 19:59:51 +02:00
|
|
|
# define audinfodumpbuffer(m,b,n) infodumpbuffer(m,b,n)
|
2013-05-19 23:12:28 +02:00
|
|
|
#else
|
2016-06-11 23:50:49 +02:00
|
|
|
# define auderrdumpbuffer(m,b,n)
|
2016-06-11 19:59:51 +02:00
|
|
|
# define audinfodumpbuffer(m,b,n)
|
2013-05-19 23:12:28 +02:00
|
|
|
#endif
|
|
|
|
|
2016-06-15 17:20:23 +02:00
|
|
|
#ifdef CONFIG_DEBUG_DMA
|
|
|
|
# define dmaerrdumpbuffer(m,b,n) errdumpbuffer(m,b,n)
|
|
|
|
# define dmainfodumpbuffer(m,b,n) infodumpbuffer(m,b,n)
|
|
|
|
#else
|
|
|
|
# define dmaerrdumpbuffer(m,b,n)
|
|
|
|
# define dmainfodumpbuffer(m,b,n)
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_IRQ
|
|
|
|
# define irqerrdumpbuffer(m,b,n) errdumpbuffer(m,b,n)
|
|
|
|
# define irqinfodumpbuffer(m,b,n) infodumpbuffer(m,b,n)
|
|
|
|
#else
|
|
|
|
# define irqerrdumpbuffer(m,b,n)
|
|
|
|
# define irqinfodumpbuffer(m,b,n)
|
|
|
|
#endif
|
|
|
|
|
2016-06-15 19:40:33 +02:00
|
|
|
#ifdef CONFIG_DEBUG_LCD
|
|
|
|
# define lcderrdumpbuffer(m,b,n) errdumpbuffer(m,b,n)
|
|
|
|
# define lcdinfodumpbuffer(m,b,n) infodumpbuffer(m,b,n)
|
|
|
|
#else
|
|
|
|
# define lcderrdumpbuffer(m,b,n)
|
|
|
|
# define lcdinfodumpbuffer(m,b,n)
|
|
|
|
#endif
|
|
|
|
|
2016-06-15 22:12:19 +02:00
|
|
|
#ifdef CONFIG_DEBUG_LEDS
|
|
|
|
# define lederrdumpbuffer(m,b,n) errdumpbuffer(m,b,n)
|
|
|
|
# define ledinfodumpbuffer(m,b,n) infodumpbuffer(m,b,n)
|
|
|
|
#else
|
|
|
|
# define lederrdumpbuffer(m,b,n)
|
|
|
|
# define ledinfodumpbuffer(m,b,n)
|
|
|
|
#endif
|
|
|
|
|
2016-06-15 17:20:23 +02:00
|
|
|
#ifdef CONFIG_DEBUG_GPIO
|
|
|
|
# define gpioerrdumpbuffer(m,b,n) errdumpbuffer(m,b,n)
|
|
|
|
# define gpioinfodumpbuffer(m,b,n) infodumpbuffer(m,b,n)
|
|
|
|
#else
|
|
|
|
# define gpioerrdumpbuffer(m,b,n)
|
|
|
|
# define gpioinfodumpbuffer(m,b,n)
|
|
|
|
#endif
|
|
|
|
|
2016-06-16 00:30:12 +02:00
|
|
|
#ifdef CONFIG_DEBUG_I2C
|
|
|
|
# define i2cerrdumpbuffer(m,b,n) errdumpbuffer(m,b,n)
|
|
|
|
# define i2cinfodumpbuffer(m,b,n) infodumpbuffer(m,b,n)
|
|
|
|
#else
|
|
|
|
# define i2cerrdumpbuffer(m,b,n)
|
|
|
|
# define i2cinfodumpbuffer(m,b,n)
|
|
|
|
#endif
|
|
|
|
|
2016-06-16 00:54:01 +02:00
|
|
|
#ifdef CONFIG_DEBUG_I2S
|
|
|
|
# define i2serrdumpbuffer(m,b,n) errdumpbuffer(m,b,n)
|
|
|
|
# define i2sinfodumpbuffer(m,b,n) infodumpbuffer(m,b,n)
|
|
|
|
#else
|
|
|
|
# define i2serrdumpbuffer(m,b,n)
|
|
|
|
# define i2sinfodumpbuffer(m,b,n)
|
|
|
|
#endif
|
|
|
|
|
2016-06-16 01:23:56 +02:00
|
|
|
#ifdef CONFIG_DEBUG_PWM
|
|
|
|
# define pwmerrdumpbuffer(m,b,n) errdumpbuffer(m,b,n)
|
|
|
|
# define pwminfodumpbuffer(m,b,n) infodumpbuffer(m,b,n)
|
|
|
|
#else
|
|
|
|
# define pwmerrdumpbuffer(m,b,n)
|
|
|
|
# define pwminfodumpbuffer(m,b,n)
|
|
|
|
#endif
|
|
|
|
|
2016-06-16 15:39:23 +02:00
|
|
|
#ifdef CONFIG_DEBUG_RTC
|
|
|
|
# define rtcerrdumpbuffer(m,b,n) errdumpbuffer(m,b,n)
|
|
|
|
# define rtcinfodumpbuffer(m,b,n) infodumpbuffer(m,b,n)
|
|
|
|
#else
|
|
|
|
# define rtcerrdumpbuffer(m,b,n)
|
|
|
|
# define rtcinfodumpbuffer(m,b,n)
|
|
|
|
#endif
|
|
|
|
|
2016-06-16 15:50:54 +02:00
|
|
|
#ifdef CONFIG_DEBUG_MEMCARD
|
|
|
|
# define mcerrdumpbuffer(m,b,n) errdumpbuffer(m,b,n)
|
|
|
|
# define mcinfodumpbuffer(m,b,n) infodumpbuffer(m,b,n)
|
|
|
|
#else
|
|
|
|
# define mcerrdumpbuffer(m,b,n)
|
|
|
|
# define mcinfodumpbuffer(m,b,n)
|
|
|
|
#endif
|
|
|
|
|
2016-06-15 18:41:13 +02:00
|
|
|
#ifdef CONFIG_DEBUG_SENSORS
|
|
|
|
# define snerrdumpbuffer(m,b,n) errdumpbuffer(m,b,n)
|
|
|
|
# define sninfodumpbuffer(m,b,n) infodumpbuffer(m,b,n)
|
|
|
|
#else
|
|
|
|
# define snerrdumpbuffer(m,b,n)
|
|
|
|
# define sninfodumpbuffer(m,b,n)
|
|
|
|
#endif
|
|
|
|
|
2016-06-16 15:16:25 +02:00
|
|
|
#ifdef CONFIG_DEBUG_SPI
|
|
|
|
# define spierrdumpbuffer(m,b,n) errdumpbuffer(m,b,n)
|
|
|
|
# define spiinfodumpbuffer(m,b,n) infodumpbuffer(m,b,n)
|
|
|
|
#else
|
|
|
|
# define spierrdumpbuffer(m,b,n)
|
|
|
|
# define spiinfodumpbuffer(m,b,n)
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_TIMER
|
|
|
|
# define tmrerrdumpbuffer(m,b,n) errdumpbuffer(m,b,n)
|
|
|
|
# define tmrinfodumpbuffer(m,b,n) infodumpbuffer(m,b,n)
|
|
|
|
#else
|
|
|
|
# define tmrerrdumpbuffer(m,b,n)
|
|
|
|
# define tmrinfodumpbuffer(m,b,n)
|
|
|
|
#endif
|
|
|
|
|
2016-06-16 14:28:04 +02:00
|
|
|
#ifdef CONFIG_DEBUG_USB
|
|
|
|
# define uerrdumpbuffer(m,b,n) errdumpbuffer(m,b,n)
|
|
|
|
# define uinfodumpbuffer(m,b,n) infodumpbuffer(m,b,n)
|
|
|
|
#else
|
|
|
|
# define uerrdumpbuffer(m,b,n)
|
|
|
|
# define uinfodumpbuffer(m,b,n)
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_WATCHDOG
|
|
|
|
# define wderrdumpbuffer(m,b,n) errdumpbuffer(m,b,n)
|
|
|
|
# define wdinfodumpbuffer(m,b,n) infodumpbuffer(m,b,n)
|
|
|
|
#else
|
|
|
|
# define wderrdumpbuffer(m,b,n)
|
|
|
|
# define wdinfodumpbuffer(m,b,n)
|
|
|
|
#endif
|
|
|
|
|
2021-04-01 08:56:42 +02:00
|
|
|
#ifdef CONFIG_DEBUG_MOTOR
|
|
|
|
# define mtrerrdumpbuffer(m,b,n) errdumpbuffer(m,b,n)
|
|
|
|
# define mtrinfodumpbuffer(m,b,n) infodumpbuffer(m,b,n)
|
|
|
|
#else
|
|
|
|
# define mtrerrdumpbuffer(m,b,n)
|
|
|
|
# define mtrinfodumpbuffer(m,b,n)
|
|
|
|
#endif
|
|
|
|
|
2023-06-06 10:32:15 +02:00
|
|
|
#ifdef CONFIG_DEBUG_RESET
|
|
|
|
# define reseterrdumpbuffer(m,b,n) errdumpbuffer(m,b,n)
|
|
|
|
# define resetinfodumpbuffer(m,b,n) infodumpbuffer(m,b,n)
|
|
|
|
#else
|
|
|
|
# define reseterrdumpbuffer(m,b,n)
|
|
|
|
# define resetinfodumpbuffer(m,b,n)
|
|
|
|
#endif
|
|
|
|
|
2008-01-09 02:13:24 +01:00
|
|
|
/****************************************************************************
|
2007-02-18 00:21:28 +01:00
|
|
|
* Public Function Prototypes
|
2008-01-09 02:13:24 +01:00
|
|
|
****************************************************************************/
|
2007-02-18 00:21:28 +01:00
|
|
|
|
|
|
|
#if defined(__cplusplus)
|
2012-12-11 23:51:20 +01:00
|
|
|
extern "C"
|
|
|
|
{
|
2007-02-18 00:21:28 +01:00
|
|
|
#endif
|
|
|
|
|
2022-07-19 16:07:10 +02:00
|
|
|
/* Type of the call out function pointer provided to
|
|
|
|
* lib_dumphandler() or lib_dumpvhandler()
|
|
|
|
*/
|
|
|
|
|
|
|
|
typedef CODE void (*lib_dump_handler_t)(FAR void *arg,
|
|
|
|
FAR const char *fmt, ...)
|
2022-12-12 08:43:47 +01:00
|
|
|
printf_like(2, 3);
|
2022-07-19 16:07:10 +02:00
|
|
|
|
|
|
|
/* Dump a buffer of data with handler */
|
|
|
|
|
|
|
|
void lib_dumphandler(FAR const char *msg, FAR const uint8_t *buffer,
|
|
|
|
unsigned int buflen, lib_dump_handler_t handler,
|
|
|
|
FAR void *arg);
|
|
|
|
|
|
|
|
/* Do a pretty buffer dump from multiple buffers with handler. */
|
|
|
|
|
|
|
|
void lib_dumpvhandler(FAR const char *msg, FAR const struct iovec *iov,
|
|
|
|
int iovcnt, lib_dump_handler_t handler,
|
|
|
|
FAR void *arg);
|
|
|
|
|
2009-06-25 19:44:35 +02:00
|
|
|
/* Dump a buffer of data */
|
|
|
|
|
2014-07-03 15:58:43 +02:00
|
|
|
void lib_dumpbuffer(FAR const char *msg, FAR const uint8_t *buffer,
|
|
|
|
unsigned int buflen);
|
2009-06-25 19:44:35 +02:00
|
|
|
|
2020-12-22 10:59:19 +01:00
|
|
|
/* Do a pretty buffer dump from multiple buffers. */
|
|
|
|
|
|
|
|
void lib_dumpvbuffer(FAR const char *msg, FAR const struct iovec *iov,
|
|
|
|
int iovcnt);
|
|
|
|
|
2022-07-19 16:07:10 +02:00
|
|
|
/* Dump a buffer of data with fd */
|
|
|
|
|
|
|
|
void lib_dumpfile(int fd, FAR const char *msg, FAR const uint8_t *buffer,
|
|
|
|
unsigned int buflen);
|
|
|
|
|
|
|
|
/* Do a pretty buffer dump from multiple buffers with fd. */
|
|
|
|
|
|
|
|
void lib_dumpvfile(int fd, FAR const char *msg, FAR const struct iovec *iov,
|
|
|
|
int iovcnt);
|
|
|
|
|
2014-07-03 15:58:43 +02:00
|
|
|
/* The system logging interfaces are normally accessed via the macros
|
2013-01-28 22:55:16 +01:00
|
|
|
* provided above. If the cross-compiler's C pre-processor supports a
|
|
|
|
* variable number of macro arguments, then those macros below will map all
|
|
|
|
* debug statements to the logging interfaces declared in syslog.h.
|
|
|
|
*
|
|
|
|
* If the cross-compiler's pre-processor does not support variable length
|
2012-07-17 05:58:11 +02:00
|
|
|
* arguments, then these additional APIs will be built.
|
2008-01-09 02:13:24 +01:00
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef CONFIG_CPP_HAVE_VARARGS
|
2016-06-21 13:26:08 +02:00
|
|
|
#ifdef CONFIG_DEBUG_ALERT
|
2022-12-21 00:10:29 +01:00
|
|
|
void _alert(FAR const char *format, ...) syslog_like(1, 2);
|
2016-06-14 17:07:53 +02:00
|
|
|
#endif
|
|
|
|
|
2016-06-11 23:50:49 +02:00
|
|
|
#ifdef CONFIG_DEBUG_ERROR
|
2022-12-21 00:10:29 +01:00
|
|
|
void _err(FAR const char *format, ...) syslog_like(1, 2);
|
2016-06-20 20:44:38 +02:00
|
|
|
#endif
|
2016-06-11 20:38:37 +02:00
|
|
|
|
|
|
|
#ifdef CONFIG_DEBUG_WARN
|
2022-12-21 00:10:29 +01:00
|
|
|
void _warn(FAR const char *format, ...) syslog_like(1, 2);
|
2016-06-20 17:37:08 +02:00
|
|
|
#endif
|
2008-01-09 02:13:24 +01:00
|
|
|
|
2016-06-11 20:38:37 +02:00
|
|
|
#ifdef CONFIG_DEBUG_INFO
|
2022-12-21 00:10:29 +01:00
|
|
|
void _info(FAR const char *format, ...) syslog_like(1, 2);
|
2016-06-20 19:59:15 +02:00
|
|
|
#endif
|
2008-01-09 02:13:24 +01:00
|
|
|
#endif /* CONFIG_CPP_HAVE_VARARGS */
|
|
|
|
|
2007-02-18 00:21:28 +01:00
|
|
|
#if defined(__cplusplus)
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
2009-06-17 18:28:50 +02:00
|
|
|
#endif /* __INCLUDE_DEBUG_H */
|