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 198 199 200 201 202 203 204 205 206 207 208 209 210 211
|
/*
* sadf: System activity data formatter
* (C) 1999-2023 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.16"
/* Various constants */
enum {
DO_SAVE = 0,
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.
***************************************************************************
*/
/*
* Indicate that a decimal point should be used to make output
* locale independent.
*/
#define FO_LC_NUMERIC_C 0x01
/*
* Indicate that option -H may be used with corresponding format
* so that only the header is displayed.
*/
#define FO_HEADER_ONLY 0x02
/* Unused: 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
/*
* Indicate that the number of different items should be counted and
* a list created (see @item_list and @item_list_sz in struct activity).
*/
#define FO_ITEM_LIST 0x200
/*
* Indicate that all the records, including RESTART and COMMENT ones,
* should be displayed in order of time.
*/
#define FO_FULL_ORDER 0x400
#define SET_LC_NUMERIC_C(m) (((m) & FO_LC_NUMERIC_C) == FO_LC_NUMERIC_C)
#define ACCEPT_HEADER_ONLY(m) (((m) & FO_HEADER_ONLY) == FO_HEADER_ONLY)
#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)
#define CREATE_ITEM_LIST(m) (((m) & FO_ITEM_LIST) == FO_ITEM_LIST)
#define ORDER_ALL_RECORDS(m) (((m) & FO_FULL_ORDER) == FO_FULL_ORDER)
/*
***************************************************************************
* 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 *, char *, struct file_header *, struct record_header *);
__printf_funct_t print_ppc_restart
(int *, int, char *, char *, char *, struct file_header *, struct record_header *);
__printf_funct_t print_xml_restart
(int *, int, char *, char *, char *, struct file_header *, struct record_header *);
__printf_funct_t print_json_restart
(int *, int, char *, char *, char *, struct file_header *, struct record_header *);
__printf_funct_t print_raw_restart
(int *, int, char *, char *, char *, struct file_header *, struct record_header *);
__printf_funct_t print_pcp_restart
(int *, int, char *, char *, char *, struct file_header *, struct record_header *);
/*
* Prototypes used to display comments
*/
__printf_funct_t print_db_comment
(int *, int, char *, char *, char *, char *, struct file_header *, struct record_header *);
__printf_funct_t print_ppc_comment
(int *, int, char *, char *, char *, char *, struct file_header *, struct record_header *);
__printf_funct_t print_xml_comment
(int *, int, char *, char *, char *, char *, struct file_header *, struct record_header *);
__printf_funct_t print_json_comment
(int *, int, char *, char *, char *, char *, struct file_header *, struct record_header *);
__printf_funct_t print_raw_comment
(int *, int, char *, char *, char *, char *, struct file_header *, struct record_header *);
__printf_funct_t print_pcp_comment
(int *, int, char *, char *, char *, char *, struct file_header *, struct record_header *);
/*
* Prototypes used to display the statistics part of the report
*/
__printf_funct_t print_xml_statistics
(int *, int, struct activity * [], unsigned int []);
__printf_funct_t print_json_statistics
(int *, int, struct activity * [], unsigned int []);
__printf_funct_t print_pcp_statistics
(int *, int, struct activity * [], unsigned int []);
/*
* Prototypes used to display the timestamp part of the report
*/
__tm_funct_t print_db_timestamp
(void *, int, char *, char *, char *, unsigned long long,
struct record_header *, struct file_header *, unsigned int);
__tm_funct_t print_ppc_timestamp
(void *, int, char *, char *, char *, unsigned long long,
struct record_header *, struct file_header *, unsigned int);
__tm_funct_t print_xml_timestamp
(void *, int, char *, char *, char *, unsigned long long,
struct record_header *, struct file_header *, unsigned int);
__tm_funct_t print_json_timestamp
(void *, int, char *, char *, char *, unsigned long long,
struct record_header *, struct file_header *, unsigned int);
__tm_funct_t print_raw_timestamp
(void *, int, char *, char *, char *, unsigned long long,
struct record_header *, struct file_header *, unsigned int);
__tm_funct_t print_pcp_timestamp
(void *, int, char *, char *, char *, unsigned long long,
struct record_header *, struct file_header *, unsigned int);
/*
* Prototypes used to display the report header
*/
__printf_funct_t print_xml_header
(void *, int, char *, char *, struct file_magic *, struct file_header *,
struct activity * [], unsigned int [], struct file_activity *);
__printf_funct_t print_json_header
(void *, int, char *, char *, struct file_magic *, struct file_header *,
struct activity * [], unsigned int [], struct file_activity *);
__printf_funct_t print_hdr_header
(void *, int, char *, char *, struct file_magic *, struct file_header *,
struct activity * [], unsigned int [], struct file_activity *);
__printf_funct_t print_svg_header
(void *, int, char *, char *, struct file_magic *, struct file_header *,
struct activity * [], unsigned int [], struct file_activity *);
__printf_funct_t print_pcp_header
(void *, int, char *, char *, struct file_magic *, struct file_header *,
struct activity * [], unsigned int [], struct file_activity *);
/*
* Main display functions
*/
void logic1_display_loop
(int, char *, struct file_activity *, struct file_magic *,
struct tstamp_ext *, void *);
void logic2_display_loop
(int, char *, struct file_activity *, struct file_magic *,
struct tstamp_ext *, void *);
void svg_display_loop
(int, char *, struct file_activity *, struct file_magic *,
struct tstamp_ext *, void *);
#endif /* _SADF_H */
|