cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

trace.h (1694B)


      1/* SPDX-License-Identifier: GPL-2.0 */
      2#ifndef _LINUX_TRACE_H
      3#define _LINUX_TRACE_H
      4
      5#ifdef CONFIG_TRACING
      6
      7#define TRACE_EXPORT_FUNCTION	BIT(0)
      8#define TRACE_EXPORT_EVENT	BIT(1)
      9#define TRACE_EXPORT_MARKER	BIT(2)
     10
     11/*
     12 * The trace export - an export of Ftrace output. The trace_export
     13 * can process traces and export them to a registered destination as
     14 * an addition to the current only output of Ftrace - i.e. ring buffer.
     15 *
     16 * If you want traces to be sent to some other place rather than ring
     17 * buffer only, just need to register a new trace_export and implement
     18 * its own .write() function for writing traces to the storage.
     19 *
     20 * next		- pointer to the next trace_export
     21 * write	- copy traces which have been delt with ->commit() to
     22 *		  the destination
     23 * flags	- which ftrace to be exported
     24 */
     25struct trace_export {
     26	struct trace_export __rcu	*next;
     27	void (*write)(struct trace_export *, const void *, unsigned int);
     28	int flags;
     29};
     30
     31int register_ftrace_export(struct trace_export *export);
     32int unregister_ftrace_export(struct trace_export *export);
     33
     34struct trace_array;
     35
     36void trace_printk_init_buffers(void);
     37__printf(3, 4)
     38int trace_array_printk(struct trace_array *tr, unsigned long ip,
     39		       const char *fmt, ...);
     40int trace_array_init_printk(struct trace_array *tr);
     41void trace_array_put(struct trace_array *tr);
     42struct trace_array *trace_array_get_by_name(const char *name);
     43int trace_array_destroy(struct trace_array *tr);
     44
     45/* For osnoise tracer */
     46int osnoise_arch_register(void);
     47void osnoise_arch_unregister(void);
     48void osnoise_trace_irq_entry(int id);
     49void osnoise_trace_irq_exit(int id, const char *desc);
     50
     51#endif	/* CONFIG_TRACING */
     52
     53#endif	/* _LINUX_TRACE_H */