| /* | 
 |  * Copyright (C) 2006 The Android Open Source Project | 
 |  * | 
 |  * Licensed under the Apache License, Version 2.0 (the "License"); | 
 |  * you may not use this file except in compliance with the License. | 
 |  * You may obtain a copy of the License at | 
 |  * | 
 |  *      http://www.apache.org/licenses/LICENSE-2.0 | 
 |  * | 
 |  * Unless required by applicable law or agreed to in writing, software | 
 |  * distributed under the License is distributed on an "AS IS" BASIS, | 
 |  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
 |  * See the License for the specific language governing permissions and | 
 |  * limitations under the License. | 
 |  */ | 
 |  | 
 | #ifndef __CUTILS_PROPERTIES_H | 
 | #define __CUTILS_PROPERTIES_H | 
 |  | 
 | #ifdef __cplusplus | 
 | extern "C" { | 
 | #endif | 
 |  | 
 | /* System properties are *small* name value pairs managed by the | 
 | ** property service.  If your data doesn't fit in the provided | 
 | ** space it is not appropriate for a system property. | 
 | ** | 
 | ** WARNING: system/bionic/include/sys/system_properties.h also defines | 
 | **          these, but with different names.  (TODO: fix that) | 
 | */ | 
 | #define PROPERTY_KEY_MAX   32 | 
 | #define PROPERTY_VALUE_MAX  92 | 
 |  | 
 | /* property_get: returns the length of the value which will never be | 
 | ** greater than PROPERTY_VALUE_MAX - 1 and will always be zero terminated. | 
 | ** (the length does not include the terminating zero). | 
 | ** | 
 | ** If the property read fails or returns an empty value, the default | 
 | ** value is used (if nonnull). | 
 | */ | 
 | int property_get(const char *key, char *value, const char *default_value); | 
 |  | 
 | /* property_set: returns 0 on success, < 0 on failure | 
 | */ | 
 | int property_set(const char *key, const char *value); | 
 |      | 
 | int property_list(void (*propfn)(const char *key, const char *value, void *cookie), void *cookie);     | 
 |  | 
 |  | 
 | #ifdef HAVE_SYSTEM_PROPERTY_SERVER | 
 | /* | 
 |  * We have an external property server instead of built-in libc support. | 
 |  * Used by the simulator. | 
 |  */ | 
 | #define SYSTEM_PROPERTY_PIPE_NAME       "/tmp/android-sysprop" | 
 |  | 
 | enum { | 
 |     kSystemPropertyUnknown = 0, | 
 |     kSystemPropertyGet, | 
 |     kSystemPropertySet, | 
 |     kSystemPropertyList | 
 | }; | 
 | #endif /*HAVE_SYSTEM_PROPERTY_SERVER*/ | 
 |  | 
 |  | 
 | #ifdef __cplusplus | 
 | } | 
 | #endif | 
 |  | 
 | #endif |