mirror of
https://git.rtems.org/rtems-libbsd/
synced 2025-05-13 19:29:21 +08:00
vprintf: Add handler that mutes all output.
This adds a vprintf handler that can be used to suppress all outputs of the libbsd.
This commit is contained in:
parent
d300a34424
commit
7ec935e03f
24
libbsd.txt
24
libbsd.txt
@ -265,6 +265,30 @@ their own implementation of the `rtems_bsd_get_allocator_domain_size()`
|
||||
function (for example in the module which calls `rtems_bsd_initialize()`) if
|
||||
different values are desired. The default size is 8MiB for all domains.
|
||||
|
||||
=== Redirecting or Disabling the Output ===
|
||||
|
||||
A lot of system messages are printed to the stdout by default. If you want to
|
||||
redirect them you can overwrite the default print handler. That can even be done
|
||||
before the libbsd initialization to catch all messages. An example would look
|
||||
like follows:
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
int my_vprintf_handler(int level, const char *fmt, va_list ap) {
|
||||
/* Do something with the messages. */
|
||||
|
||||
return number_of_printed_chars;
|
||||
}
|
||||
|
||||
...
|
||||
/* In your initialization: */
|
||||
rtems_bsd_vprintf_handler old;
|
||||
old = rtems_bsd_set_vprintf_handler(my_vprintf_handler);
|
||||
...
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
As a special case, you can set the `rtems_bsd_vprintf_handler_mute(...)`
|
||||
provided by libbsd to suppress all output.
|
||||
|
||||
== Network Stack Features
|
||||
|
||||
http://roy.marples.name/projects/dhcpcd/index[DHCPCD(8)]:: DHCP client
|
||||
|
@ -294,6 +294,15 @@ int rtems_bsd_vprintf(int level, const char *fmt, va_list ap);
|
||||
*/
|
||||
int rtems_bsd_setlogpriority(const char* priority);
|
||||
|
||||
/**
|
||||
* @brief Set this vprintf handler to suppress all output.
|
||||
*
|
||||
* @retval Allways 0.
|
||||
*
|
||||
* @see rtems_bsd_vprintf() for the parameters.
|
||||
*/
|
||||
int rtems_bsd_vprintf_handler_mute(int level, const char *fmt, va_list ap);
|
||||
|
||||
/** @} */
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
@ -103,6 +103,16 @@ default_vprintf_handler(int level, const char *fmt, va_list ap)
|
||||
static int (*vprintf_handler)(int, const char *, va_list) =
|
||||
default_vprintf_handler;
|
||||
|
||||
int
|
||||
rtems_bsd_vprintf_handler_mute(int level, const char *fmt, va_list ap)
|
||||
{
|
||||
(void) level;
|
||||
(void) fmt;
|
||||
(void) ap;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
rtems_bsd_vprintf_handler
|
||||
rtems_bsd_set_vprintf_handler(rtems_bsd_vprintf_handler new_handler)
|
||||
{
|
||||
|
Loading…
x
Reference in New Issue
Block a user