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

event-parse-local.h (2654B)


      1// SPDX-License-Identifier: LGPL-2.1
      2/*
      3 * Copyright (C) 2009, 2010 Red Hat Inc, Steven Rostedt <srostedt@redhat.com>
      4 *
      5 */
      6
      7#ifndef _PARSE_EVENTS_INT_H
      8#define _PARSE_EVENTS_INT_H
      9
     10struct tep_cmdline;
     11struct cmdline_list;
     12struct func_map;
     13struct func_list;
     14struct event_handler;
     15struct func_resolver;
     16struct tep_plugins_dir;
     17
     18#define __hidden __attribute__((visibility ("hidden")))
     19
     20struct tep_handle {
     21	int ref_count;
     22
     23	int header_page_ts_offset;
     24	int header_page_ts_size;
     25	int header_page_size_offset;
     26	int header_page_size_size;
     27	int header_page_data_offset;
     28	int header_page_data_size;
     29	int header_page_overwrite;
     30
     31	enum tep_endian file_bigendian;
     32	enum tep_endian host_bigendian;
     33
     34	int old_format;
     35
     36	int cpus;
     37	int long_size;
     38	int page_size;
     39
     40	struct tep_cmdline *cmdlines;
     41	struct cmdline_list *cmdlist;
     42	int cmdline_count;
     43
     44	struct func_map *func_map;
     45	struct func_resolver *func_resolver;
     46	struct func_list *funclist;
     47	unsigned int func_count;
     48
     49	struct printk_map *printk_map;
     50	struct printk_list *printklist;
     51	unsigned int printk_count;
     52
     53	struct tep_event **events;
     54	int nr_events;
     55	struct tep_event **sort_events;
     56	enum tep_event_sort_type last_type;
     57
     58	int type_offset;
     59	int type_size;
     60
     61	int pid_offset;
     62	int pid_size;
     63
     64	int pc_offset;
     65	int pc_size;
     66
     67	int flags_offset;
     68	int flags_size;
     69
     70	int ld_offset;
     71	int ld_size;
     72
     73	int test_filters;
     74
     75	int flags;
     76
     77	struct tep_format_field *bprint_ip_field;
     78	struct tep_format_field *bprint_fmt_field;
     79	struct tep_format_field *bprint_buf_field;
     80
     81	struct event_handler *handlers;
     82	struct tep_function_handler *func_handlers;
     83
     84	/* cache */
     85	struct tep_event *last_event;
     86
     87	struct tep_plugins_dir *plugins_dir;
     88};
     89
     90enum tep_print_parse_type {
     91	PRINT_FMT_STRING,
     92	PRINT_FMT_ARG_DIGIT,
     93	PRINT_FMT_ARG_POINTER,
     94	PRINT_FMT_ARG_STRING,
     95};
     96
     97struct tep_print_parse {
     98	struct tep_print_parse	*next;
     99
    100	char				*format;
    101	int				ls;
    102	enum tep_print_parse_type	type;
    103	struct tep_print_arg		*arg;
    104	struct tep_print_arg		*len_as_arg;
    105};
    106
    107void free_tep_event(struct tep_event *event);
    108void free_tep_format_field(struct tep_format_field *field);
    109void free_tep_plugin_paths(struct tep_handle *tep);
    110
    111unsigned short data2host2(struct tep_handle *tep, unsigned short data);
    112unsigned int data2host4(struct tep_handle *tep, unsigned int data);
    113unsigned long long data2host8(struct tep_handle *tep, unsigned long long data);
    114
    115/* access to the internal parser */
    116int peek_char(void);
    117void init_input_buf(const char *buf, unsigned long long size);
    118unsigned long long get_input_buf_ptr(void);
    119const char *get_input_buf(void);
    120enum tep_event_type read_token(char **tok);
    121void free_token(char *tok);
    122
    123#endif /* _PARSE_EVENTS_INT_H */