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