123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074 |
- /****************************************************************************
- * include/debug.h
- *
- * 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
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * 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.
- *
- ****************************************************************************/
- #ifndef __INCLUDE_DEBUG_H
- #define __INCLUDE_DEBUG_H
- /****************************************************************************
- * Included Files
- ****************************************************************************/
- #include <nuttx/config.h>
- #include <nuttx/compiler.h>
- #ifdef CONFIG_ARCH_DEBUG_H
- # include <arch/debug.h>
- #endif
- #ifdef CONFIG_ARCH_CHIP_DEBUG_H
- # include <arch/chip/debug.h>
- #endif
- #include <syslog.h>
- #include <sys/uio.h>
- /****************************************************************************
- * Pre-processor Definitions
- ****************************************************************************/
- /* Debug macros to runtime filter the debug messages sent to the console. In
- * general, there are four forms of the debug macros:
- *
- * [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.
- *
- * The first character of the macro name indicates the system
- * (e.g., n=network, f=filesystm, etc.). If the first character is
- * missing (i.e., _info()), then it is common. The common _info() macro
- * is enabled simply with CONFIG_DEBUG_INFO. Subsystem debug requires an
- * additional configuration setting to enable it (e.g., CONFIG_DEBUG_NET
- * for the network, CONFIG_DEBUG_FS for the file system, etc).
- *
- * In general, error messages and output of importance use [a-z]err().
- * [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.
- *
- * [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).
- *
- * [a-z]err() -- Identical to [a-z]info() except that it also requires that
- * CONFIG_DEBUG_ERROR be defined. This is intended for important
- * error-related information that you probably don't want to suppress
- * during general debugging.
- *
- * _alert() - is a special, high-priority, unconditional version that is
- * really intended only for crash error reporting.
- */
- #ifdef CONFIG_HAVE_FUNCTIONNAME
- # define EXTRA_FMT "%s: "
- # define EXTRA_ARG ,__FUNCTION__
- #else
- # define EXTRA_FMT
- # define EXTRA_ARG
- #endif
- /* Debug macros will differ depending upon if the toolchain supports
- * macros with a variable number of arguments or not.
- */
- #ifdef CONFIG_CPP_HAVE_VARARGS
- /* don't call syslog while performing the compiler's format check. */
- # define _none(format, ...) \
- do { if (0) syslog(LOG_ERR, format, ##__VA_ARGS__); } while (0)
- #else
- # define _none (void)
- #endif
- /* 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
- #if !defined(CONFIG_DEBUG_ALERT)
- # define _alert _none
- #elif defined(CONFIG_CPP_HAVE_VARARGS)
- # define _alert(format, ...) \
- __arch_syslog(LOG_EMERG, EXTRA_FMT format EXTRA_ARG, ##__VA_ARGS__)
- #endif
- #if !defined(CONFIG_DEBUG_ERROR)
- # define _err _none
- #elif defined(CONFIG_CPP_HAVE_VARARGS)
- # define _err(format, ...) \
- __arch_syslog(LOG_ERR, EXTRA_FMT format EXTRA_ARG, ##__VA_ARGS__)
- #endif
- #if !defined(CONFIG_DEBUG_WARN)
- # define _warn _none
- #elif defined(CONFIG_CPP_HAVE_VARARGS)
- # define _warn(format, ...) \
- __arch_syslog(LOG_WARNING, EXTRA_FMT format EXTRA_ARG, ##__VA_ARGS__)
- #endif
- #if !defined(CONFIG_DEBUG_INFO)
- # define _info _none
- #elif defined(CONFIG_CPP_HAVE_VARARGS)
- # define _info(format, ...) \
- __arch_syslog(LOG_INFO, EXTRA_FMT format EXTRA_ARG, ##__VA_ARGS__)
- #endif
- /* Subsystem specific debug */
- #ifdef CONFIG_DEBUG_MM_ERROR
- # define merr _err
- #else
- # define merr _none
- #endif
- #ifdef CONFIG_DEBUG_MM_WARN
- # define mwarn _warn
- #else
- # define mwarn _none
- #endif
- #ifdef CONFIG_DEBUG_MM_INFO
- # define minfo _info
- #else
- # define minfo _none
- #endif
- #ifdef CONFIG_DEBUG_SCHED_ERROR
- # define serr _err
- #else
- # define serr _none
- #endif
- #ifdef CONFIG_DEBUG_SCHED_WARN
- # define swarn _warn
- #else
- # define swarn _none
- #endif
- #ifdef CONFIG_DEBUG_SCHED_INFO
- # define sinfo _info
- #else
- # define sinfo _none
- #endif
- #ifdef CONFIG_DEBUG_SYSCALL_ERROR
- # define svcerr _err
- #else
- # define svcerr _none
- #endif
- #ifdef CONFIG_DEBUG_SYSCALL_WARN
- # define svcwarn _warn
- #else
- # define svcwarn _none
- #endif
- #ifdef CONFIG_DEBUG_SYSCALL_INFO
- # define svcinfo _info
- #else
- # define svcinfo _none
- #endif
- #ifdef CONFIG_DEBUG_PAGING_ERROR
- # define pgerr _err
- #else
- # define pgerr _none
- #endif
- #ifdef CONFIG_DEBUG_PAGING_WARN
- # define pgwarn _warn
- #else
- # define pgwarn _none
- #endif
- #ifdef CONFIG_DEBUG_PAGING_INFO
- # define pginfo _info
- #else
- # define pginfo _none
- #endif
- #ifdef CONFIG_DEBUG_NET_ERROR
- # define nerr _err
- #else
- # define nerr _none
- #endif
- #ifdef CONFIG_DEBUG_NET_WARN
- # define nwarn _warn
- #else
- # define nwarn _none
- #endif
- #ifdef CONFIG_DEBUG_NET_INFO
- # define ninfo _info
- #else
- # define ninfo _none
- #endif
- #ifdef CONFIG_DEBUG_POWER_ERROR
- # define pwrerr _err
- #else
- # define pwrerr _none
- #endif
- #ifdef CONFIG_DEBUG_POWER_WARN
- # define pwrwarn _warn
- #else
- # define pwrwarn _none
- #endif
- #ifdef CONFIG_DEBUG_POWER_INFO
- # define pwrinfo _info
- #else
- # define pwrinfo _none
- #endif
- #ifdef CONFIG_DEBUG_WIRELESS_ERROR
- # define wlerr _err
- #else
- # define wlerr _none
- #endif
- #ifdef CONFIG_DEBUG_WIRELESS_WARN
- # define wlwarn _warn
- #else
- # define wlwarn _none
- #endif
- #ifdef CONFIG_DEBUG_WIRELESS_INFO
- # define wlinfo _info
- #else
- # define wlinfo _none
- #endif
- #ifdef CONFIG_DEBUG_FS_ERROR
- # define ferr _err
- #else
- # define ferr _none
- #endif
- #ifdef CONFIG_DEBUG_FS_WARN
- # define fwarn _warn
- #else
- # define fwarn _none
- #endif
- #ifdef CONFIG_DEBUG_FS_INFO
- # define finfo _info
- #else
- # define finfo _none
- #endif
- #ifdef CONFIG_DEBUG_CONTACTLESS_ERROR
- # define ctlserr _err
- #else
- # define ctlserr _none
- #endif
- #ifdef CONFIG_DEBUG_CONTACTLESS_WARN
- # define ctlswarn _warn
- #else
- # define ctlswarn _none
- #endif
- #ifdef CONFIG_DEBUG_CONTACTLESS_INFO
- # define ctlsinfo _info
- #else
- # define ctlsinfo _none
- #endif
- #ifdef CONFIG_DEBUG_CRYPTO_ERROR
- # define crypterr _err
- #else
- # define crypterr _none
- #endif
- #ifdef CONFIG_DEBUG_CRYPTO_WARN
- # define cryptwarn _warn
- #else
- # define cryptwarn _none
- #endif
- #ifdef CONFIG_DEBUG_CRYPTO_INFO
- # define cryptinfo _info
- #else
- # define cryptinfo _none
- #endif
- #ifdef CONFIG_DEBUG_INPUT_ERROR
- # define ierr _err
- #else
- # define ierr _none
- #endif
- #ifdef CONFIG_DEBUG_INPUT_WARN
- # define iwarn _warn
- #else
- # define iwarn _none
- #endif
- #ifdef CONFIG_DEBUG_INPUT_INFO
- # define iinfo _info
- #else
- # define iinfo _none
- #endif
- #ifdef CONFIG_DEBUG_ANALOG_ERROR
- # define aerr _err
- #else
- # define aerr _none
- #endif
- #ifdef CONFIG_DEBUG_ANALOG_WARN
- # define awarn _warn
- #else
- # define awarn _none
- #endif
- #ifdef CONFIG_DEBUG_ANALOG_INFO
- # define ainfo _info
- #else
- # define ainfo _none
- #endif
- #ifdef CONFIG_DEBUG_CAN_ERROR
- # define canerr _err
- #else
- # define canerr _none
- #endif
- #ifdef CONFIG_DEBUG_CAN_WARN
- # define canwarn _warn
- #else
- # define canwarn _none
- #endif
- #ifdef CONFIG_DEBUG_CAN_INFO
- # define caninfo _info
- #else
- # define caninfo _none
- #endif
- #ifdef CONFIG_DEBUG_GRAPHICS_ERROR
- # define gerr _err
- #else
- # define gerr _none
- #endif
- #ifdef CONFIG_DEBUG_GRAPHICS_WARN
- # define gwarn _warn
- #else
- # define gwarn _none
- #endif
- #ifdef CONFIG_DEBUG_GRAPHICS_INFO
- # define ginfo _info
- #else
- # define ginfo _none
- #endif
- #ifdef CONFIG_DEBUG_BINFMT_ERROR
- # define berr _err
- #else
- # define berr _none
- #endif
- #ifdef CONFIG_DEBUG_BINFMT_WARN
- # define bwarn _warn
- #else
- # define bwarn _none
- #endif
- #ifdef CONFIG_DEBUG_BINFMT_INFO
- # define binfo _info
- #else
- # define binfo _none
- #endif
- #ifdef CONFIG_DEBUG_LIB_ERROR
- # define lerr _err
- #else
- # define lerr _none
- #endif
- #ifdef CONFIG_DEBUG_LIB_WARN
- # define lwarn _warn
- #else
- # define lwarn _none
- #endif
- #ifdef CONFIG_DEBUG_LIB_INFO
- # define linfo _info
- #else
- # define linfo _none
- #endif
- #ifdef CONFIG_DEBUG_AUDIO_ERROR
- # define auderr _err
- #else
- # define auderr _none
- #endif
- #ifdef CONFIG_DEBUG_AUDIO_WARN
- # define audwarn _warn
- #else
- # define audwarn _none
- #endif
- #ifdef CONFIG_DEBUG_AUDIO_INFO
- # define audinfo _info
- #else
- # define audinfo _none
- #endif
- #ifdef CONFIG_DEBUG_DMA_ERROR
- # define dmaerr _err
- #else
- # define dmaerr _none
- #endif
- #ifdef CONFIG_DEBUG_DMA_WARN
- # define dmawarn _warn
- #else
- # define dmawarn _none
- #endif
- #ifdef CONFIG_DEBUG_DMA_INFO
- # define dmainfo _info
- #else
- # define dmainfo _none
- #endif
- #ifdef CONFIG_DEBUG_IRQ_ERROR
- # define irqerr _err
- #else
- # define irqerr _none
- #endif
- #ifdef CONFIG_DEBUG_IRQ_WARN
- # define irqwarn _warn
- #else
- # define irqwarn _none
- #endif
- #ifdef CONFIG_DEBUG_IRQ_INFO
- # define irqinfo _info
- #else
- # define irqinfo _none
- #endif
- #ifdef CONFIG_DEBUG_LCD_ERROR
- # define lcderr _err
- #else
- # define lcderr _none
- #endif
- #ifdef CONFIG_DEBUG_LCD_WARN
- # define lcdwarn _warn
- #else
- # define lcdwarn _none
- #endif
- #ifdef CONFIG_DEBUG_LCD_INFO
- # define lcdinfo _info
- #else
- # define lcdinfo _none
- #endif
- #ifdef CONFIG_DEBUG_LEDS_ERROR
- # define lederr _err
- #else
- # define lederr _none
- #endif
- #ifdef CONFIG_DEBUG_LEDS_WARN
- # define ledwarn _warn
- #else
- # define ledwarn _none
- #endif
- #ifdef CONFIG_DEBUG_LEDS_INFO
- # define ledinfo _info
- #else
- # define ledinfo _none
- #endif
- #ifdef CONFIG_DEBUG_GPIO_ERROR
- # define gpioerr _err
- #else
- # define gpioerr _none
- #endif
- #ifdef CONFIG_DEBUG_GPIO_WARN
- # define gpiowarn _warn
- #else
- # define gpiowarn _none
- #endif
- #ifdef CONFIG_DEBUG_GPIO_INFO
- # define gpioinfo _info
- #else
- # define gpioinfo _none
- #endif
- #ifdef CONFIG_DEBUG_I2C_ERROR
- # define i2cerr _err
- #else
- # define i2cerr _none
- #endif
- #ifdef CONFIG_DEBUG_I2C_WARN
- # define i2cwarn _warn
- #else
- # define i2cwarn _none
- #endif
- #ifdef CONFIG_DEBUG_I2C_INFO
- # define i2cinfo _info
- #else
- # define i2cinfo _none
- #endif
- #ifdef CONFIG_DEBUG_I2S_ERROR
- # define i2serr _err
- #else
- # define i2serr _none
- #endif
- #ifdef CONFIG_DEBUG_I2S_WARN
- # define i2swarn _warn
- #else
- # define i2swarn _none
- #endif
- #ifdef CONFIG_DEBUG_I2S_INFO
- # define i2sinfo _info
- #else
- # define i2sinfo _none
- #endif
- #ifdef CONFIG_DEBUG_PWM_ERROR
- # define pwmerr _err
- #else
- # define pwmerr _none
- #endif
- #ifdef CONFIG_DEBUG_PWM_WARN
- # define pwmwarn _warn
- #else
- # define pwmwarn _none
- #endif
- #ifdef CONFIG_DEBUG_PWM_INFO
- # define pwminfo _info
- #else
- # define pwminfo _none
- #endif
- #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
- #ifdef CONFIG_DEBUG_RTC_ERROR
- # define rtcerr _err
- #else
- # define rtcerr _none
- #endif
- #ifdef CONFIG_DEBUG_RTC_WARN
- # define rtcwarn _warn
- #else
- # define rtcwarn _none
- #endif
- #ifdef CONFIG_DEBUG_RTC_INFO
- # define rtcinfo _info
- #else
- # define rtcinfo _none
- #endif
- #ifdef CONFIG_DEBUG_MEMCARD_ERROR
- # define mcerr _err
- #else
- # define mcerr _none
- #endif
- #ifdef CONFIG_DEBUG_MEMCARD_WARN
- # define mcwarn _warn
- #else
- # define mcwarn _none
- #endif
- #ifdef CONFIG_DEBUG_MEMCARD_INFO
- # define mcinfo _info
- #else
- # define mcinfo _none
- #endif
- #ifdef CONFIG_DEBUG_SENSORS_ERROR
- # define snerr _err
- #else
- # define snerr _none
- #endif
- #ifdef CONFIG_DEBUG_SENSORS_WARN
- # define snwarn _warn
- #else
- # define snwarn _none
- #endif
- #ifdef CONFIG_DEBUG_SENSORS_INFO
- # define sninfo _info
- #else
- # define sninfo _none
- #endif
- #ifdef CONFIG_DEBUG_SPI_ERROR
- # define spierr _err
- #else
- # define spierr _none
- #endif
- #ifdef CONFIG_DEBUG_SPI_WARN
- # define spiwarn _warn
- #else
- # define spiwarn _none
- #endif
- #ifdef CONFIG_DEBUG_SPI_INFO
- # define spiinfo _info
- #else
- # define spiinfo _none
- #endif
- #ifdef CONFIG_DEBUG_TIMER_ERROR
- # define tmrerr _err
- #else
- # define tmrerr _none
- #endif
- #ifdef CONFIG_DEBUG_TIMER_WARN
- # define tmrwarn _warn
- #else
- # define tmrwarn _none
- #endif
- #ifdef CONFIG_DEBUG_TIMER_INFO
- # define tmrinfo _info
- #else
- # define tmrinfo _none
- #endif
- #ifdef CONFIG_DEBUG_USB_ERROR
- # define uerr _err
- #else
- # define uerr _none
- #endif
- #ifdef CONFIG_DEBUG_USB_WARN
- # define uwarn _warn
- #else
- # define uwarn _none
- #endif
- #ifdef CONFIG_DEBUG_USB_INFO
- # define uinfo _info
- #else
- # define uinfo _none
- #endif
- #ifdef CONFIG_DEBUG_WATCHDOG_ERROR
- # define wderr _err
- #else
- # define wderr _none
- #endif
- #ifdef CONFIG_DEBUG_WATCHDOG_WARN
- # define wdwarn _warn
- #else
- # define wdwarn _none
- #endif
- #ifdef CONFIG_DEBUG_WATCHDOG_INFO
- # define wdinfo _info
- #else
- # define wdinfo _none
- #endif
- #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
- /* Buffer dumping macros do not depend on varargs */
- #ifdef CONFIG_DEBUG_ERROR
- # define errdumpbuffer(m,b,n) lib_dumpbuffer(m,b,n)
- # ifdef CONFIG_DEBUG_INFO
- # define infodumpbuffer(m,b,n) lib_dumpbuffer(m,b,n)
- # else
- # define infodumpbuffer(m,b,n)
- # endif
- #else
- # define errdumpbuffer(m,b,n)
- # define infodumpbuffer(m,b,n)
- # endif
- /* Subsystem specific debug */
- #ifdef CONFIG_DEBUG_MM
- # define merrdumpbuffer(m,b,n) errdumpbuffer(m,b,n)
- # define minfodumpbuffer(m,b,n) infodumpbuffer(m,b,n)
- #else
- # define merrdumpbuffer(m,b,n)
- # define minfodumpbuffer(m,b,n)
- #endif
- #ifdef CONFIG_DEBUG_SCHED
- # define serrdumpbuffer(m,b,n) errdumpbuffer(m,b,n)
- # define sinfodumpbuffer(m,b,n) infodumpbuffer(m,b,n)
- #else
- # define serrdumpbuffer(m,b,n)
- # define sinfodumpbuffer(m,b,n)
- #endif
- #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
- #ifdef CONFIG_DEBUG_PAGING
- # define pgerrdumpbuffer(m,b,n) errdumpbuffer(m,b,n)
- # define pginfodumpbuffer(m,b,n) infodumpbuffer(m,b,n)
- #else
- # define pgerrdumpbuffer(m,b,n)
- # define pginfodumpbuffer(m,b,n)
- #endif
- #ifdef CONFIG_DEBUG_NET
- # define nerrdumpbuffer(m,b,n) errdumpbuffer(m,b,n)
- # define ninfodumpbuffer(m,b,n) infodumpbuffer(m,b,n)
- #else
- # define nerrdumpbuffer(m,b,n)
- # define ninfodumpbuffer(m,b,n)
- #endif
- #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
- #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
- #ifdef CONFIG_DEBUG_FS
- # define ferrdumpbuffer(m,b,n) errdumpbuffer(m,b,n)
- # define finfodumpbuffer(m,b,n) infodumpbuffer(m,b,n)
- #else
- # define ferrdumpbuffer(m,b,n)
- # define finfodumpbuffer(m,b,n)
- #endif
- #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
- #ifdef CONFIG_DEBUG_INPUT
- # define ierrdumpbuffer(m,b,n) errdumpbuffer(m,b,n)
- # define iinfodumpbuffer(m,b,n) infodumpbuffer(m,b,n)
- #else
- # define ierrdumpbuffer(m,b,n)
- # define iinfodumpbuffer(m,b,n)
- #endif
- #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
- #ifdef CONFIG_DEBUG_GRAPHICS
- # define gerrdumpbuffer(m,b,n) errdumpbuffer(m,b,n)
- # define ginfodumpbuffer(m,b,n) infodumpbuffer(m,b,n)
- #else
- # define gerrdumpbuffer(m,b,n)
- # define ginfodumpbuffer(m,b,n)
- #endif
- #ifdef CONFIG_DEBUG_BINFMT
- # define berrdumpbuffer(m,b,n) errdumpbuffer(m,b,n)
- # define binfodumpbuffer(m,b,n) infodumpbuffer(m,b,n)
- #else
- # define berrdumpbuffer(m,b,n)
- # define binfodumpbuffer(m,b,n)
- #endif
- #ifdef CONFIG_DEBUG_LIB
- # define lerrdumpbuffer(m,b,n) errdumpbuffer(m,b,n)
- # define linfodumpbuffer(m,b,n) infodumpbuffer(m,b,n)
- #else
- # define lerrdumpbuffer(m,b,n)
- # define linfodumpbuffer(m,b,n)
- #endif
- #ifdef CONFIG_DEBUG_AUDIO
- # define auderrdumpbuffer(m,b,n) errdumpbuffer(m,b,n)
- # define audinfodumpbuffer(m,b,n) infodumpbuffer(m,b,n)
- #else
- # define auderrdumpbuffer(m,b,n)
- # define audinfodumpbuffer(m,b,n)
- #endif
- #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
- #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
- #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
- #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
- #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
- #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
- #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
- #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
- #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
- #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
- #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
- #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
- #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
- /****************************************************************************
- * Public Function Prototypes
- ****************************************************************************/
- #if defined(__cplusplus)
- extern "C"
- {
- #endif
- /* Dump a buffer of data */
- void lib_dumpbuffer(FAR const char *msg, FAR const uint8_t *buffer,
- unsigned int buflen);
- /* Do a pretty buffer dump from multiple buffers. */
- void lib_dumpvbuffer(FAR const char *msg, FAR const struct iovec *iov,
- int iovcnt);
- /* The system logging interfaces are normally accessed via the macros
- * 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
- * arguments, then these additional APIs will be built.
- */
- #ifndef CONFIG_CPP_HAVE_VARARGS
- #ifdef CONFIG_DEBUG_ALERT
- void _alert(const char *format, ...);
- #endif
- #ifdef CONFIG_DEBUG_ERROR
- void _err(const char *format, ...);
- #endif
- #ifdef CONFIG_DEBUG_WARN
- void _warn(const char *format, ...);
- #endif
- #ifdef CONFIG_DEBUG_INFO
- void _info(const char *format, ...);
- #endif
- #endif /* CONFIG_CPP_HAVE_VARARGS */
- #if defined(__cplusplus)
- }
- #endif
- #endif /* __INCLUDE_DEBUG_H */
|