Linux Audio

Check our new training course

Embedded Linux Audio

Check our new training course
with Creative Commons CC-BY-SA
lecture materials

Bootlin logo

Elixir Cross Referencer

Loading...
/*
 * Copyright (c) 2018 Nordic Semiconductor ASA
 *
 * SPDX-License-Identifier: Apache-2.0
 */
#ifndef EXT_LOG_SYSTEM_H
#define EXT_LOG_SYSTEM_H

#ifdef __cplusplus
extern "C" {
#endif

/** Log message priority levels */
enum ext_log_level {
	EXT_LOG_CRITICAL,
	EXT_LOG_ERROR,
	EXT_LOG_WARNING,
	EXT_LOG_NOTICE,
	EXT_LOG_INFO,
	EXT_LOG_DEBUG
};

/** Log message handler type. */
typedef void (*ext_log_handler)(enum ext_log_level level,
				const char *format, ...);

/** @brief Set log handler function.
 *
 * @param handler External log handler.
 */
void ext_log_handler_set(ext_log_handler handler);

/** @brief Example function which is using custom log API. */
void ext_log_system_foo(void);

/** @brief Custom log API. */
#define ext_log(level, ...) log_handler(level, __VA_ARGS__)

#ifdef __cplusplus
}
#endif

#endif /* EXT_LOG_SYSTEM_H */