#include "HsFFI.h" #include typedef HsWord64 u64; #define HEADER_FEAT_BITS 256 #define BITS_PER_BYTE 8 #define DIV_ROUND_UP(n,d) (((n) + (d) - 1) / (d)) #define BITS_TO_LONGS(nr) DIV_ROUND_UP(nr, BITS_PER_BYTE * sizeof(long)) #define DECLARE_BITMAP(name,bits) \ unsigned long name[BITS_TO_LONGS(bits)] struct perf_file_section { u64 offset; u64 size; }; struct perf_file_header { u64 magic; u64 size; u64 attr_size; struct perf_file_section attrs; struct perf_file_section data; struct perf_file_section event_types; DECLARE_BITMAP(adds_features, HEADER_FEAT_BITS); }; struct perf_file_attr { struct perf_event_attr attr; struct perf_file_section ids; }; #define MAX_EVENT_NAME 64 struct perf_trace_event_type { u64 event_id; char name[MAX_EVENT_NAME]; };