xref: /onnv-gate/usr/src/cmd/fm/fmd/common/fmd_topo.h (revision 13131:87d7bfd32811)
13062Scindi /*
23062Scindi  * CDDL HEADER START
33062Scindi  *
43062Scindi  * The contents of this file are subject to the terms of the
53062Scindi  * Common Development and Distribution License (the "License").
63062Scindi  * You may not use this file except in compliance with the License.
73062Scindi  *
83062Scindi  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
93062Scindi  * or http://www.opensolaris.org/os/licensing.
103062Scindi  * See the License for the specific language governing permissions
113062Scindi  * and limitations under the License.
123062Scindi  *
133062Scindi  * When distributing Covered Code, include this CDDL HEADER in each
143062Scindi  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
153062Scindi  * If applicable, add the following below this CDDL HEADER, with the
163062Scindi  * fields enclosed by brackets "[]" replaced with your own identifying
173062Scindi  * information: Portions Copyright [yyyy] [name of copyright owner]
183062Scindi  *
193062Scindi  * CDDL HEADER END
203062Scindi  */
213062Scindi /*
22*13131SHyon.Kim@Sun.COM  * Copyright (c) 2006, 2010, Oracle and/or its affiliates. All rights reserved.
233062Scindi  */
243062Scindi 
253062Scindi #ifndef _FMD_TOPO_H
263062Scindi #define	_FMD_TOPO_H
273062Scindi 
283062Scindi #ifdef __cplusplus
293062Scindi extern "C" {
303062Scindi #endif
313062Scindi 
323062Scindi #include <fm/libtopo.h>
333062Scindi 
343062Scindi #include <fmd_list.h>
353062Scindi 
363062Scindi extern void fmd_topo_init(void);
373062Scindi extern void fmd_topo_fini(void);
383062Scindi 
393062Scindi typedef struct fmd_topo {
403062Scindi 	fmd_list_t ft_list;
413062Scindi 	topo_hdl_t *ft_hdl;
424198Seschrock 	uint32_t ft_refcount;
439728SEric.Schrock@Sun.COM 	hrtime_t ft_time_begin;
449728SEric.Schrock@Sun.COM 	hrtime_t ft_time_end;
453062Scindi } fmd_topo_t;
463062Scindi 
47*13131SHyon.Kim@Sun.COM extern void fmd_topo_update(void);
484198Seschrock extern fmd_topo_t *fmd_topo_hold(void);
494198Seschrock extern void fmd_topo_addref(fmd_topo_t *);
504198Seschrock extern void fmd_topo_rele(fmd_topo_t *);
514198Seschrock extern void fmd_topo_rele_hdl(topo_hdl_t *);
524198Seschrock 
533062Scindi #ifdef __cplusplus
543062Scindi }
553062Scindi #endif
563062Scindi 
573062Scindi #endif /* _FMD_TOPO_H */
58