111767SAnurag.Maskey@Sun.COM /* 211767SAnurag.Maskey@Sun.COM * CDDL HEADER START 311767SAnurag.Maskey@Sun.COM * 411767SAnurag.Maskey@Sun.COM * The contents of this file are subject to the terms of the 511767SAnurag.Maskey@Sun.COM * Common Development and Distribution License (the "License"). 611767SAnurag.Maskey@Sun.COM * You may not use this file except in compliance with the License. 711767SAnurag.Maskey@Sun.COM * 811767SAnurag.Maskey@Sun.COM * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 911767SAnurag.Maskey@Sun.COM * or http://www.opensolaris.org/os/licensing. 1011767SAnurag.Maskey@Sun.COM * See the License for the specific language governing permissions 1111767SAnurag.Maskey@Sun.COM * and limitations under the License. 1211767SAnurag.Maskey@Sun.COM * 1311767SAnurag.Maskey@Sun.COM * When distributing Covered Code, include this CDDL HEADER in each 1411767SAnurag.Maskey@Sun.COM * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1511767SAnurag.Maskey@Sun.COM * If applicable, add the following below this CDDL HEADER, with the 1611767SAnurag.Maskey@Sun.COM * fields enclosed by brackets "[]" replaced with your own identifying 1711767SAnurag.Maskey@Sun.COM * information: Portions Copyright [yyyy] [name of copyright owner] 1811767SAnurag.Maskey@Sun.COM * 1911767SAnurag.Maskey@Sun.COM * CDDL HEADER END 2011767SAnurag.Maskey@Sun.COM */ 2111767SAnurag.Maskey@Sun.COM /* 2211767SAnurag.Maskey@Sun.COM * Copyright 2010 Sun Microsystems, Inc. All rights reserved. 2311767SAnurag.Maskey@Sun.COM * Use is subject to license terms. 2411767SAnurag.Maskey@Sun.COM */ 2511767SAnurag.Maskey@Sun.COM 2611767SAnurag.Maskey@Sun.COM /* 2711767SAnurag.Maskey@Sun.COM * This file contains hidden implementation structures and APIs of libnwam, 2811767SAnurag.Maskey@Sun.COM * and is not installed in the proto area. Implementation is MT safe. 2911767SAnurag.Maskey@Sun.COM */ 3011767SAnurag.Maskey@Sun.COM 3111767SAnurag.Maskey@Sun.COM 3211767SAnurag.Maskey@Sun.COM #ifndef _LIBNWAM_IMPL_H 3311767SAnurag.Maskey@Sun.COM #define _LIBNWAM_IMPL_H 3411767SAnurag.Maskey@Sun.COM 3511767SAnurag.Maskey@Sun.COM #ifdef __cplusplus 3611767SAnurag.Maskey@Sun.COM extern "C" { 3711767SAnurag.Maskey@Sun.COM #endif 3811767SAnurag.Maskey@Sun.COM 3911767SAnurag.Maskey@Sun.COM #include <libnwam_priv.h> 4011767SAnurag.Maskey@Sun.COM #include <libnwam.h> 4111767SAnurag.Maskey@Sun.COM 4211767SAnurag.Maskey@Sun.COM /* 4311767SAnurag.Maskey@Sun.COM * We separate global flags (which are applicable to all object types) from 4411767SAnurag.Maskey@Sun.COM * local flags (which only apply to specific object types). These definitions 4511767SAnurag.Maskey@Sun.COM * mask off the global vs. local portions of the flags value, with the former 4611767SAnurag.Maskey@Sun.COM * being the low-order 32 bits and the latter the high-order 32 bits. 4711767SAnurag.Maskey@Sun.COM */ 4811767SAnurag.Maskey@Sun.COM #define NWAM_FLAG_GLOBAL_MASK 0xFFFFFFFF 4911767SAnurag.Maskey@Sun.COM #define NWAM_FLAG_LOCAL_MASK 0xFFFFFFFFULL << 32 5011767SAnurag.Maskey@Sun.COM #define NWAM_WALK_FILTER_MASK NWAM_FLAG_LOCAL_MASK 5111767SAnurag.Maskey@Sun.COM 5211767SAnurag.Maskey@Sun.COM /* 5311767SAnurag.Maskey@Sun.COM * Maximum object size is the size of a maximally-sized name/values property 5411767SAnurag.Maskey@Sun.COM * multiplied by the maximum number of properties. The maximum object size 5511767SAnurag.Maskey@Sun.COM * and the maximum number of objects are used to determine how much space 5611767SAnurag.Maskey@Sun.COM * needs to be allocated for door calls to retrieve objects from the 5711767SAnurag.Maskey@Sun.COM * backend. 5811767SAnurag.Maskey@Sun.COM */ 5911767SAnurag.Maskey@Sun.COM #define NWAM_MAX_OBJECT_LEN \ 6011767SAnurag.Maskey@Sun.COM ((NWAM_MAX_NAME_LEN + \ 6111767SAnurag.Maskey@Sun.COM (NWAM_MAX_VALUE_LEN * NWAM_MAX_NUM_VALUES)) * \ 6211767SAnurag.Maskey@Sun.COM NWAM_MAX_NUM_PROPERTIES) 6311767SAnurag.Maskey@Sun.COM 6411767SAnurag.Maskey@Sun.COM #define NWAM_MAX_NUM_OBJECTS 4192 6511767SAnurag.Maskey@Sun.COM 6611767SAnurag.Maskey@Sun.COM #define NWAM_MAX_OBJECT_LIST_LEN \ 6711767SAnurag.Maskey@Sun.COM (NWAM_MAX_NUM_OBJECTS * NWAM_MAX_NAME_LEN) 6811767SAnurag.Maskey@Sun.COM 6911767SAnurag.Maskey@Sun.COM #define NWAM_BACKEND_DOOR_ARG_SIZE \ 7011767SAnurag.Maskey@Sun.COM (sizeof (nwam_backend_door_arg_t) + \ 7111767SAnurag.Maskey@Sun.COM (NWAM_MAX_OBJECT_LEN > NWAM_MAX_OBJECT_LIST_LEN ? \ 7211767SAnurag.Maskey@Sun.COM NWAM_MAX_OBJECT_LEN : NWAM_MAX_OBJECT_LIST_LEN)) 7311767SAnurag.Maskey@Sun.COM 7411767SAnurag.Maskey@Sun.COM 7511767SAnurag.Maskey@Sun.COM #define NWAMD_DOOR_ARG_SIZE \ 7611767SAnurag.Maskey@Sun.COM (sizeof (nwamd_door_arg_t) + \ 7711767SAnurag.Maskey@Sun.COM (NWAMD_MAX_NUM_WLANS * sizeof (nwam_wlan_t)); 7811767SAnurag.Maskey@Sun.COM 7911767SAnurag.Maskey@Sun.COM #define NWAM_CONF_DIR "/etc/nwam/" 8011767SAnurag.Maskey@Sun.COM 8111767SAnurag.Maskey@Sun.COM #define NWAM_LOC_OBJECT_STRING "loc" 8211767SAnurag.Maskey@Sun.COM #define NWAM_LOC_CONF_FILE NWAM_CONF_DIR "loc.conf" 8311767SAnurag.Maskey@Sun.COM 8411767SAnurag.Maskey@Sun.COM struct nwam_handle { 8511767SAnurag.Maskey@Sun.COM nwam_object_type_t nwh_object_type; 8611767SAnurag.Maskey@Sun.COM char nwh_name[NWAM_MAX_NAME_LEN]; 8711767SAnurag.Maskey@Sun.COM boolean_t nwh_committed; 8811767SAnurag.Maskey@Sun.COM void *nwh_data; 8911767SAnurag.Maskey@Sun.COM }; 9011767SAnurag.Maskey@Sun.COM 9111767SAnurag.Maskey@Sun.COM #define NWAM_OBJECT_NAMES_STRING "object-names" 9211767SAnurag.Maskey@Sun.COM #define NWAM_NCP_OBJECT_STRING "ncp" 9311767SAnurag.Maskey@Sun.COM #define NWAM_NCP_CONF_FILE_PRE "ncp-" 9411767SAnurag.Maskey@Sun.COM #define NWAM_NCP_CONF_FILE_SUF ".conf" 9511767SAnurag.Maskey@Sun.COM #define NWAM_NCU_LINK_NAME_PRE "link:" 9611767SAnurag.Maskey@Sun.COM #define NWAM_NCU_INTERFACE_NAME_PRE "interface:" 9711767SAnurag.Maskey@Sun.COM 9811767SAnurag.Maskey@Sun.COM struct nwam_value { 9911767SAnurag.Maskey@Sun.COM nwam_value_type_t nwv_value_type; 10011767SAnurag.Maskey@Sun.COM uint_t nwv_value_numvalues; 10111767SAnurag.Maskey@Sun.COM union { 10211767SAnurag.Maskey@Sun.COM boolean_t *nwv_boolean; 10311767SAnurag.Maskey@Sun.COM int64_t *nwv_int64; 10411767SAnurag.Maskey@Sun.COM uint64_t *nwv_uint64; 10511767SAnurag.Maskey@Sun.COM char **nwv_string; 10611767SAnurag.Maskey@Sun.COM } nwv_values; 10711767SAnurag.Maskey@Sun.COM }; 10811767SAnurag.Maskey@Sun.COM 10911767SAnurag.Maskey@Sun.COM /* Used in property table retrieval of property attributes */ 11011767SAnurag.Maskey@Sun.COM #define NWAM_TYPE_ANY 1 11111767SAnurag.Maskey@Sun.COM #define NWAM_CLASS_ANY 1 11211767SAnurag.Maskey@Sun.COM 11311767SAnurag.Maskey@Sun.COM typedef nwam_error_t (*nwam_prop_validate_func_t)(nwam_value_t); 11411767SAnurag.Maskey@Sun.COM 11511767SAnurag.Maskey@Sun.COM /* Used to hold validation/description data for properties */ 11611767SAnurag.Maskey@Sun.COM struct nwam_prop_table_entry { 11711767SAnurag.Maskey@Sun.COM const char *prop_name; 11811767SAnurag.Maskey@Sun.COM nwam_value_type_t prop_type; 11911767SAnurag.Maskey@Sun.COM boolean_t prop_is_readonly; 12011767SAnurag.Maskey@Sun.COM uint_t prop_min_numvalues; 12111767SAnurag.Maskey@Sun.COM uint_t prop_max_numvalues; 12211767SAnurag.Maskey@Sun.COM nwam_prop_validate_func_t prop_validate; 12311767SAnurag.Maskey@Sun.COM const char *prop_description; 12411767SAnurag.Maskey@Sun.COM uint64_t prop_type_membership; 12511767SAnurag.Maskey@Sun.COM uint64_t prop_class_membership; 12611767SAnurag.Maskey@Sun.COM }; 12711767SAnurag.Maskey@Sun.COM 12811767SAnurag.Maskey@Sun.COM struct nwam_prop_table { 12911767SAnurag.Maskey@Sun.COM uint_t num_entries; 13011767SAnurag.Maskey@Sun.COM struct nwam_prop_table_entry *entries; 13111767SAnurag.Maskey@Sun.COM }; 13211767SAnurag.Maskey@Sun.COM 13311767SAnurag.Maskey@Sun.COM #define NWAM_ENM_OBJECT_STRING "enm" 13411767SAnurag.Maskey@Sun.COM #define NWAM_ENM_CONF_FILE NWAM_CONF_DIR "enm.conf" 13511767SAnurag.Maskey@Sun.COM 13611767SAnurag.Maskey@Sun.COM #define NWAM_KNOWN_WLAN_OBJECT_STRING "known-wlan" 13711767SAnurag.Maskey@Sun.COM #define NWAM_KNOWN_WLAN_CONF_FILE NWAM_CONF_DIR "known-wlan.conf" 13811767SAnurag.Maskey@Sun.COM 13911767SAnurag.Maskey@Sun.COM /* Definitions that are used to map uint64 property values to strings */ 14011767SAnurag.Maskey@Sun.COM #define NWAM_ACTIVATION_MODE_MANUAL_STRING "manual" 14111767SAnurag.Maskey@Sun.COM #define NWAM_ACTIVATION_MODE_SYSTEM_STRING "system" 14211767SAnurag.Maskey@Sun.COM #define NWAM_ACTIVATION_MODE_PRIORITIZED_STRING "prioritized" 14311767SAnurag.Maskey@Sun.COM #define NWAM_ACTIVATION_MODE_CONDITIONAL_ANY_STRING "conditional-any" 14411767SAnurag.Maskey@Sun.COM #define NWAM_ACTIVATION_MODE_CONDITIONAL_ALL_STRING "conditional-all" 14511767SAnurag.Maskey@Sun.COM 14611767SAnurag.Maskey@Sun.COM #define NWAM_CONDITION_IS_STRING "is" 14711767SAnurag.Maskey@Sun.COM #define NWAM_CONDITION_IS_NOT_STRING "is-not" 14811767SAnurag.Maskey@Sun.COM #define NWAM_CONDITION_IS_IN_RANGE_STRING "is-in-range" 14911767SAnurag.Maskey@Sun.COM #define NWAM_CONDITION_IS_NOT_IN_RANGE_STRING "is-not-in-range" 15011767SAnurag.Maskey@Sun.COM #define NWAM_CONDITION_CONTAINS_STRING "contains" 15111767SAnurag.Maskey@Sun.COM #define NWAM_CONDITION_DOES_NOT_CONTAIN_STRING "does-not-contain" 15211767SAnurag.Maskey@Sun.COM 15311767SAnurag.Maskey@Sun.COM #define NWAM_CONDITION_OBJECT_TYPE_NCP_STRING "ncp" 15411767SAnurag.Maskey@Sun.COM #define NWAM_CONDITION_OBJECT_TYPE_NCU_STRING "ncu" 15511767SAnurag.Maskey@Sun.COM #define NWAM_CONDITION_OBJECT_TYPE_ENM_STRING "enm" 15611767SAnurag.Maskey@Sun.COM #define NWAM_CONDITION_OBJECT_TYPE_LOC_STRING "loc" 15711767SAnurag.Maskey@Sun.COM #define NWAM_CONDITION_OBJECT_TYPE_IP_ADDRESS_STRING "ip-address" 15811767SAnurag.Maskey@Sun.COM #define NWAM_CONDITION_OBJECT_TYPE_ADV_DOMAIN_STRING "advertised-domain" 15911767SAnurag.Maskey@Sun.COM #define NWAM_CONDITION_OBJECT_TYPE_SYS_DOMAIN_STRING "system-domain" 16011767SAnurag.Maskey@Sun.COM #define NWAM_CONDITION_OBJECT_TYPE_ESSID_STRING "essid" 16111767SAnurag.Maskey@Sun.COM #define NWAM_CONDITION_OBJECT_TYPE_BSSID_STRING "bssid" 16211767SAnurag.Maskey@Sun.COM 16311767SAnurag.Maskey@Sun.COM #define NWAM_CONDITION_ACTIVE_STRING "active" 16411767SAnurag.Maskey@Sun.COM 16511767SAnurag.Maskey@Sun.COM #define NWAM_NAMESERVICES_DNS_STRING "dns" 16611767SAnurag.Maskey@Sun.COM #define NWAM_NAMESERVICES_FILES_STRING "files" 16711767SAnurag.Maskey@Sun.COM #define NWAM_NAMESERVICES_NIS_STRING "nis" 16811767SAnurag.Maskey@Sun.COM #define NWAM_NAMESERVICES_LDAP_STRING "ldap" 16911767SAnurag.Maskey@Sun.COM 17011767SAnurag.Maskey@Sun.COM #define NWAM_CONFIGSRC_MANUAL_STRING "manual" 17111767SAnurag.Maskey@Sun.COM #define NWAM_CONFIGSRC_DHCP_STRING "dhcp" 17211767SAnurag.Maskey@Sun.COM 17311767SAnurag.Maskey@Sun.COM #define NWAM_NCU_TYPE_LINK_STRING "link" 17411767SAnurag.Maskey@Sun.COM #define NWAM_NCU_TYPE_INTERFACE_STRING "interface" 17511767SAnurag.Maskey@Sun.COM 17611767SAnurag.Maskey@Sun.COM #define NWAM_NCU_CLASS_PHYS_STRING "phys" 17711767SAnurag.Maskey@Sun.COM #define NWAM_NCU_CLASS_IP_STRING "ip" 17811767SAnurag.Maskey@Sun.COM 17911767SAnurag.Maskey@Sun.COM #define NWAM_IP_VERSION_IPV4_STRING "ipv4" 18011767SAnurag.Maskey@Sun.COM #define NWAM_IP_VERSION_IPV6_STRING "ipv6" 18111767SAnurag.Maskey@Sun.COM 18211767SAnurag.Maskey@Sun.COM #define NWAM_ADDRSRC_DHCP_STRING "dhcp" 18311767SAnurag.Maskey@Sun.COM #define NWAM_ADDRSRC_AUTOCONF_STRING "autoconf" 18411767SAnurag.Maskey@Sun.COM #define NWAM_ADDRSRC_STATIC_STRING "static" 18511767SAnurag.Maskey@Sun.COM 18611767SAnurag.Maskey@Sun.COM #define NWAM_PRIORITY_MODE_EXCLUSIVE_STRING "exclusive" 18711767SAnurag.Maskey@Sun.COM #define NWAM_PRIORITY_MODE_SHARED_STRING "shared" 18811767SAnurag.Maskey@Sun.COM #define NWAM_PRIORITY_MODE_ALL_STRING "all" 18911767SAnurag.Maskey@Sun.COM 19011767SAnurag.Maskey@Sun.COM /* 19111767SAnurag.Maskey@Sun.COM * Functions that interact with nwamd's door server to request 19211767SAnurag.Maskey@Sun.COM * object actions, states or to register for receipt of events from nwamd. 19311767SAnurag.Maskey@Sun.COM * See libnwam_door.c. 19411767SAnurag.Maskey@Sun.COM */ 19511767SAnurag.Maskey@Sun.COM extern nwam_error_t nwam_request_register_unregister(nwam_request_type_t, 19611767SAnurag.Maskey@Sun.COM const char *); 19711767SAnurag.Maskey@Sun.COM extern nwam_error_t nwam_request_action(nwam_object_type_t, const char *, 19811767SAnurag.Maskey@Sun.COM const char *, nwam_action_t); 19911767SAnurag.Maskey@Sun.COM extern nwam_error_t nwam_request_state(nwam_object_type_t, const char *, 20011767SAnurag.Maskey@Sun.COM const char *, nwam_state_t *, nwam_aux_state_t *); 20111767SAnurag.Maskey@Sun.COM extern nwam_error_t nwam_request_wlan(nwam_request_type_t, const char *, 20211767SAnurag.Maskey@Sun.COM const char *, const char *, uint32_t, uint_t, const char *, boolean_t); 20311767SAnurag.Maskey@Sun.COM extern nwam_error_t nwam_request_wlan_scan_results(const char *name, 20411767SAnurag.Maskey@Sun.COM uint_t *, nwam_wlan_t **); 20511767SAnurag.Maskey@Sun.COM extern nwam_error_t nwam_request_active_priority_group(int64_t *); 20611767SAnurag.Maskey@Sun.COM 20711767SAnurag.Maskey@Sun.COM /* 20811767SAnurag.Maskey@Sun.COM * Functions that access and manipulate backend representation of data - 20911767SAnurag.Maskey@Sun.COM * see libnwam_backend.c. 21011767SAnurag.Maskey@Sun.COM */ 21111767SAnurag.Maskey@Sun.COM extern nwam_error_t nwam_read_object_from_backend(char *, char *, 21211767SAnurag.Maskey@Sun.COM uint64_t, void *); 21311767SAnurag.Maskey@Sun.COM extern nwam_error_t nwam_update_object_in_backend(char *, char *, 21411767SAnurag.Maskey@Sun.COM uint64_t, void *); 21511767SAnurag.Maskey@Sun.COM extern nwam_error_t nwam_remove_object_from_backend(char *, char *, 21611767SAnurag.Maskey@Sun.COM uint64_t); 21711767SAnurag.Maskey@Sun.COM 21811767SAnurag.Maskey@Sun.COM /* 21911767SAnurag.Maskey@Sun.COM * Functions that handle files-specific backend persistent representation 22011767SAnurag.Maskey@Sun.COM * of data - see libnwam_files.c. 22111767SAnurag.Maskey@Sun.COM */ 22211767SAnurag.Maskey@Sun.COM extern nwam_error_t nwam_read_object_from_files_backend(char *, 22311767SAnurag.Maskey@Sun.COM char *, uint64_t, void *); 22411767SAnurag.Maskey@Sun.COM extern nwam_error_t nwam_update_object_in_files_backend(char *, 22511767SAnurag.Maskey@Sun.COM char *, uint64_t, void *); 22611767SAnurag.Maskey@Sun.COM extern nwam_error_t nwam_remove_object_from_files_backend(char *, 22711767SAnurag.Maskey@Sun.COM char *, uint64_t); 22811767SAnurag.Maskey@Sun.COM 22911767SAnurag.Maskey@Sun.COM /* 23011767SAnurag.Maskey@Sun.COM * Utility functions for nwam data (values and lists of values) associated 23111767SAnurag.Maskey@Sun.COM * with objects - see libnwam_values.c. 23211767SAnurag.Maskey@Sun.COM */ 23311767SAnurag.Maskey@Sun.COM nwam_error_t nwam_alloc_object_list(void *); 23411767SAnurag.Maskey@Sun.COM void nwam_free_object_list(void *); 23511767SAnurag.Maskey@Sun.COM nwam_error_t nwam_object_list_add_object_list(void *, char *, void *); 23611767SAnurag.Maskey@Sun.COM nwam_error_t nwam_object_list_remove_object_list(void *, char *); 23711767SAnurag.Maskey@Sun.COM nwam_error_t nwam_dup_object_list(void *, void *); 23811767SAnurag.Maskey@Sun.COM nwam_error_t nwam_next_object_list(void *, char *, char **, void *); 23911767SAnurag.Maskey@Sun.COM nwam_error_t nwam_next_object_prop(void *, char *, char **, nwam_value_t *); 24011767SAnurag.Maskey@Sun.COM extern nwam_error_t nwam_pack_object_list(void *, char **, size_t *); 24111767SAnurag.Maskey@Sun.COM extern nwam_error_t nwam_unpack_object_list(char *, size_t, void *); 24211767SAnurag.Maskey@Sun.COM 24311767SAnurag.Maskey@Sun.COM extern const char *nwam_value_type_to_string(nwam_value_type_t); 24411767SAnurag.Maskey@Sun.COM extern nwam_value_type_t nwam_string_to_value_type(const char *); 24511767SAnurag.Maskey@Sun.COM extern nwam_error_t nwam_delete_prop(void *, const char *); 24611767SAnurag.Maskey@Sun.COM extern nwam_error_t nwam_set_prop_value(void *, const char *, nwam_value_t); 24711767SAnurag.Maskey@Sun.COM extern nwam_error_t nwam_get_prop_value(void *, const char *, nwam_value_t *); 24811767SAnurag.Maskey@Sun.COM 24911767SAnurag.Maskey@Sun.COM /* 25011767SAnurag.Maskey@Sun.COM * Utility functions for nwam objects (NCUs, ENMs, locations and known WLANs). 25111767SAnurag.Maskey@Sun.COM * See libnwam_object.c. 25211767SAnurag.Maskey@Sun.COM */ 25311767SAnurag.Maskey@Sun.COM nwam_error_t nwam_handle_create(nwam_object_type_t, const char *, 25411767SAnurag.Maskey@Sun.COM struct nwam_handle **); 25511767SAnurag.Maskey@Sun.COM nwam_error_t nwam_read(nwam_object_type_t, const char *, const char *, 25611767SAnurag.Maskey@Sun.COM uint64_t, struct nwam_handle **); 25711767SAnurag.Maskey@Sun.COM nwam_error_t nwam_create(nwam_object_type_t, const char *, const char *, 25811767SAnurag.Maskey@Sun.COM struct nwam_handle **); 25911767SAnurag.Maskey@Sun.COM nwam_error_t nwam_get_name(struct nwam_handle *, char **); 26011767SAnurag.Maskey@Sun.COM nwam_error_t nwam_set_name(struct nwam_handle *, const char *); 26111767SAnurag.Maskey@Sun.COM nwam_error_t nwam_walk(nwam_object_type_t, const char *, 26211767SAnurag.Maskey@Sun.COM int(*)(struct nwam_handle *, void *), void *, uint64_t, int *, 26311767SAnurag.Maskey@Sun.COM int(*)(struct nwam_handle *, uint64_t, void *)); 26411767SAnurag.Maskey@Sun.COM void nwam_free(struct nwam_handle *); 26511767SAnurag.Maskey@Sun.COM nwam_error_t nwam_copy(const char *, struct nwam_handle *, const char *, 26611767SAnurag.Maskey@Sun.COM struct nwam_handle **); 26711767SAnurag.Maskey@Sun.COM nwam_error_t nwam_walk_props(struct nwam_handle *, 26811767SAnurag.Maskey@Sun.COM int(*)(const char *, nwam_value_t, void *), void *, uint64_t, int *); 26911767SAnurag.Maskey@Sun.COM nwam_error_t nwam_commit(const char *, struct nwam_handle *, uint64_t); 27011767SAnurag.Maskey@Sun.COM nwam_error_t nwam_destroy(const char *, struct nwam_handle *, uint64_t); 27111767SAnurag.Maskey@Sun.COM nwam_error_t nwam_enable(const char *, struct nwam_handle *); 27211767SAnurag.Maskey@Sun.COM nwam_error_t nwam_disable(const char *, struct nwam_handle *); 27311767SAnurag.Maskey@Sun.COM struct nwam_prop_table_entry *nwam_get_prop_table_entry(struct nwam_prop_table, 27411767SAnurag.Maskey@Sun.COM const char *); 27511767SAnurag.Maskey@Sun.COM nwam_error_t nwam_get_prop_description(struct nwam_prop_table, const char *, 27611767SAnurag.Maskey@Sun.COM const char **); 27711767SAnurag.Maskey@Sun.COM nwam_error_t nwam_get_prop_type(struct nwam_prop_table, const char *, 27811767SAnurag.Maskey@Sun.COM nwam_value_type_t *); 27911767SAnurag.Maskey@Sun.COM nwam_error_t nwam_prop_multivalued(struct nwam_prop_table, const char *, 28011767SAnurag.Maskey@Sun.COM boolean_t *); 28111767SAnurag.Maskey@Sun.COM nwam_error_t nwam_prop_read_only(struct nwam_prop_table, const char *, 28211767SAnurag.Maskey@Sun.COM boolean_t *); 28311767SAnurag.Maskey@Sun.COM nwam_error_t nwam_validate_prop(struct nwam_prop_table, struct nwam_handle *, 28411767SAnurag.Maskey@Sun.COM const char *, nwam_value_t); 28511767SAnurag.Maskey@Sun.COM nwam_error_t nwam_validate(struct nwam_prop_table, struct nwam_handle *, 28611767SAnurag.Maskey@Sun.COM const char **); 28711767SAnurag.Maskey@Sun.COM nwam_error_t nwam_get_default_proplist(struct nwam_prop_table, uint64_t, 28811767SAnurag.Maskey@Sun.COM uint64_t, const char ***, uint_t *); 28911767SAnurag.Maskey@Sun.COM nwam_error_t nwam_get_state(const char *, struct nwam_handle *, nwam_state_t *, 29011767SAnurag.Maskey@Sun.COM nwam_aux_state_t *); 29111767SAnurag.Maskey@Sun.COM 29211767SAnurag.Maskey@Sun.COM /* 29311767SAnurag.Maskey@Sun.COM * Generic validation functions - see libnwam_util.c. 29411767SAnurag.Maskey@Sun.COM */ 29511767SAnurag.Maskey@Sun.COM extern nwam_error_t nwam_valid_flags(uint64_t, uint64_t); 29611767SAnurag.Maskey@Sun.COM extern nwam_error_t nwam_valid_condition(nwam_value_t); 29711767SAnurag.Maskey@Sun.COM extern nwam_error_t nwam_valid_boolean(nwam_value_t); 29811767SAnurag.Maskey@Sun.COM extern nwam_error_t nwam_valid_uint64(nwam_value_t); 29911767SAnurag.Maskey@Sun.COM extern nwam_error_t nwam_valid_domain(nwam_value_t); 30011767SAnurag.Maskey@Sun.COM extern nwam_error_t nwam_valid_host_any(nwam_value_t); 30111767SAnurag.Maskey@Sun.COM extern nwam_error_t nwam_valid_host_v4(nwam_value_t); 30211767SAnurag.Maskey@Sun.COM extern nwam_error_t nwam_valid_route_v4(nwam_value_t); 30311767SAnurag.Maskey@Sun.COM extern nwam_error_t nwam_valid_host_v6(nwam_value_t); 30411767SAnurag.Maskey@Sun.COM extern nwam_error_t nwam_valid_route_v6(nwam_value_t); 30511767SAnurag.Maskey@Sun.COM extern nwam_error_t nwam_valid_host_or_domain(nwam_value_t); 30611767SAnurag.Maskey@Sun.COM extern nwam_error_t nwam_valid_file(nwam_value_t); 30711767SAnurag.Maskey@Sun.COM extern nwam_error_t nwam_valid_fmri(nwam_value_t); 30811767SAnurag.Maskey@Sun.COM extern nwam_error_t nwam_valid_mac_addr(nwam_value_t); 30911767SAnurag.Maskey@Sun.COM 31011767SAnurag.Maskey@Sun.COM /* Misc. util functions */ 311*12036SMichael.Hunter@Sun.COM extern boolean_t nwam_uid_is_special(void); 31211767SAnurag.Maskey@Sun.COM extern nwam_error_t nwam_set_smf_string_property(const char *, const char *, 31311767SAnurag.Maskey@Sun.COM const char *, const char *); 31411767SAnurag.Maskey@Sun.COM extern nwam_error_t nwam_get_smf_string_property(const char *, const char *, 31511767SAnurag.Maskey@Sun.COM const char *, char **); 31611767SAnurag.Maskey@Sun.COM extern int nwam_make_door_call(const char *, int *, void *, size_t); 31711767SAnurag.Maskey@Sun.COM extern nwam_error_t nwam_errno_to_nwam_error(int); 31811767SAnurag.Maskey@Sun.COM 31911767SAnurag.Maskey@Sun.COM /* Needed in libnwam_files.c to check if NCP filename is valid */ 32011767SAnurag.Maskey@Sun.COM extern nwam_error_t nwam_ncp_file_to_name(const char *path, char **name); 32111767SAnurag.Maskey@Sun.COM 32211767SAnurag.Maskey@Sun.COM #ifdef __cplusplus 32311767SAnurag.Maskey@Sun.COM } 32411767SAnurag.Maskey@Sun.COM #endif 32511767SAnurag.Maskey@Sun.COM 32611767SAnurag.Maskey@Sun.COM #endif /* _LIBNWAM_IMPL_H */ 327