xref: /rk3399_ARM-atf/include/lib/bl_aux_params/bl_aux_params.h (revision 72e8f2456af54b75a0a1d92aadfce0b4bcde6ba1)
1b852d229SJulius Werner /*
2*4c700c15SGovindraj Raja  * Copyright (c) 2019, Arm Limited and Contributors. All rights reserved.
3b852d229SJulius Werner  *
4b852d229SJulius Werner  * SPDX-License-Identifier: BSD-3-Clause
5b852d229SJulius Werner  */
6b852d229SJulius Werner #ifndef LIB_BL_AUX_PARAMS_H
7b852d229SJulius Werner #define LIB_BL_AUX_PARAMS_H
8b852d229SJulius Werner 
9b852d229SJulius Werner #include <stdbool.h>
10b852d229SJulius Werner #include <stdint.h>
11b852d229SJulius Werner 
1257bf6057SJulius Werner #include <export/lib/bl_aux_params/bl_aux_params_exp.h>
13b852d229SJulius Werner 
14b852d229SJulius Werner /*
15b852d229SJulius Werner  * Handler function that handles an individual aux parameter. Return true if
167ece6597SMichal Simek  * the parameter was handled, and false if bl_aux_params_parse() should make its
17b852d229SJulius Werner  * own attempt at handling it (for generic parameters).
18b852d229SJulius Werner  */
19b852d229SJulius Werner typedef bool (*bl_aux_param_handler_t)(struct bl_aux_param_header *param);
20b852d229SJulius Werner 
21b852d229SJulius Werner /*
22b852d229SJulius Werner  * Interprets head as the start of an aux parameter list, and passes the
23b852d229SJulius Werner  * parameters individually to handler(). Handles generic parameters directly if
24b852d229SJulius Werner  * handler() hasn't already done so. If only generic parameters are expected,
25b852d229SJulius Werner  * handler() can be NULL.
26b852d229SJulius Werner  */
27b852d229SJulius Werner void bl_aux_params_parse(u_register_t head,
28b852d229SJulius Werner 			 bl_aux_param_handler_t handler);
29b852d229SJulius Werner 
30b852d229SJulius Werner #endif /* LIB_BL_AUX_PARAMS_H */
31