]> granicus.if.org Git - sysstat/blob - sadf.h
Add new flag to read_next_sample() function
[sysstat] / sadf.h
1 /*
2  * sadf: System activity data formatter
3  * (C) 1999-2015 by Sebastien Godard (sysstat <at> orange.fr)
4  */
5
6 #ifndef _SADF_H
7 #define _SADF_H
8
9 #include "sa.h"
10
11 /* DTD version for XML output */
12 #define XML_DTD_VERSION "3.1"
13
14 /* Various constants */
15 #define DO_SAVE         0
16 #define DO_RESTORE      1
17
18 #define IGNORE_NOTHING          0
19 #define IGNORE_RESTART          1
20 #define DONT_READ_VOLATILE      2
21 #define IGNORE_COMMENT          4
22 #define SET_TIMESTAMPS          8
23
24 /*
25  ***************************************************************************
26  * Output format identification values.
27  ***************************************************************************
28  */
29
30 /* Number of output formats */
31 #define NR_FMT  7
32
33 /* Output formats */
34 #define F_DB_OUTPUT     1
35 #define F_HEADER_OUTPUT 2
36 #define F_PPC_OUTPUT    3
37 #define F_XML_OUTPUT    4
38 #define F_JSON_OUTPUT   5
39 #define F_CONV_OUTPUT   6
40 #define F_SVG_OUTPUT    7
41
42 /* Format options */
43
44 /*
45  * Indicate that all statistics data for one activity should be displayed before
46  * displaying stats for next activity. This is what sar does in its report.
47  * Example: If stats for activities A and B at time t and t' have been collected,
48  * setting AO_GROUPED_STATS for a format will result in the following output:
49  * stats for activity A at t
50  * stats for activity A at t'
51  * stats for activity B at t
52  * stats for activity B at t'
53  * Without this option, output would be:
54  * stats for activity A at t
55  * stats for activity B at t
56  * stats for activity A at t'
57  * stats for activity B at t'
58  */
59 #define FO_GROUPED_STATS        0x01
60
61 /*
62  * Indicate that output should stop after the header is displayed.
63  */
64 #define FO_HEADER_ONLY          0x02
65
66 /*
67  * Indicate that a true sysstat activity file but with a bad
68  * format should not yield an error message.
69  */
70 #define FO_BAD_FILE_FORMAT      0x04
71
72 /*
73  * Indicate that timestamp can be displayed in local time instead of UTC
74  * if option -T or -t has been used.
75  */
76 #define FO_LOCAL_TIME           0x08
77
78 /*
79  * Indicate that all activities will be displayed horizontally
80  * if option -h is used.
81  */
82 #define FO_HORIZONTALLY         0x10
83
84 /*
85  * Indicate that the timestamp can be displayed in seconds since the epoch
86  * if option -U has been used.
87  */
88 #define FO_SEC_EPOCH            0x20
89
90 /*
91  * Indicate that the list of fields should be displayed before the first
92  * line of statistics.
93  */
94 #define FO_FIELD_LIST           0x40
95
96 /*
97  * Indicate that flag AO_CLOSE_MARKUP (set for activities that need it)
98  * should be taken into account for this output format.
99  */
100 #define FO_TEST_MARKUP          0x80
101
102 #define DISPLAY_GROUPED_STATS(m)        (((m) & FO_GROUPED_STATS)       == FO_GROUPED_STATS)
103 #define ACCEPT_HEADER_ONLY(m)           (((m) & FO_HEADER_ONLY)         == FO_HEADER_ONLY)
104 #define ACCEPT_BAD_FILE_FORMAT(m)       (((m) & FO_BAD_FILE_FORMAT)     == FO_BAD_FILE_FORMAT)
105 #define ACCEPT_LOCAL_TIME(m)            (((m) & FO_LOCAL_TIME)          == FO_LOCAL_TIME)
106 #define ACCEPT_HORIZONTALLY(m)          (((m) & FO_HORIZONTALLY)        == FO_HORIZONTALLY)
107 #define ACCEPT_SEC_EPOCH(m)             (((m) & FO_SEC_EPOCH)           == FO_SEC_EPOCH)
108 #define DISPLAY_FIELD_LIST(m)           (((m) & FO_FIELD_LIST)          == FO_FIELD_LIST)
109 #define TEST_MARKUP(m)                  (((m) & FO_TEST_MARKUP)         == FO_TEST_MARKUP)
110
111 /*
112  ***************************************************************************
113  * Various function prototypes
114  ***************************************************************************
115  */
116
117 void convert_file
118         (char [], struct activity *[]);
119 void xprintf
120         (int, const char *, ...);
121 void xprintf0
122         (int, const char *, ...);
123
124 /*
125  * Prototypes used to display restart messages
126  */
127 __printf_funct_t print_db_restart
128         (int *, int, char *, char *, int, struct file_header *, unsigned int);
129 __printf_funct_t print_ppc_restart
130         (int *, int, char *, char *, int, struct file_header *, unsigned int);
131 __printf_funct_t print_xml_restart
132         (int *, int, char *, char *, int, struct file_header *, unsigned int);
133 __printf_funct_t print_json_restart
134         (int *, int, char *, char *, int, struct file_header *, unsigned int);
135 __printf_funct_t print_sar_restart
136         (int *, int, char *, char *, int, struct file_header *, unsigned int);
137
138 /*
139  * Prototypes used to display comments
140  */
141 __printf_funct_t print_db_comment
142         (int *, int, char *, char *, int, char *, struct file_header *);
143 __printf_funct_t print_ppc_comment
144         (int *, int, char *, char *, int, char *, struct file_header *);
145 __printf_funct_t print_xml_comment
146         (int *, int, char *, char *, int, char *, struct file_header *);
147 __printf_funct_t print_json_comment
148         (int *, int, char *, char *, int, char *, struct file_header *);
149 __printf_funct_t print_sar_comment
150         (int *, int, char *, char *, int, char *, struct file_header *);
151
152 /*
153  * Prototypes used to display the statistics part of the report
154  */
155 __printf_funct_t print_xml_statistics
156         (int *, int);
157 __printf_funct_t print_json_statistics
158         (int *, int);
159
160 /*
161  * Prototypes used to display the timestamp part of the report
162  */
163 __tm_funct_t print_db_timestamp
164         (int *, int, char *, char *, unsigned long long, struct file_header *, unsigned int);
165 __tm_funct_t print_ppc_timestamp
166         (int *, int, char *, char *, unsigned long long, struct file_header *, unsigned int);
167 __tm_funct_t print_xml_timestamp
168         (int *, int, char *, char *, unsigned long long, struct file_header *, unsigned int);
169 __tm_funct_t print_json_timestamp
170         (int *, int, char *, char *, unsigned long long, struct file_header *, unsigned int);
171
172 /*
173  * Prototypes used to display the report header
174  */
175 __printf_funct_t print_xml_header
176         (int *, int, char *, struct file_magic *, struct file_header *,
177          __nr_t, struct activity * [], unsigned int []);
178 __printf_funct_t print_json_header
179         (int *, int, char *, struct file_magic *, struct file_header *,
180          __nr_t, struct activity * [], unsigned int []);
181 __printf_funct_t print_hdr_header
182         (int *, int, char *, struct file_magic *, struct file_header *,
183          __nr_t, struct activity * [], unsigned int []);
184 __printf_funct_t print_svg_header
185         (int *, int, char *, struct file_magic *, struct file_header *,
186          __nr_t, struct activity * [], unsigned int []);
187
188 #endif  /* _SADF_H */