1 /* Copyright 2013 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_CROSSYSTEM_H_ 7 #define VBOOT_REFERENCE_CROSSYSTEM_H_ 8 9 #ifdef __cplusplus 10 extern "C" { 11 #endif 12 13 #include <stddef.h> 14 15 /* Recommended size for string property buffers used with 16 * VbGetSystemPropertyString(). */ 17 #define VB_MAX_STRING_PROPERTY ((size_t) 8192) 18 19 /* Reads a system property integer. 20 * 21 * Returns the property value, or -1 if error. */ 22 int VbGetSystemPropertyInt(const char *name); 23 24 /* Read a system property string into a destination buffer of the 25 * specified size. Returned string will be null-terminated. If the 26 * buffer is too small, the returned string will be truncated. 27 * 28 * The caller can expect an un-truncated value if the size provided is 29 * at least VB_MAX_STRING_PROPERTY. 30 * 31 * Returns 0 if success, -1 if error. */ 32 int VbGetSystemPropertyString(const char *name, char *dest, 33 size_t size); 34 35 /* Sets a system property integer. 36 * 37 * Returns 0 if success, -1 if error. */ 38 int VbSetSystemPropertyInt(const char *name, int value); 39 40 /* Set a system property string. 41 * 42 * The maximum length of the value accepted depends on the specific 43 * property, not on VB_MAX_STRING_PROPERTY. 44 * 45 * Returns 0 if success, -1 if error. */ 46 int VbSetSystemPropertyString(const char *name, const char *value); 47 48 #ifdef __cplusplus 49 } 50 #endif 51 52 #endif /* VBOOT_REFERENCE_CROSSYSTEM_H_ */ 53