1 /* Copyright (c) 2013 The Chromium OS Authors. All rights reserved. 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 the passed buffer, or NULL if error. */ 32 const char* 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