#ifndef STRACE_LINUX_PERF_EVENT_STRUCT_H
#define STRACE_LINUX_PERF_EVENT_STRUCT_H

#include <stdint.h>

struct perf_event_attr {
	uint32_t type;
	uint32_t size;
	uint64_t config;
	union {
		uint64_t sample_period;
		uint64_t sample_freq;
	};
	uint64_t sample_type;
	uint64_t read_format;
	uint64_t disabled			:1,
		 inherit			:1,
		 pinned				:1,
		 exclusive			:1,
		 exclude_user			:1,
		 exclude_kernel			:1,
		 exclude_hv			:1,
		 exclude_idle			:1,
		 mmap				:1,
		 comm				:1,
		 freq				:1,
		 inherit_stat			:1,
		 enable_on_exec			:1,
		 task				:1,
		 watermark			:1,
		 precise_ip			:2,
		 mmap_data			:1,
		 sample_id_all			:1,
		 exclude_host			:1,
		 exclude_guest			:1,
		 exclude_callchain_kernel	:1,
		 exclude_callchain_user		:1,
		 mmap2				:1,
		 comm_exec			:1,
		 use_clockid			:1,
		 context_switch			:1,
		 write_backward			:1,
		 __reserved_1			:36;
	union {
		uint32_t wakeup_events;
		uint32_t wakeup_watermark;
	};
	uint32_t bp_type;
	union {
		uint64_t bp_addr;
		uint64_t config1;
	};
	/* End of ver 0 - 64 bytes */
	union {
		uint64_t bp_len;
		uint64_t config2;
	};
	/* End of ver 1 - 72 bytes */
	uint64_t branch_sample_type;
	/* End of ver 2 - 80 bytes */
	uint64_t sample_regs_user;
	uint32_t sample_stack_user;
	int32_t  clockid;
	/* End of ver 3 - 96 bytes */
	uint64_t sample_regs_intr;
	/* End of ver 4 - 104 bytes */
	uint32_t aux_watermark;
	uint16_t sample_max_stack;
	uint16_t __reserved_2;
	/* End of ver 5 - 112 bytes */
};

#endif /* !STRACE_LINUX_PERF_EVENT_STRUCT_H */
