1 /******************************************************************************
2  *
3  *  Copyright (C) 2016 Google, Inc.
4  *
5  *  Licensed under the Apache License, Version 2.0 (the "License");
6  *  you may not use this file except in compliance with the License.
7  *  You may obtain a copy of the License at:
8  *
9  *  http://www.apache.org/licenses/LICENSE-2.0
10  *
11  *  Unless required by applicable law or agreed to in writing, software
12  *  distributed under the License is distributed on an "AS IS" BASIS,
13  *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  *  See the License for the specific language governing permissions and
15  *  limitations under the License.
16  *
17  ******************************************************************************/
18 
19 #pragma once
20 
21 #include <cstdint>
22 #if defined(OS_GENERIC)
23 #define PROPERTY_VALUE_MAX 92
24 #else
25 #include <cutils/properties.h>
26 #endif  // defined(OS_GENERIC)
27 
28 // Get value associated with key |key| into |value|.
29 // Returns the length of the value which will never be greater than
30 // PROPERTY_VALUE_MAX - 1 and will always be zero terminated.
31 // (the length does not include the terminating zero).
32 // If the property read fails or returns an empty value, the |default_value|
33 // is used (if nonnull).  If the |default_value| is null, zero is returned.
34 int osi_property_get(const char* key, char* value, const char* default_value);
35 
36 // Write value of property associated with key |key| to |value|.
37 // Returns 0 on success, < 0 on failure
38 int osi_property_set(const char* key, const char* value);
39 
40 // Adapter function for property_get_int32 in
41 // libcutils/include/cutils/properties.h
42 //
43 // returns the value of |key| truncated and coerced into an
44 // int32_t. If the property is not set, then the |default_value| is used.
45 int32_t osi_property_get_int32(const char* key, int32_t default_value);
46