xref: /aosp_15_r20/external/vboot_reference/host/lib/include/chromeos_config.h (revision 8617a60d3594060b7ecbd21bc622a7c14f3cf2bc)
1 /* Copyright 2020 The ChromiumOS Authors
2  * Use of this source code is governed by a BSD-style license that can be
3  * found in the LICENSE file.
4  */
5 
6 #ifndef VBOOT_REFERENCE_CHROMEOS_CONFIG_H_
7 #define VBOOT_REFERENCE_CHROMEOS_CONFIG_H_
8 
9 #include <stdbool.h>
10 #include <stdint.h>
11 
12 #include "2common.h"
13 #include "2return_codes.h"
14 
15 /**
16  * Get a value from the model configuration on the device as a string.
17  *
18  * Note: this function allocates memory by its use of vb2_read_file, and relies
19  * on the caller to free the allocated memory. The output parameter will be set
20  * to NULL upon failure, so free can be safely called on this parameter.
21  *
22  * @param path          The path in the config schema to the object containing
23  *                      the requested property.
24  * @param property      The name of the requested property.
25  * @param val_out       Output parameter which gets assigned to a
26  *                      null-terminated string.
27  * @return VB2_SUCCESS on success, or a relevant error upon error.
28  */
29 vb2_error_t chromeos_config_get_string(const char *path, const char *property,
30 				       char **val_out);
31 
32 /**
33  * Get a value from the model configuration on the device as a boolean.
34  *
35  * @param path          The path in the config schema to the object containing
36  *                      the requested property.
37  * @param property      The name of the requested property.
38  * @param val_out       Output parameter which gets assigned to a boolean.
39  * @return VB2_SUCCESS on success, or a relevant error upon error.
40  */
41 vb2_error_t chromeos_config_get_boolean(const char *path, const char *property,
42 					bool *val_out);
43 
44 /**
45  * Get a value from the model configuration on the device as an integer.
46  *
47  * @param path          The path in the config schema to the object containing
48  *                      the requested property.
49  * @param property      The name of the requested property.
50  * @param val_out       Output parameter which gets assigned to an integer.
51  * @return VB2_SUCCESS on success, or a relevant error upon error.
52  */
53 vb2_error_t chromeos_config_get_integer(const char *path, const char *property,
54 					int *val_out);
55 
56 #endif /* VBOOT_REFERENCE_CHROMEOS_CONFIG_H_ */
57