Line data Source code
1 0 : /* 2 : * Copyright 2024 Google LLC 3 : * 4 : * SPDX-License-Identifier: Apache-2.0 5 : */ 6 : 7 : #ifndef ZEPHYR_INCLUDE_SYS_PRINTK_HOOKS_H_ 8 : #define ZEPHYR_INCLUDE_SYS_PRINTK_HOOKS_H_ 9 : 10 : /** 11 : * @brief printk function handler 12 : * 13 : * @param c Character to output 14 : * 15 : * @returns The character passed as input. 16 : */ 17 1 : typedef int (*printk_hook_fn_t)(int c); 18 : 19 : /** 20 : * @brief Install the character output routine for printk 21 : * 22 : * To be called by the platform's console driver at init time. Installs a 23 : * routine that outputs one ASCII character at a time. 24 : * @param fn putc routine to install 25 : */ 26 : void __printk_hook_install(printk_hook_fn_t fn); 27 : 28 : /** 29 : * @brief Get the current character output routine for printk 30 : * 31 : * To be called by any console driver that would like to save 32 : * current hook - if any - for later re-installation. 33 : * 34 : * @return a function pointer or NULL if no hook is set 35 : */ 36 : printk_hook_fn_t __printk_get_hook(void); 37 : 38 : #endif /* ZEPHYR_INCLUDE_SYS_PRINTK_HOOKS_H_ */