1 /******************************************************************************
2  *
3  *  Copyright 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 #include <vector>
23 
24 #ifndef PROPERTY_VALUE_MAX
25 #define PROPERTY_VALUE_MAX 92
26 #endif  // PROPERTY_VALUE_MAX
27 
28 #define BUILD_SANITY_PROPERTY_VALUE_MAX 92
29 
30 // Get value associated with key |key| into |value|.
31 // Returns the length of the value which will never be greater than
32 // PROPERTY_VALUE_MAX - 1 and will always be zero terminated.
33 // (the length does not include the terminating zero).
34 // If the property read fails or returns an empty value, the |default_value|
35 // is used (if nonnull).  If the |default_value| is null, zero is returned.
36 int osi_property_get(const char* key, char* value, const char* default_value);
37 
38 // Write value of property associated with key |key| to |value|.
39 // Returns 0 on success, < 0 on failure
40 int osi_property_set(const char* key, const char* value);
41 
42 // Adapter function for property_get_int32 in
43 // libcutils/include/cutils/properties.h
44 //
45 // returns the value of |key| truncated and coerced into an
46 // int32_t. If the property is not set, then the |default_value| is used.
47 int32_t osi_property_get_int32(const char* key, int32_t default_value);
48 
49 // Adapter function for property_get_bool in
50 // libcutils/include/cutils/properties.h
51 //
52 // returns the value of |key| coerced into a bool. If the property is not set,
53 // then the |default_value| is used.
54 bool osi_property_get_bool(const char* key, bool default_value);
55 
56 // Helper function that returns the value of |key| coerced into a vector of
57 // uint32_t. If the property is not set, then the |default_value| is used.
58 std::vector<uint32_t> osi_property_get_uintlist(
59     const char* key, std::vector<uint32_t> default_value);