xref: /titanic_50/usr/src/cmd/tnf/tnfdump/state.h (revision 2654012f83cec5dc15b61dfe3e4a4915f186e7a6)
1 /*
2  * CDDL HEADER START
3  *
4  * The contents of this file are subject to the terms of the
5  * Common Development and Distribution License, Version 1.0 only
6  * (the "License").  You may not use this file except in compliance
7  * with the License.
8  *
9  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10  * or http://www.opensolaris.org/os/licensing.
11  * See the License for the specific language governing permissions
12  * and limitations under the License.
13  *
14  * When distributing Covered Code, include this CDDL HEADER in each
15  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16  * If applicable, add the following below this CDDL HEADER, with the
17  * fields enclosed by brackets "[]" replaced with your own identifying
18  * information: Portions Copyright [yyyy] [name of copyright owner]
19  *
20  * CDDL HEADER END
21  */
22 /*
23  *	Copyright (c) 1994, by Sun Microsytems, Inc.
24  */
25 
26 #ifndef	_STATE_H
27 #define	_STATE_H
28 
29 #pragma ident	"%Z%%M%	%I%	%E% SMI"
30 
31 #include <sys/time.h>
32 #include <tnf/tnf.h>
33 
34 #ifdef __cplusplus
35 extern "C" {
36 #endif
37 
38 /*
39  * data structures for table of record pointers:
40  *	time: timestamp of record
41  *	record: handle on record
42  */
43 typedef struct entry {
44 	hrtime_t	time;
45 	tnf_datum_t	record;
46 } entry_t;
47 
48 void print_c_header		(void);
49 void describe_c_record		(tnf_datum_t);
50 void print_sorted_events(void);
51 
52 void describe_scalar		(tnf_datum_t);
53 
54 void fail			(int, char *, ...);
55 
56 /* routines for manipulating table of records */
57 void table_insert		(entry_t *);
58 void table_sort			(void);
59 void table_print		(void (*print_elem)(entry_t *));
60 int table_get_num_elements(void);
61 entry_t *table_get_entry_indexed(int);
62 
63 #ifdef __cplusplus
64 }
65 #endif
66 
67 #endif /* _STATE_H */
68