libipt-sys 0.1.1

raw bindings to the libipt intel processor tracing library
Documentation
; Copyright (c) 2017-2019, Intel Corporation
;
; Redistribution and use in source and binary forms, with or without
; modification, are permitted provided that the following conditions are met:
;
;  * Redistributions of source code must retain the above copyright notice,
;    this list of conditions and the following disclaimer.
;  * Redistributions in binary form must reproduce the above copyright notice,
;    this list of conditions and the following disclaimer in the documentation
;    and/or other materials provided with the distribution.
;  * Neither the name of Intel Corporation nor the names of its contributors
;    may be used to endorse or promote products derived from this software
;    without specific prior written permission.
;
; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
; ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
; CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
; ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
; POSSIBILITY OF SUCH DAMAGE.

; Test dumping all supported perf event packets.
;
; Variant: verbose format
;
; opt:ptdump --sb:verbose --sb:offset --sb:time
;

org 0x1000
bits 64


; @sb primary(pevent)
; @sb pevent-sample_type(tid, time, id, stream, cpu, identifier)

; @pt p0: psb()

; @sb s0:  pevent-mmap-section(text, 1, 1, 1, 1, 0, 1, 2, 3, 4)
; @sb s1:  pevent-lost(3, 8, 1, 2, 0, 3, 4, 5, 6)
; @sb s2:  pevent-comm(1, 1, foo, 1, 1, 0, 2, 3, 4, 5)
; @sb s3:  pevent-comm.exec(2, 2, bar, 2, 2, 0, 3, 4, 5, 6)
; @sb s4:  pevent-exit(2, 1, 2, 1, 0, 2, 2, 0, 3, 4, 5, 6)
; @sb s5:  pevent-fork(2, 1, 2, 1, 0, 2, 2, 0, 3, 4, 5, 6)
; @sb s6:  pevent-aux(0xa000, 0x1000, 0, 2, 2, 0, 3, 4, 5, 6)
; @sb s7:  pevent-aux(0xb000, 0x700, 1, 2, 2, 0, 3, 4, 5, 6)
; @sb s8:  pevent-itrace-start(1, 2, 1, 2, 2, 3, 4, 5, 6)

; @pt p1: tsc(2)
; @pt p2: psbend()

; @sb s9:  pevent-lost-samples(8, 1, 2, 3, 4, 5, 6, 7)
; @sb s10: pevent-switch.in(1, 2, 3, 4, 5, 6, 7)
; @sb s11: pevent-switch.out(1, 2, 3, 4, 5, 6, 7)
; @sb s12: pevent-switch-cpu-wide.in(8, 9, 1, 2, 3, 4, 5, 6, 7)
; @sb s13: pevent-switch-cpu-wide.out(8, 9, 1, 2, 3, 4, 5, 6, 7)

section text vstart=0xa000 start=0x1000
        nop


; @pt .exp(ptdump)
;%0p0  psb
;%0s0  0000000000000000  PERF_RECORD_MMAP
; pid: 1
; tid: 1
; addr: a000
; len: 1
; pgoff: 0
; filename: pevent-dump_verbose.bin
; pid: 1
; tid: 1
; time: 0
; id: 1
; cpu: 2
; stream id: 3
; identifier: 4
;%0s1  0000000000000000  PERF_RECORD_LOST
; id: 3
; lost: 8
; pid: 1
; tid: 2
; time: 0
; id: 3
; cpu: 4
; stream id: 5
; identifier: 6
;%0s2  0000000000000000  PERF_RECORD_COMM
; pid: 1
; tid: 1
; comm: foo
; pid: 1
; tid: 1
; time: 0
; id: 2
; cpu: 3
; stream id: 4
; identifier: 5
;%0s3  0000000000000000  PERF_RECORD_COMM.EXEC
; pid: 2
; tid: 2
; comm: bar
; pid: 2
; tid: 2
; time: 0
; id: 3
; cpu: 4
; stream id: 5
; identifier: 6
;%0s4  0000000000000000  PERF_RECORD_EXIT
; pid: 2
; ppid: 1
; tid: 2
; ptid: 1
; time: 0
; pid: 2
; tid: 2
; time: 0
; id: 3
; cpu: 4
; stream id: 5
; identifier: 6
;%0s5  0000000000000000  PERF_RECORD_FORK
; pid: 2
; ppid: 1
; tid: 2
; ptid: 1
; time: 0
; pid: 2
; tid: 2
; time: 0
; id: 3
; cpu: 4
; stream id: 5
; identifier: 6
;%0s6  0000000000000000  PERF_RECORD_AUX
; aux offset: a000
; aux size: 1000
; flags: 0
; pid: 2
; tid: 2
; time: 0
; id: 3
; cpu: 4
; stream id: 5
; identifier: 6
;%0s7  0000000000000000  PERF_RECORD_AUX.TRUNCATED
; aux offset: b000
; aux size: 700
; flags: 1
; pid: 2
; tid: 2
; time: 0
; id: 3
; cpu: 4
; stream id: 5
; identifier: 6
;%0s8  0000000000000002  PERF_RECORD_ITRACE_START
; pid: 1
; tid: 2
; pid: 1
; tid: 2
; time: 2
; id: 3
; cpu: 4
; stream id: 5
; identifier: 6
;%0p1  tsc      2
;%0p2  psbend
;%0s9  0000000000000003  PERF_RECORD_LOST_SAMPLES
; lost: 8
; pid: 1
; tid: 2
; time: 3
; id: 4
; cpu: 5
; stream id: 6
; identifier: 7
;%0s10 0000000000000003  PERF_RECORD_SWITCH.IN
; pid: 1
; tid: 2
; time: 3
; id: 4
; cpu: 5
; stream id: 6
; identifier: 7
;%0s11 0000000000000003  PERF_RECORD_SWITCH.OUT
; pid: 1
; tid: 2
; time: 3
; id: 4
; cpu: 5
; stream id: 6
; identifier: 7
;%0s12 0000000000000003  PERF_RECORD_SWITCH_CPU_WIDE.IN
; prev pid: 8
; prev tid: 9
; pid: 1
; tid: 2
; time: 3
; id: 4
; cpu: 5
; stream id: 6
; identifier: 7
;%0s13 0000000000000003  PERF_RECORD_SWITCH_CPU_WIDE.OUT
; next pid: 8
; next tid: 9
; pid: 1
; tid: 2
; time: 3
; id: 4
; cpu: 5
; stream id: 6
; identifier: 7