mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-24 09:20:50 +07:00
tools/power/x86/intel-speed-select: Add an API for error/information print
Add a common API which can be used to print all error and information messages. In this way a common format can be used. For json output an error index in suffixed to make unique error key. Signed-off-by: Srinivas Pandruvada <srinivas.pandruvada@linux.intel.com> Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
This commit is contained in:
parent
1ba148ae9e
commit
87e115b325
@ -69,6 +69,11 @@ struct cpu_topology {
|
||||
short die_id;
|
||||
};
|
||||
|
||||
FILE *get_output_file(void)
|
||||
{
|
||||
return outf;
|
||||
}
|
||||
|
||||
void debug_printf(const char *format, ...)
|
||||
{
|
||||
va_list args;
|
||||
|
@ -515,15 +515,18 @@ void isst_ctdp_display_information(int cpu, FILE *outf, int tdp_level,
|
||||
format_and_print(outf, 1, NULL, NULL);
|
||||
}
|
||||
|
||||
static int start;
|
||||
void isst_ctdp_display_information_start(FILE *outf)
|
||||
{
|
||||
last_level = 0;
|
||||
format_and_print(outf, 0, "start", NULL);
|
||||
start = 1;
|
||||
}
|
||||
|
||||
void isst_ctdp_display_information_end(FILE *outf)
|
||||
{
|
||||
format_and_print(outf, 0, NULL, NULL);
|
||||
start = 0;
|
||||
}
|
||||
|
||||
void isst_pbf_display_information(int cpu, FILE *outf, int level,
|
||||
@ -686,3 +689,44 @@ void isst_display_result(int cpu, FILE *outf, char *feature, char *cmd,
|
||||
|
||||
format_and_print(outf, 1, NULL, NULL);
|
||||
}
|
||||
|
||||
void isst_display_error_info_message(int error, char *msg, int arg_valid, int arg)
|
||||
{
|
||||
FILE *outf = get_output_file();
|
||||
static int error_index;
|
||||
char header[256];
|
||||
char value[256];
|
||||
|
||||
if (!out_format_is_json()) {
|
||||
if (arg_valid)
|
||||
snprintf(value, sizeof(value), "%s %d", msg, arg);
|
||||
else
|
||||
snprintf(value, sizeof(value), "%s", msg);
|
||||
|
||||
if (error)
|
||||
fprintf(outf, "Error: %s\n", value);
|
||||
else
|
||||
fprintf(outf, "Information: %s\n", value);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!start)
|
||||
format_and_print(outf, 0, "start", NULL);
|
||||
|
||||
if (error)
|
||||
snprintf(header, sizeof(header), "Error%d", error_index++);
|
||||
else
|
||||
snprintf(header, sizeof(header), "Information:%d", error_index++);
|
||||
format_and_print(outf, 1, header, NULL);
|
||||
|
||||
snprintf(header, sizeof(header), "message");
|
||||
if (arg_valid)
|
||||
snprintf(value, sizeof(value), "%s %d", msg, arg);
|
||||
else
|
||||
snprintf(value, sizeof(value), "%s", msg);
|
||||
|
||||
format_and_print(outf, 2, header, value);
|
||||
format_and_print(outf, 1, NULL, NULL);
|
||||
if (!start)
|
||||
format_and_print(outf, 0, NULL, NULL);
|
||||
}
|
||||
|
@ -172,6 +172,7 @@ extern int get_cpu_count(int pkg_id, int die_id);
|
||||
extern int get_core_count(int pkg_id, int die_id);
|
||||
|
||||
/* Common interfaces */
|
||||
FILE *get_output_file(void);
|
||||
extern void debug_printf(const char *format, ...);
|
||||
extern int out_format_is_json(void);
|
||||
extern int get_physical_package_id(int cpu);
|
||||
@ -252,4 +253,5 @@ extern void isst_clos_display_clos_information(int cpu, FILE *outf,
|
||||
extern int is_clx_n_platform(void);
|
||||
extern int get_cpufreq_base_freq(int cpu);
|
||||
extern int isst_read_pm_config(int cpu, int *cp_state, int *cp_cap);
|
||||
extern void isst_display_error_info_message(int error, char *msg, int arg_valid, int arg);
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user