/* * Copyright 2024 Google LLC * * SPDX-License-Identifier: Apache-2.0 */ #ifndef ZEPHYR_INCLUDE_SYS_PRINTK_HOOKS_H_ #define ZEPHYR_INCLUDE_SYS_PRINTK_HOOKS_H_ /** * @brief printk function handler * * @param c Character to output * * @returns The character passed as input. */ typedef int (*printk_hook_fn_t)(int c); /** * @brief Install the character output routine for printk * * To be called by the platform's console driver at init time. Installs a * routine that outputs one ASCII character at a time. * @param fn putc routine to install */ void __printk_hook_install(printk_hook_fn_t fn); /** * @brief Get the current character output routine for printk * * To be called by any console driver that would like to save * current hook - if any - for later re-installation. * * @return a function pointer or NULL if no hook is set */ printk_hook_fn_t __printk_get_hook(void); #endif /* ZEPHYR_INCLUDE_SYS_PRINTK_HOOKS_H_ */