xref: /onnv-gate/usr/src/cmd/cmd-inet/lib/nwamd/objects.h (revision 11994:5cb9130500d6)
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 /*
2311767SAnurag.Maskey@Sun.COM  * Copyright 2010 Sun Microsystems, Inc.  All rights reserved.
2411767SAnurag.Maskey@Sun.COM  * Use is subject to license terms.
2511767SAnurag.Maskey@Sun.COM  */
2611767SAnurag.Maskey@Sun.COM 
2711767SAnurag.Maskey@Sun.COM #ifndef _OBJECTS_H
2811767SAnurag.Maskey@Sun.COM #define	_OBJECTS_H
2911767SAnurag.Maskey@Sun.COM 
3011767SAnurag.Maskey@Sun.COM #include <door.h>
3111767SAnurag.Maskey@Sun.COM #include <libsysevent.h>
3211767SAnurag.Maskey@Sun.COM #include <libuutil.h>
3311767SAnurag.Maskey@Sun.COM #include <pthread.h>
3411767SAnurag.Maskey@Sun.COM 
3511767SAnurag.Maskey@Sun.COM #include <libnwam.h>
3611767SAnurag.Maskey@Sun.COM #include "events.h"
3711767SAnurag.Maskey@Sun.COM #include "ncp.h"
3811767SAnurag.Maskey@Sun.COM #include "ncu.h"
3911767SAnurag.Maskey@Sun.COM 
4011767SAnurag.Maskey@Sun.COM /*
4111767SAnurag.Maskey@Sun.COM  * Wrapper structure for libnwam object,  containing name, type,
4211767SAnurag.Maskey@Sun.COM  * associated object handle and optional object data field, and uu_list_node.
4311767SAnurag.Maskey@Sun.COM  */
4411767SAnurag.Maskey@Sun.COM struct nwamd_object {
4511767SAnurag.Maskey@Sun.COM 	char nwamd_object_name[NWAM_MAX_NAME_LEN];
4611767SAnurag.Maskey@Sun.COM 	nwam_object_type_t nwamd_object_type;
4711767SAnurag.Maskey@Sun.COM 
4811767SAnurag.Maskey@Sun.COM 	/*
4911767SAnurag.Maskey@Sun.COM 	 * These two elements provide a reference count for the structure and
5011767SAnurag.Maskey@Sun.COM 	 * a lock for the data including reference count.
5111767SAnurag.Maskey@Sun.COM 	 */
5211767SAnurag.Maskey@Sun.COM 	int nwamd_object_refcount;
5311767SAnurag.Maskey@Sun.COM 	pthread_mutex_t nwamd_object_mutex;
5411767SAnurag.Maskey@Sun.COM 
5511767SAnurag.Maskey@Sun.COM 	void *nwamd_object_handle; /* can point at ENMs, locations, etc. */
5611767SAnurag.Maskey@Sun.COM 	nwamd_ncu_t *nwamd_object_data;
57*11994SAnurag.Maskey@Sun.COM 	struct timeval nwamd_script_time;
5811767SAnurag.Maskey@Sun.COM 	nwam_state_t nwamd_object_state;
5911767SAnurag.Maskey@Sun.COM 	nwam_aux_state_t nwamd_object_aux_state;
6011767SAnurag.Maskey@Sun.COM 	uu_list_node_t nwamd_object_node;
6111767SAnurag.Maskey@Sun.COM };
6211767SAnurag.Maskey@Sun.COM 
6311767SAnurag.Maskey@Sun.COM /* Object init/enqueueing */
6411767SAnurag.Maskey@Sun.COM extern void nwamd_object_lists_init(void);
6511767SAnurag.Maskey@Sun.COM extern void nwamd_object_lists_fini(void);
6611767SAnurag.Maskey@Sun.COM extern nwamd_object_t nwamd_object_init(nwam_object_type_t, const char *,
6711767SAnurag.Maskey@Sun.COM     void *, void *);
6811767SAnurag.Maskey@Sun.COM extern nwamd_object_t nwamd_object_find(nwam_object_type_t, const char *);
6911767SAnurag.Maskey@Sun.COM extern void nwamd_object_release_and_preserve(nwamd_object_t);
7011767SAnurag.Maskey@Sun.COM extern void nwamd_object_release(nwamd_object_t);
7111767SAnurag.Maskey@Sun.COM extern void nwamd_object_release_and_destroy(nwamd_object_t);
7211767SAnurag.Maskey@Sun.COM extern void nwamd_object_release_after_preserve(nwamd_object_t);
7311767SAnurag.Maskey@Sun.COM extern void nwamd_object_release_and_destroy_after_preserve(nwamd_object_t);
7411767SAnurag.Maskey@Sun.COM extern void nwamd_object_set_state(nwam_object_type_t, const char *,
7511767SAnurag.Maskey@Sun.COM     nwam_state_t, nwam_aux_state_t);
7611767SAnurag.Maskey@Sun.COM extern void nwamd_object_set_state_timed(nwam_object_type_t, const char *,
7711767SAnurag.Maskey@Sun.COM     nwam_state_t, nwam_aux_state_t, uint32_t);
7811767SAnurag.Maskey@Sun.COM extern nwamd_event_method_t *nwamd_object_event_methods(nwam_object_type_t);
7911767SAnurag.Maskey@Sun.COM extern int nwamd_walk_objects(nwam_object_type_t,
8011767SAnurag.Maskey@Sun.COM     int (*)(nwamd_object_t, void *), void *);
8111767SAnurag.Maskey@Sun.COM extern int nwamd_object_update(const char *, nwam_object_type_t);
8211767SAnurag.Maskey@Sun.COM 
8311767SAnurag.Maskey@Sun.COM /* Known WLAN functions (no wlan objects, so no init/fini functions) */
8411767SAnurag.Maskey@Sun.COM /* event methods */
8511767SAnurag.Maskey@Sun.COM extern void nwamd_known_wlan_handle_init_event(nwamd_event_t);
8611767SAnurag.Maskey@Sun.COM 
8711767SAnurag.Maskey@Sun.COM /* refresh/destroy a known WLAN */
8811767SAnurag.Maskey@Sun.COM extern int nwamd_known_wlan_action(const char *, nwam_action_t);
8911767SAnurag.Maskey@Sun.COM 
9011767SAnurag.Maskey@Sun.COM /* ENM functions */
9111767SAnurag.Maskey@Sun.COM /* Init/fini functions for ENMs */
9211767SAnurag.Maskey@Sun.COM extern void nwamd_init_enms(void);
9311767SAnurag.Maskey@Sun.COM extern void nwamd_fini_enms(void);
9411767SAnurag.Maskey@Sun.COM 
9511767SAnurag.Maskey@Sun.COM /* ENM condition check function */
9611767SAnurag.Maskey@Sun.COM extern void nwamd_enm_check_conditions(void);
9711767SAnurag.Maskey@Sun.COM 
9811767SAnurag.Maskey@Sun.COM /* event methods */
9911767SAnurag.Maskey@Sun.COM extern void nwamd_enm_handle_init_event(nwamd_event_t);
10011767SAnurag.Maskey@Sun.COM extern void nwamd_enm_handle_fini_event(nwamd_event_t);
10111767SAnurag.Maskey@Sun.COM 
10211767SAnurag.Maskey@Sun.COM /* enable/disable an enm */
10311767SAnurag.Maskey@Sun.COM extern int nwamd_enm_action(const char *, nwam_action_t);
10411767SAnurag.Maskey@Sun.COM 
10511767SAnurag.Maskey@Sun.COM /* reread an enm from the repository */
10611767SAnurag.Maskey@Sun.COM extern int nwamd_enm_refresh(const char *);
10711767SAnurag.Maskey@Sun.COM 
10811767SAnurag.Maskey@Sun.COM /* loc functions */
10911767SAnurag.Maskey@Sun.COM /* Init/fini functions for locs */
11011767SAnurag.Maskey@Sun.COM extern void nwamd_init_locs(void);
11111767SAnurag.Maskey@Sun.COM extern void nwamd_fini_locs(void);
11211767SAnurag.Maskey@Sun.COM 
11311767SAnurag.Maskey@Sun.COM /* loc condition check function */
11411767SAnurag.Maskey@Sun.COM extern void nwamd_loc_check_conditions(void);
11511767SAnurag.Maskey@Sun.COM 
11611767SAnurag.Maskey@Sun.COM /* on shutdown, revert to legacy location */
11711767SAnurag.Maskey@Sun.COM extern void nwamd_loc_revert_to_legacy(void);
11811767SAnurag.Maskey@Sun.COM 
11911767SAnurag.Maskey@Sun.COM /* event methods */
12011767SAnurag.Maskey@Sun.COM extern void nwamd_loc_handle_init_event(nwamd_event_t);
12111767SAnurag.Maskey@Sun.COM extern void nwamd_loc_handle_fini_event(nwamd_event_t);
12211767SAnurag.Maskey@Sun.COM 
12311767SAnurag.Maskey@Sun.COM /* enable/disable a loc */
12411767SAnurag.Maskey@Sun.COM extern int nwamd_loc_action(const char *, nwam_action_t);
12511767SAnurag.Maskey@Sun.COM 
12611767SAnurag.Maskey@Sun.COM /* reread a loc from the repository */
12711767SAnurag.Maskey@Sun.COM extern int nwamd_loc_refresh(const char *);
12811767SAnurag.Maskey@Sun.COM 
12911767SAnurag.Maskey@Sun.COM /* NCU functions */
13011767SAnurag.Maskey@Sun.COM extern void nwamd_init_ncus(void);
13111767SAnurag.Maskey@Sun.COM extern void nwamd_fini_ncus(void);
13211767SAnurag.Maskey@Sun.COM 
13311767SAnurag.Maskey@Sun.COM /* enable an ncp/ncu */
13411767SAnurag.Maskey@Sun.COM extern int nwamd_ncp_action(const char *, nwam_action_t);
13511767SAnurag.Maskey@Sun.COM extern int nwamd_ncu_action(const char *, const char *, nwam_action_t);
13611767SAnurag.Maskey@Sun.COM 
13711767SAnurag.Maskey@Sun.COM /*
13811767SAnurag.Maskey@Sun.COM  * Event callbacks.
13911767SAnurag.Maskey@Sun.COM  */
14011767SAnurag.Maskey@Sun.COM extern void nwamd_ncu_handle_init_event(nwamd_event_t);
14111767SAnurag.Maskey@Sun.COM extern void nwamd_ncu_handle_fini_event(nwamd_event_t);
14211767SAnurag.Maskey@Sun.COM extern void nwamd_ncu_handle_if_state_event(nwamd_event_t);
14311767SAnurag.Maskey@Sun.COM extern void nwamd_ncu_handle_if_action_event(nwamd_event_t);
14411767SAnurag.Maskey@Sun.COM extern void nwamd_ncu_handle_link_state_event(nwamd_event_t);
14511767SAnurag.Maskey@Sun.COM extern void nwamd_ncu_handle_link_action_event(nwamd_event_t);
14611767SAnurag.Maskey@Sun.COM extern void nwamd_ncu_handle_init_event(nwamd_event_t);
14711767SAnurag.Maskey@Sun.COM extern void nwamd_ncu_handle_fini_event(nwamd_event_t);
14811767SAnurag.Maskey@Sun.COM extern void nwamd_ncu_handle_action_event(nwamd_event_t);
14911767SAnurag.Maskey@Sun.COM extern void nwamd_ncu_handle_state_event(nwamd_event_t);
15011767SAnurag.Maskey@Sun.COM 
15111767SAnurag.Maskey@Sun.COM extern void nwamd_ncp_handle_action_event(nwamd_event_t);
15211767SAnurag.Maskey@Sun.COM extern void nwamd_ncp_handle_state_event(nwamd_event_t);
15311767SAnurag.Maskey@Sun.COM extern void nwamd_ncu_handle_periodic_scan_event(nwamd_event_t);
15411767SAnurag.Maskey@Sun.COM extern void nwamd_ncp_handle_enable_event(nwamd_event_t);
15511767SAnurag.Maskey@Sun.COM extern void nwamd_handle_upgrade(nwamd_event_t);
15611767SAnurag.Maskey@Sun.COM 
15711767SAnurag.Maskey@Sun.COM extern void nwamd_enm_handle_action_event(nwamd_event_t);
15811767SAnurag.Maskey@Sun.COM extern void nwamd_enm_handle_state_event(nwamd_event_t);
15911767SAnurag.Maskey@Sun.COM 
16011767SAnurag.Maskey@Sun.COM extern void nwamd_loc_handle_action_event(nwamd_event_t);
16111767SAnurag.Maskey@Sun.COM extern void nwamd_loc_handle_state_event(nwamd_event_t);
16211767SAnurag.Maskey@Sun.COM 
16311767SAnurag.Maskey@Sun.COM extern void nwamd_known_wlan_handle_action_event(nwamd_event_t);
16411767SAnurag.Maskey@Sun.COM 
16511767SAnurag.Maskey@Sun.COM extern void nwamd_add_phys_ncu_auto(nwam_ncp_handle_t, const char *);
16611767SAnurag.Maskey@Sun.COM extern void nwamd_rem_phys_ncu_auto(nwam_ncp_handle_t, const char *);
16711767SAnurag.Maskey@Sun.COM extern void add_auto_link(nwam_ncp_handle_t, const char *);
16811767SAnurag.Maskey@Sun.COM extern void add_auto_ip(nwam_ncp_handle_t, const char *);
16911767SAnurag.Maskey@Sun.COM extern void rem_auto_link(nwam_ncp_handle_t, const char *);
17011767SAnurag.Maskey@Sun.COM extern void rem_auto_ip(nwam_ncp_handle_t, const char *);
17111767SAnurag.Maskey@Sun.COM 
17211767SAnurag.Maskey@Sun.COM #endif /* _OBJECTS_H */
173