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_ */
|