| /* Copyright 2013 The ChromiumOS Authors |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| |
| #ifndef VBOOT_REFERENCE_CROSSYSTEM_H_ |
| #define VBOOT_REFERENCE_CROSSYSTEM_H_ |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| #include <stddef.h> |
| #include <stdint.h> |
| |
| /* Recommended size for string property buffers used with |
| * VbGetSystemPropertyString(). */ |
| #define VB_MAX_STRING_PROPERTY ((size_t) 8192) |
| |
| /* Reads the system SKU ID. |
| * |
| * Returns 0 if success, -1 if error. */ |
| int VbGetSystemSkuId(uint32_t *sku_id); |
| |
| /* Reads a system property integer. |
| * |
| * Returns the property value, or -1 if error. */ |
| int VbGetSystemPropertyInt(const char *name); |
| |
| /* Read a system property string into a destination buffer of the |
| * specified size. Returned string will be null-terminated. If the |
| * buffer is too small, the returned string will be truncated. |
| * |
| * The caller can expect an un-truncated value if the size provided is |
| * at least VB_MAX_STRING_PROPERTY. |
| * |
| * Returns 0 if success, -1 if error. */ |
| int VbGetSystemPropertyString(const char *name, char *dest, |
| size_t size); |
| |
| /* Sets a system property integer. |
| * |
| * Returns 0 if success, -1 if error. */ |
| int VbSetSystemPropertyInt(const char *name, int value); |
| |
| /* Set a system property string. |
| * |
| * The maximum length of the value accepted depends on the specific |
| * property, not on VB_MAX_STRING_PROPERTY. |
| * |
| * Returns 0 if success, -1 if error. */ |
| int VbSetSystemPropertyString(const char *name, const char *value); |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif /* VBOOT_REFERENCE_CROSSYSTEM_H_ */ |