xref: /aosp_15_r20/external/vboot_reference/host/include/crossystem.h (revision 8617a60d3594060b7ecbd21bc622a7c14f3cf2bc)
1*8617a60dSAndroid Build Coastguard Worker /* Copyright 2013 The ChromiumOS Authors
2*8617a60dSAndroid Build Coastguard Worker  * Use of this source code is governed by a BSD-style license that can be
3*8617a60dSAndroid Build Coastguard Worker  * found in the LICENSE file.
4*8617a60dSAndroid Build Coastguard Worker  */
5*8617a60dSAndroid Build Coastguard Worker 
6*8617a60dSAndroid Build Coastguard Worker #ifndef VBOOT_REFERENCE_CROSSYSTEM_H_
7*8617a60dSAndroid Build Coastguard Worker #define VBOOT_REFERENCE_CROSSYSTEM_H_
8*8617a60dSAndroid Build Coastguard Worker 
9*8617a60dSAndroid Build Coastguard Worker #ifdef __cplusplus
10*8617a60dSAndroid Build Coastguard Worker extern "C" {
11*8617a60dSAndroid Build Coastguard Worker #endif
12*8617a60dSAndroid Build Coastguard Worker 
13*8617a60dSAndroid Build Coastguard Worker #include <stddef.h>
14*8617a60dSAndroid Build Coastguard Worker 
15*8617a60dSAndroid Build Coastguard Worker /* Recommended size for string property buffers used with
16*8617a60dSAndroid Build Coastguard Worker  * VbGetSystemPropertyString(). */
17*8617a60dSAndroid Build Coastguard Worker #define VB_MAX_STRING_PROPERTY     ((size_t) 8192)
18*8617a60dSAndroid Build Coastguard Worker 
19*8617a60dSAndroid Build Coastguard Worker /* Reads a system property integer.
20*8617a60dSAndroid Build Coastguard Worker  *
21*8617a60dSAndroid Build Coastguard Worker  * Returns the property value, or -1 if error. */
22*8617a60dSAndroid Build Coastguard Worker int VbGetSystemPropertyInt(const char *name);
23*8617a60dSAndroid Build Coastguard Worker 
24*8617a60dSAndroid Build Coastguard Worker /* Read a system property string into a destination buffer of the
25*8617a60dSAndroid Build Coastguard Worker  * specified size.  Returned string will be null-terminated.  If the
26*8617a60dSAndroid Build Coastguard Worker  * buffer is too small, the returned string will be truncated.
27*8617a60dSAndroid Build Coastguard Worker  *
28*8617a60dSAndroid Build Coastguard Worker  * The caller can expect an un-truncated value if the size provided is
29*8617a60dSAndroid Build Coastguard Worker  * at least VB_MAX_STRING_PROPERTY.
30*8617a60dSAndroid Build Coastguard Worker  *
31*8617a60dSAndroid Build Coastguard Worker  * Returns 0 if success, -1 if error. */
32*8617a60dSAndroid Build Coastguard Worker int VbGetSystemPropertyString(const char *name, char *dest,
33*8617a60dSAndroid Build Coastguard Worker 				      size_t size);
34*8617a60dSAndroid Build Coastguard Worker 
35*8617a60dSAndroid Build Coastguard Worker /* Sets a system property integer.
36*8617a60dSAndroid Build Coastguard Worker  *
37*8617a60dSAndroid Build Coastguard Worker  * Returns 0 if success, -1 if error. */
38*8617a60dSAndroid Build Coastguard Worker int VbSetSystemPropertyInt(const char *name, int value);
39*8617a60dSAndroid Build Coastguard Worker 
40*8617a60dSAndroid Build Coastguard Worker /* Set a system property string.
41*8617a60dSAndroid Build Coastguard Worker  *
42*8617a60dSAndroid Build Coastguard Worker  * The maximum length of the value accepted depends on the specific
43*8617a60dSAndroid Build Coastguard Worker  * property, not on VB_MAX_STRING_PROPERTY.
44*8617a60dSAndroid Build Coastguard Worker  *
45*8617a60dSAndroid Build Coastguard Worker  * Returns 0 if success, -1 if error. */
46*8617a60dSAndroid Build Coastguard Worker int VbSetSystemPropertyString(const char *name, const char *value);
47*8617a60dSAndroid Build Coastguard Worker 
48*8617a60dSAndroid Build Coastguard Worker #ifdef __cplusplus
49*8617a60dSAndroid Build Coastguard Worker }
50*8617a60dSAndroid Build Coastguard Worker #endif
51*8617a60dSAndroid Build Coastguard Worker 
52*8617a60dSAndroid Build Coastguard Worker #endif  /* VBOOT_REFERENCE_CROSSYSTEM_H_ */
53