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