File: sadf.h

package info (click to toggle)
sysstat 12.0.3-2
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 4,372 kB
  • sloc: ansic: 30,491; sh: 1,082; tcl: 756; makefile: 561; perl: 257; python: 202
file content (197 lines) | stat: -rw-r--r-- 6,330 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
/*
 * sadf: System activity data formatter
 * (C) 1999-2018 by Sebastien Godard (sysstat <at> orange.fr)
 */

#ifndef _SADF_H
#define _SADF_H

#include "sa.h"

/* DTD version for XML output */
#define XML_DTD_VERSION	"3.4"

/* Various constants */
#define DO_SAVE		0
#define DO_RESTORE	1

#define IGNORE_NOTHING		0
#define IGNORE_RESTART		1
#define DONT_READ_CPU_NR	2
#define IGNORE_COMMENT		4
#define SET_TIMESTAMPS		8

/*
 ***************************************************************************
 * Output format identification values.
 ***************************************************************************
 */

/* Number of output formats */
#define NR_FMT	8

/* Output formats */
#define F_DB_OUTPUT	1
#define F_HEADER_OUTPUT	2
#define F_PPC_OUTPUT	3
#define F_XML_OUTPUT	4
#define F_JSON_OUTPUT	5
#define F_CONV_OUTPUT	6
#define F_SVG_OUTPUT	7
#define F_RAW_OUTPUT	8

/* Format options */

/*
 * Indicate that all statistics data for one activity should be displayed before
 * displaying stats for next activity. This is what sar does in its report.
 * Example: If stats for activities A and B at time t and t' have been collected,
 * setting AO_GROUPED_STATS for a format will result in the following output:
 * stats for activity A at t
 * stats for activity A at t'
 * stats for activity B at t
 * stats for activity B at t'
 * Without this option, output would be:
 * stats for activity A at t
 * stats for activity B at t
 * stats for activity A at t'
 * stats for activity B at t'
 */
#define FO_GROUPED_STATS	0x01

/*
 * Indicate that output should stop after the header is displayed.
 */
#define FO_HEADER_ONLY		0x02

/*
 * Indicate that a true sysstat activity file but with a bad
 * format should not yield an error message.
 */
#define FO_BAD_FILE_FORMAT	0x04

/*
 * Indicate that timestamp can be displayed in local time instead of UTC
 * if option -T or -t has been used.
 */
#define FO_LOCAL_TIME		0x08

/*
 * Indicate that all activities will be displayed horizontally
 * if option -h is used.
 */
#define FO_HORIZONTALLY		0x10

/*
 * Indicate that the timestamp can be displayed in seconds since the epoch
 * if option -U has been used.
 */
#define FO_SEC_EPOCH		0x20

/*
 * Indicate that the list of fields should be displayed before the first
 * line of statistics.
 */
#define FO_FIELD_LIST		0x40

/*
 * Indicate that flag AO_CLOSE_MARKUP (set for activities that need it)
 * should be taken into account for this output format.
 */
#define FO_TEST_MARKUP		0x80

/*
 * Indicate that timestamp cannot be displayed in the original local time
 * of the data file creator.
 */
#define FO_NO_TRUE_TIME		0x100

#define DISPLAY_GROUPED_STATS(m)	(((m) & FO_GROUPED_STATS)	== FO_GROUPED_STATS)
#define ACCEPT_HEADER_ONLY(m)		(((m) & FO_HEADER_ONLY)		== FO_HEADER_ONLY)
#define ACCEPT_BAD_FILE_FORMAT(m)	(((m) & FO_BAD_FILE_FORMAT)	== FO_BAD_FILE_FORMAT)
#define ACCEPT_LOCAL_TIME(m)		(((m) & FO_LOCAL_TIME)		== FO_LOCAL_TIME)
#define ACCEPT_HORIZONTALLY(m)		(((m) & FO_HORIZONTALLY)	== FO_HORIZONTALLY)
#define ACCEPT_SEC_EPOCH(m)		(((m) & FO_SEC_EPOCH)		== FO_SEC_EPOCH)
#define DISPLAY_FIELD_LIST(m)		(((m) & FO_FIELD_LIST)		== FO_FIELD_LIST)
#define TEST_MARKUP(m)			(((m) & FO_TEST_MARKUP)		== FO_TEST_MARKUP)
#define REJECT_TRUE_TIME(m)		(((m) & FO_NO_TRUE_TIME)	== FO_NO_TRUE_TIME)


/*
 ***************************************************************************
 * Various function prototypes
 ***************************************************************************
 */

void convert_file
	(char [], struct activity *[]);

/*
 * Prototypes used to display restart messages
 */
__printf_funct_t print_db_restart
	(int *, int, char *, char *, int, struct file_header *);
__printf_funct_t print_ppc_restart
	(int *, int, char *, char *, int, struct file_header *);
__printf_funct_t print_xml_restart
	(int *, int, char *, char *, int, struct file_header *);
__printf_funct_t print_json_restart
	(int *, int, char *, char *, int, struct file_header *);
__printf_funct_t print_raw_restart
	(int *, int, char *, char *, int, struct file_header *);

/*
 * Prototypes used to display comments
 */
__printf_funct_t print_db_comment
	(int *, int, char *, char *, int, char *, struct file_header *);
__printf_funct_t print_ppc_comment
	(int *, int, char *, char *, int, char *, struct file_header *);
__printf_funct_t print_xml_comment
	(int *, int, char *, char *, int, char *, struct file_header *);
__printf_funct_t print_json_comment
	(int *, int, char *, char *, int, char *, struct file_header *);
__printf_funct_t print_sar_comment
	(int *, int, char *, char *, int, char *, struct file_header *);
__printf_funct_t print_raw_comment
	(int *, int, char *, char *, int, char *, struct file_header *);

/*
 * Prototypes used to display the statistics part of the report
 */
__printf_funct_t print_xml_statistics
	(int *, int);
__printf_funct_t print_json_statistics
	(int *, int);

/*
 * Prototypes used to display the timestamp part of the report
 */
__tm_funct_t print_db_timestamp
	(void *, int, char *, char *, unsigned long long, struct file_header *, unsigned int);
__tm_funct_t print_ppc_timestamp
	(void *, int, char *, char *, unsigned long long, struct file_header *, unsigned int);
__tm_funct_t print_xml_timestamp
	(void *, int, char *, char *, unsigned long long, struct file_header *, unsigned int);
__tm_funct_t print_json_timestamp
	(void *, int, char *, char *, unsigned long long, struct file_header *, unsigned int);
__tm_funct_t print_raw_timestamp
	(void *, int, char *, char *, unsigned long long, struct file_header *, unsigned int);

/*
 * Prototypes used to display the report header
 */
__printf_funct_t print_xml_header
	(void *, int, char *, struct file_magic *, struct file_header *,
	 struct activity * [], unsigned int [], struct file_activity *);
__printf_funct_t print_json_header
	(void *, int, char *, struct file_magic *, struct file_header *,
	 struct activity * [], unsigned int [], struct file_activity *);
__printf_funct_t print_hdr_header
	(void *, int, char *, struct file_magic *, struct file_header *,
	 struct activity * [], unsigned int [], struct file_activity *);
__printf_funct_t print_svg_header
	(void *, int, char *, struct file_magic *, struct file_header *,
	 struct activity * [], unsigned int [], struct file_activity *);

#endif  /* _SADF_H */