brintos

brintos / linux-shallow public Read only

0
0
Text · 3.2 KiB · 555f4f4 Raw
112 lines · c
1// SPDX-License-Identifier: GPL-2.02#include "trace.h"3 4/*5 * osnoise_context - read, store, write, restore osnoise configs.6 */7struct osnoise_context {8	int			flags;9	int			ref;10 11	char			*curr_cpus;12	char			*orig_cpus;13 14	/* 0 as init value */15	unsigned long long	orig_runtime_us;16	unsigned long long	runtime_us;17 18	/* 0 as init value */19	unsigned long long	orig_period_us;20	unsigned long long	period_us;21 22	/* 0 as init value */23	long long		orig_timerlat_period_us;24	long long		timerlat_period_us;25 26	/* 0 as init value */27	long long		orig_tracing_thresh;28	long long		tracing_thresh;29 30	/* -1 as init value because 0 is disabled */31	long long		orig_stop_us;32	long long		stop_us;33 34	/* -1 as init value because 0 is disabled */35	long long		orig_stop_total_us;36	long long		stop_total_us;37 38	/* -1 as init value because 0 is disabled */39	long long		orig_print_stack;40	long long		print_stack;41 42	/* -1 as init value because 0 is off */43	int			orig_opt_irq_disable;44	int			opt_irq_disable;45 46	/* -1 as init value because 0 is off */47	int			orig_opt_workload;48	int			opt_workload;49};50 51/*52 * *_INIT_VALs are also invalid values, they are used to53 * communicate errors.54 */55#define OSNOISE_OPTION_INIT_VAL	(-1)56#define OSNOISE_TIME_INIT_VAL	(0)57 58struct osnoise_context *osnoise_context_alloc(void);59int osnoise_get_context(struct osnoise_context *context);60void osnoise_put_context(struct osnoise_context *context);61 62int osnoise_set_cpus(struct osnoise_context *context, char *cpus);63void osnoise_restore_cpus(struct osnoise_context *context);64 65int osnoise_set_runtime_period(struct osnoise_context *context,66			       unsigned long long runtime,67			       unsigned long long period);68void osnoise_restore_runtime_period(struct osnoise_context *context);69 70int osnoise_set_stop_us(struct osnoise_context *context,71			long long stop_us);72void osnoise_restore_stop_us(struct osnoise_context *context);73 74int osnoise_set_stop_total_us(struct osnoise_context *context,75			      long long stop_total_us);76void osnoise_restore_stop_total_us(struct osnoise_context *context);77 78int osnoise_set_timerlat_period_us(struct osnoise_context *context,79				   long long timerlat_period_us);80void osnoise_restore_timerlat_period_us(struct osnoise_context *context);81 82int osnoise_set_tracing_thresh(struct osnoise_context *context,83			       long long tracing_thresh);84void osnoise_restore_tracing_thresh(struct osnoise_context *context);85 86void osnoise_restore_print_stack(struct osnoise_context *context);87int osnoise_set_print_stack(struct osnoise_context *context,88			    long long print_stack);89 90int osnoise_set_irq_disable(struct osnoise_context *context, bool onoff);91int osnoise_set_workload(struct osnoise_context *context, bool onoff);92 93/*94 * osnoise_tool -  osnoise based tool definition.95 */96struct osnoise_tool {97	struct trace_instance		trace;98	struct osnoise_context		*context;99	void				*data;100	void				*params;101	time_t				start_time;102};103 104void osnoise_destroy_tool(struct osnoise_tool *top);105struct osnoise_tool *osnoise_init_tool(char *tool_name);106struct osnoise_tool *osnoise_init_trace_tool(char *tracer);107 108int osnoise_hist_main(int argc, char *argv[]);109int osnoise_top_main(int argc, char **argv);110int osnoise_main(int argc, char **argv);111int hwnoise_main(int argc, char **argv);112