[][src]Constant nc::types::PERF_RECORD_SAMPLE

pub const PERF_RECORD_SAMPLE: i32 = 9;
struct {
 struct perf_event_header header;

 #
 # Note that PERF_SAMPLE_IDENTIFIER duplicates PERF_SAMPLE_ID.
 # The advantage of PERF_SAMPLE_IDENTIFIER is that its position
 # is fixed relative to header.
 #
 { u64 id; } && PERF_SAMPLE_IDENTIFIER
 { u64 ip; } && PERF_SAMPLE_IP
 { u32 pid, tid; } && PERF_SAMPLE_TID
 { u64 time; } && PERF_SAMPLE_TIME
 { u64 addr; } && PERF_SAMPLE_ADDR
 { u64 id; } && PERF_SAMPLE_ID
 { u64 stream_id; } && PERF_SAMPLE_STREAM_ID
 { u32 cpu, res; } && PERF_SAMPLE_CPU
 { u64 period; } && PERF_SAMPLE_PERIOD

 { struct read_format values; } && PERF_SAMPLE_READ

 { u64 nr;
   u64 ips[nr]; } && PERF_SAMPLE_CALLCHAIN

 #
 # The RAW record below is opaque data wrt the ABI
 #
 # That is, the ABI doesn't make any promises wrt to
 # the stability of its content, it may vary depending
 # on event, hardware, kernel version and phase of
 # the moon.
 #
 # In other words, PERF_SAMPLE_RAW contents are not an ABI.
 #

 { u32 size;
   char data[size]; }&& PERF_SAMPLE_RAW

 { u64 nr;
   { u64 from, to, flags } lbr[nr];} && PERF_SAMPLE_BRANCH_STACK

 { u64 abi; # enum perf_sample_regs_abi
   u64 regs[weight(mask)]; } && PERF_SAMPLE_REGS_USER
 { u64 size;
   char data[size];
   u64 dyn_size; } && PERF_SAMPLE_STACK_USER

 { u64 weight; } && PERF_SAMPLE_WEIGHT
 { u64 data_src; } && PERF_SAMPLE_DATA_SRC
 { u64 transaction; } && PERF_SAMPLE_TRANSACTION
 { u64 abi; # enum perf_sample_regs_abi
   u64 regs[weight(mask)]; } && PERF_SAMPLE_REGS_INTR
 { u64 phys_addr;} && PERF_SAMPLE_PHYS_ADDR
};