unix: update PERF consts on linux

Update the PERF_* consts from /usr/include/linux/perf_event.h.

Change-Id: I2dfa09445547682fa7ed99b385476319e8493c27
Reviewed-on: https://go-review.googlesource.com/c/sys/+/259477
Trust: Ian Lance Taylor <iant@golang.org>
Run-TryBot: Ian Lance Taylor <iant@golang.org>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Tobias Klauser <tobias.klauser@gmail.com>
Reviewed-by: Matt Layher <mdlayher@gmail.com>
diff --git a/unix/linux/types.go b/unix/linux/types.go
index 9778b0a..56f40b3 100644
--- a/unix/linux/types.go
+++ b/unix/linux/types.go
@@ -910,8 +910,6 @@
 
 type SignalfdSiginfo C.struct_signalfd_siginfo
 
-const PERF_IOC_FLAG_GROUP = C.PERF_IOC_FLAG_GROUP
-
 // Terminal handling
 
 type Termios C.termios_t
@@ -1038,14 +1036,16 @@
 	PerfBitContextSwitch                 = CBitFieldMaskBit26
 )
 
+// generated by:
+// perl -nlE '/^\s*(PERF_\w+)/ && say "$1 = C.$1"' /usr/include/linux/perf_event.h
 const (
-	PERF_TYPE_HARDWARE   = C.PERF_TYPE_HARDWARE
-	PERF_TYPE_SOFTWARE   = C.PERF_TYPE_SOFTWARE
-	PERF_TYPE_TRACEPOINT = C.PERF_TYPE_TRACEPOINT
-	PERF_TYPE_HW_CACHE   = C.PERF_TYPE_HW_CACHE
-	PERF_TYPE_RAW        = C.PERF_TYPE_RAW
-	PERF_TYPE_BREAKPOINT = C.PERF_TYPE_BREAKPOINT
-
+	PERF_FLAG_FD_CLOEXEF_TYPE_HARDWARE    = C.PERF_TYPE_HARDWARE
+	PERF_TYPE_SOFTWARE                    = C.PERF_TYPE_SOFTWARE
+	PERF_TYPE_TRACEPOINT                  = C.PERF_TYPE_TRACEPOINT
+	PERF_TYPE_HW_CACHE                    = C.PERF_TYPE_HW_CACHE
+	PERF_TYPE_RAW                         = C.PERF_TYPE_RAW
+	PERF_TYPE_BREAKPOINT                  = C.PERF_TYPE_BREAKPOINT
+	PERF_TYPE_MAX                         = C.PERF_TYPE_MAX
 	PERF_COUNT_HW_CPU_CYCLES              = C.PERF_COUNT_HW_CPU_CYCLES
 	PERF_COUNT_HW_INSTRUCTIONS            = C.PERF_COUNT_HW_INSTRUCTIONS
 	PERF_COUNT_HW_CACHE_REFERENCES        = C.PERF_COUNT_HW_CACHE_REFERENCES
@@ -1056,106 +1056,161 @@
 	PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = C.PERF_COUNT_HW_STALLED_CYCLES_FRONTEND
 	PERF_COUNT_HW_STALLED_CYCLES_BACKEND  = C.PERF_COUNT_HW_STALLED_CYCLES_BACKEND
 	PERF_COUNT_HW_REF_CPU_CYCLES          = C.PERF_COUNT_HW_REF_CPU_CYCLES
-
-	PERF_COUNT_HW_CACHE_L1D  = C.PERF_COUNT_HW_CACHE_L1D
-	PERF_COUNT_HW_CACHE_L1I  = C.PERF_COUNT_HW_CACHE_L1I
-	PERF_COUNT_HW_CACHE_LL   = C.PERF_COUNT_HW_CACHE_LL
-	PERF_COUNT_HW_CACHE_DTLB = C.PERF_COUNT_HW_CACHE_DTLB
-	PERF_COUNT_HW_CACHE_ITLB = C.PERF_COUNT_HW_CACHE_ITLB
-	PERF_COUNT_HW_CACHE_BPU  = C.PERF_COUNT_HW_CACHE_BPU
-	PERF_COUNT_HW_CACHE_NODE = C.PERF_COUNT_HW_CACHE_NODE
-
-	PERF_COUNT_HW_CACHE_OP_READ     = C.PERF_COUNT_HW_CACHE_OP_READ
-	PERF_COUNT_HW_CACHE_OP_WRITE    = C.PERF_COUNT_HW_CACHE_OP_WRITE
-	PERF_COUNT_HW_CACHE_OP_PREFETCH = C.PERF_COUNT_HW_CACHE_OP_PREFETCH
-
-	PERF_COUNT_HW_CACHE_RESULT_ACCESS = C.PERF_COUNT_HW_CACHE_RESULT_ACCESS
-	PERF_COUNT_HW_CACHE_RESULT_MISS   = C.PERF_COUNT_HW_CACHE_RESULT_MISS
-
-	PERF_COUNT_SW_CPU_CLOCK        = C.PERF_COUNT_SW_CPU_CLOCK
-	PERF_COUNT_SW_TASK_CLOCK       = C.PERF_COUNT_SW_TASK_CLOCK
-	PERF_COUNT_SW_PAGE_FAULTS      = C.PERF_COUNT_SW_PAGE_FAULTS
-	PERF_COUNT_SW_CONTEXT_SWITCHES = C.PERF_COUNT_SW_CONTEXT_SWITCHES
-	PERF_COUNT_SW_CPU_MIGRATIONS   = C.PERF_COUNT_SW_CPU_MIGRATIONS
-	PERF_COUNT_SW_PAGE_FAULTS_MIN  = C.PERF_COUNT_SW_PAGE_FAULTS_MIN
-	PERF_COUNT_SW_PAGE_FAULTS_MAJ  = C.PERF_COUNT_SW_PAGE_FAULTS_MAJ
-	PERF_COUNT_SW_ALIGNMENT_FAULTS = C.PERF_COUNT_SW_ALIGNMENT_FAULTS
-	PERF_COUNT_SW_EMULATION_FAULTS = C.PERF_COUNT_SW_EMULATION_FAULTS
-	PERF_COUNT_SW_DUMMY            = C.PERF_COUNT_SW_DUMMY
-	PERF_COUNT_SW_BPF_OUTPUT       = C.PERF_COUNT_SW_BPF_OUTPUT
-
-	PERF_SAMPLE_IP           = C.PERF_SAMPLE_IP
-	PERF_SAMPLE_TID          = C.PERF_SAMPLE_TID
-	PERF_SAMPLE_TIME         = C.PERF_SAMPLE_TIME
-	PERF_SAMPLE_ADDR         = C.PERF_SAMPLE_ADDR
-	PERF_SAMPLE_READ         = C.PERF_SAMPLE_READ
-	PERF_SAMPLE_CALLCHAIN    = C.PERF_SAMPLE_CALLCHAIN
-	PERF_SAMPLE_ID           = C.PERF_SAMPLE_ID
-	PERF_SAMPLE_CPU          = C.PERF_SAMPLE_CPU
-	PERF_SAMPLE_PERIOD       = C.PERF_SAMPLE_PERIOD
-	PERF_SAMPLE_STREAM_ID    = C.PERF_SAMPLE_STREAM_ID
-	PERF_SAMPLE_RAW          = C.PERF_SAMPLE_RAW
-	PERF_SAMPLE_BRANCH_STACK = C.PERF_SAMPLE_BRANCH_STACK
-	PERF_SAMPLE_REGS_USER    = C.PERF_SAMPLE_REGS_USER
-	PERF_SAMPLE_STACK_USER   = C.PERF_SAMPLE_STACK_USER
-	PERF_SAMPLE_WEIGHT       = C.PERF_SAMPLE_WEIGHT
-	PERF_SAMPLE_DATA_SRC     = C.PERF_SAMPLE_DATA_SRC
-	PERF_SAMPLE_IDENTIFIER   = C.PERF_SAMPLE_IDENTIFIER
-	PERF_SAMPLE_TRANSACTION  = C.PERF_SAMPLE_TRANSACTION
-	PERF_SAMPLE_REGS_INTR    = C.PERF_SAMPLE_REGS_INTR
-
-	PERF_SAMPLE_BRANCH_USER       = C.PERF_SAMPLE_BRANCH_USER
-	PERF_SAMPLE_BRANCH_KERNEL     = C.PERF_SAMPLE_BRANCH_KERNEL
-	PERF_SAMPLE_BRANCH_HV         = C.PERF_SAMPLE_BRANCH_HV
-	PERF_SAMPLE_BRANCH_ANY        = C.PERF_SAMPLE_BRANCH_ANY
-	PERF_SAMPLE_BRANCH_ANY_CALL   = C.PERF_SAMPLE_BRANCH_ANY_CALL
-	PERF_SAMPLE_BRANCH_ANY_RETURN = C.PERF_SAMPLE_BRANCH_ANY_RETURN
-	PERF_SAMPLE_BRANCH_IND_CALL   = C.PERF_SAMPLE_BRANCH_IND_CALL
-	PERF_SAMPLE_BRANCH_ABORT_TX   = C.PERF_SAMPLE_BRANCH_ABORT_TX
-	PERF_SAMPLE_BRANCH_IN_TX      = C.PERF_SAMPLE_BRANCH_IN_TX
-	PERF_SAMPLE_BRANCH_NO_TX      = C.PERF_SAMPLE_BRANCH_NO_TX
-	PERF_SAMPLE_BRANCH_COND       = C.PERF_SAMPLE_BRANCH_COND
-	PERF_SAMPLE_BRANCH_CALL_STACK = C.PERF_SAMPLE_BRANCH_CALL_STACK
-	PERF_SAMPLE_BRANCH_IND_JUMP   = C.PERF_SAMPLE_BRANCH_IND_JUMP
-	PERF_SAMPLE_BRANCH_CALL       = C.PERF_SAMPLE_BRANCH_CALL
-	PERF_SAMPLE_BRANCH_NO_FLAGS   = C.PERF_SAMPLE_BRANCH_NO_FLAGS
-	PERF_SAMPLE_BRANCH_NO_CYCLES  = C.PERF_SAMPLE_BRANCH_NO_CYCLES
-	PERF_SAMPLE_BRANCH_TYPE_SAVE  = C.PERF_SAMPLE_BRANCH_TYPE_SAVE
-
-	PERF_FORMAT_TOTAL_TIME_ENABLED = C.PERF_FORMAT_TOTAL_TIME_ENABLED
-	PERF_FORMAT_TOTAL_TIME_RUNNING = C.PERF_FORMAT_TOTAL_TIME_RUNNING
-	PERF_FORMAT_ID                 = C.PERF_FORMAT_ID
-	PERF_FORMAT_GROUP              = C.PERF_FORMAT_GROUP
-
-	PERF_RECORD_MMAP            = C.PERF_RECORD_MMAP
-	PERF_RECORD_LOST            = C.PERF_RECORD_LOST
-	PERF_RECORD_COMM            = C.PERF_RECORD_COMM
-	PERF_RECORD_EXIT            = C.PERF_RECORD_EXIT
-	PERF_RECORD_THROTTLE        = C.PERF_RECORD_THROTTLE
-	PERF_RECORD_UNTHROTTLE      = C.PERF_RECORD_UNTHROTTLE
-	PERF_RECORD_FORK            = C.PERF_RECORD_FORK
-	PERF_RECORD_READ            = C.PERF_RECORD_READ
-	PERF_RECORD_SAMPLE          = C.PERF_RECORD_SAMPLE
-	PERF_RECORD_MMAP2           = C.PERF_RECORD_MMAP2
-	PERF_RECORD_AUX             = C.PERF_RECORD_AUX
-	PERF_RECORD_ITRACE_START    = C.PERF_RECORD_ITRACE_START
-	PERF_RECORD_LOST_SAMPLES    = C.PERF_RECORD_LOST_SAMPLES
-	PERF_RECORD_SWITCH          = C.PERF_RECORD_SWITCH
-	PERF_RECORD_SWITCH_CPU_WIDE = C.PERF_RECORD_SWITCH_CPU_WIDE
-	PERF_RECORD_NAMESPACES      = C.PERF_RECORD_NAMESPACES
-
-	PERF_CONTEXT_HV     = C.PERF_CONTEXT_HV
-	PERF_CONTEXT_KERNEL = C.PERF_CONTEXT_KERNEL
-	PERF_CONTEXT_USER   = C.PERF_CONTEXT_USER
-
-	PERF_CONTEXT_GUEST        = C.PERF_CONTEXT_GUEST
-	PERF_CONTEXT_GUEST_KERNEL = C.PERF_CONTEXT_GUEST_KERNEL
-	PERF_CONTEXT_GUEST_USER   = C.PERF_CONTEXT_GUEST_USER
-
-	PERF_FLAG_FD_NO_GROUP = C.PERF_FLAG_FD_NO_GROUP
-	PERF_FLAG_FD_OUTPUT   = C.PERF_FLAG_FD_OUTPUT
-	PERF_FLAG_PID_CGROUP  = C.PERF_FLAG_PID_CGROUP
-	PERF_FLAG_FD_CLOEXEC  = C.PERF_FLAG_FD_CLOEXEC
+	PERF_COUNT_HW_MAX                     = C.PERF_COUNT_HW_MAX
+	PERF_COUNT_HW_CACHE_L1D               = C.PERF_COUNT_HW_CACHE_L1D
+	PERF_COUNT_HW_CACHE_L1I               = C.PERF_COUNT_HW_CACHE_L1I
+	PERF_COUNT_HW_CACHE_LL                = C.PERF_COUNT_HW_CACHE_LL
+	PERF_COUNT_HW_CACHE_DTLB              = C.PERF_COUNT_HW_CACHE_DTLB
+	PERF_COUNT_HW_CACHE_ITLB              = C.PERF_COUNT_HW_CACHE_ITLB
+	PERF_COUNT_HW_CACHE_BPU               = C.PERF_COUNT_HW_CACHE_BPU
+	PERF_COUNT_HW_CACHE_NODE              = C.PERF_COUNT_HW_CACHE_NODE
+	PERF_COUNT_HW_CACHE_MAX               = C.PERF_COUNT_HW_CACHE_MAX
+	PERF_COUNT_HW_CACHE_OP_READ           = C.PERF_COUNT_HW_CACHE_OP_READ
+	PERF_COUNT_HW_CACHE_OP_WRITE          = C.PERF_COUNT_HW_CACHE_OP_WRITE
+	PERF_COUNT_HW_CACHE_OP_PREFETCH       = C.PERF_COUNT_HW_CACHE_OP_PREFETCH
+	PERF_COUNT_HW_CACHE_OP_MAX            = C.PERF_COUNT_HW_CACHE_OP_MAX
+	PERF_COUNT_HW_CACHE_RESULT_ACCESS     = C.PERF_COUNT_HW_CACHE_RESULT_ACCESS
+	PERF_COUNT_HW_CACHE_RESULT_MISS       = C.PERF_COUNT_HW_CACHE_RESULT_MISS
+	PERF_COUNT_HW_CACHE_RESULT_MAX        = C.PERF_COUNT_HW_CACHE_RESULT_MAX
+	PERF_COUNT_SW_CPU_CLOCK               = C.PERF_COUNT_SW_CPU_CLOCK
+	PERF_COUNT_SW_TASK_CLOCK              = C.PERF_COUNT_SW_TASK_CLOCK
+	PERF_COUNT_SW_PAGE_FAULTS             = C.PERF_COUNT_SW_PAGE_FAULTS
+	PERF_COUNT_SW_CONTEXT_SWITCHES        = C.PERF_COUNT_SW_CONTEXT_SWITCHES
+	PERF_COUNT_SW_CPU_MIGRATIONS          = C.PERF_COUNT_SW_CPU_MIGRATIONS
+	PERF_COUNT_SW_PAGE_FAULTS_MIN         = C.PERF_COUNT_SW_PAGE_FAULTS_MIN
+	PERF_COUNT_SW_PAGE_FAULTS_MAJ         = C.PERF_COUNT_SW_PAGE_FAULTS_MAJ
+	PERF_COUNT_SW_ALIGNMENT_FAULTS        = C.PERF_COUNT_SW_ALIGNMENT_FAULTS
+	PERF_COUNT_SW_EMULATION_FAULTS        = C.PERF_COUNT_SW_EMULATION_FAULTS
+	PERF_COUNT_SW_DUMMY                   = C.PERF_COUNT_SW_DUMMY
+	PERF_COUNT_SW_BPF_OUTPUT              = C.PERF_COUNT_SW_BPF_OUTPUT
+	PERF_COUNT_SW_MAX                     = C.PERF_COUNT_SW_MAX
+	PERF_SAMPLE_IP                        = C.PERF_SAMPLE_IP
+	PERF_SAMPLE_TID                       = C.PERF_SAMPLE_TID
+	PERF_SAMPLE_TIME                      = C.PERF_SAMPLE_TIME
+	PERF_SAMPLE_ADDR                      = C.PERF_SAMPLE_ADDR
+	PERF_SAMPLE_READ                      = C.PERF_SAMPLE_READ
+	PERF_SAMPLE_CALLCHAIN                 = C.PERF_SAMPLE_CALLCHAIN
+	PERF_SAMPLE_ID                        = C.PERF_SAMPLE_ID
+	PERF_SAMPLE_CPU                       = C.PERF_SAMPLE_CPU
+	PERF_SAMPLE_PERIOD                    = C.PERF_SAMPLE_PERIOD
+	PERF_SAMPLE_STREAM_ID                 = C.PERF_SAMPLE_STREAM_ID
+	PERF_SAMPLE_RAW                       = C.PERF_SAMPLE_RAW
+	PERF_SAMPLE_BRANCH_STACK              = C.PERF_SAMPLE_BRANCH_STACK
+	PERF_SAMPLE_REGS_USER                 = C.PERF_SAMPLE_REGS_USER
+	PERF_SAMPLE_STACK_USER                = C.PERF_SAMPLE_STACK_USER
+	PERF_SAMPLE_WEIGHT                    = C.PERF_SAMPLE_WEIGHT
+	PERF_SAMPLE_DATA_SRC                  = C.PERF_SAMPLE_DATA_SRC
+	PERF_SAMPLE_IDENTIFIER                = C.PERF_SAMPLE_IDENTIFIER
+	PERF_SAMPLE_TRANSACTION               = C.PERF_SAMPLE_TRANSACTION
+	PERF_SAMPLE_REGS_INTR                 = C.PERF_SAMPLE_REGS_INTR
+	PERF_SAMPLE_PHYS_ADDR                 = C.PERF_SAMPLE_PHYS_ADDR
+	PERF_SAMPLE_AUX                       = C.PERF_SAMPLE_AUX
+	PERF_SAMPLE_CGROUP                    = C.PERF_SAMPLE_CGROUP
+	PERF_SAMPLE_MAX                       = C.PERF_SAMPLE_MAX
+	PERF_SAMPLE_BRANCH_USER_SHIFT         = C.PERF_SAMPLE_BRANCH_USER_SHIFT
+	PERF_SAMPLE_BRANCH_KERNEL_SHIFT       = C.PERF_SAMPLE_BRANCH_KERNEL_SHIFT
+	PERF_SAMPLE_BRANCH_HV_SHIFT           = C.PERF_SAMPLE_BRANCH_HV_SHIFT
+	PERF_SAMPLE_BRANCH_ANY_SHIFT          = C.PERF_SAMPLE_BRANCH_ANY_SHIFT
+	PERF_SAMPLE_BRANCH_ANY_CALL_SHIFT     = C.PERF_SAMPLE_BRANCH_ANY_CALL_SHIFT
+	PERF_SAMPLE_BRANCH_ANY_RETURN_SHIFT   = C.PERF_SAMPLE_BRANCH_ANY_RETURN_SHIFT
+	PERF_SAMPLE_BRANCH_IND_CALL_SHIFT     = C.PERF_SAMPLE_BRANCH_IND_CALL_SHIFT
+	PERF_SAMPLE_BRANCH_ABORT_TX_SHIFT     = C.PERF_SAMPLE_BRANCH_ABORT_TX_SHIFT
+	PERF_SAMPLE_BRANCH_IN_TX_SHIFT        = C.PERF_SAMPLE_BRANCH_IN_TX_SHIFT
+	PERF_SAMPLE_BRANCH_NO_TX_SHIFT        = C.PERF_SAMPLE_BRANCH_NO_TX_SHIFT
+	PERF_SAMPLE_BRANCH_COND_SHIFT         = C.PERF_SAMPLE_BRANCH_COND_SHIFT
+	PERF_SAMPLE_BRANCH_CALL_STACK_SHIFT   = C.PERF_SAMPLE_BRANCH_CALL_STACK_SHIFT
+	PERF_SAMPLE_BRANCH_IND_JUMP_SHIFT     = C.PERF_SAMPLE_BRANCH_IND_JUMP_SHIFT
+	PERF_SAMPLE_BRANCH_CALL_SHIFT         = C.PERF_SAMPLE_BRANCH_CALL_SHIFT
+	PERF_SAMPLE_BRANCH_NO_FLAGS_SHIFT     = C.PERF_SAMPLE_BRANCH_NO_FLAGS_SHIFT
+	PERF_SAMPLE_BRANCH_NO_CYCLES_SHIFT    = C.PERF_SAMPLE_BRANCH_NO_CYCLES_SHIFT
+	PERF_SAMPLE_BRANCH_TYPE_SAVE_SHIFT    = C.PERF_SAMPLE_BRANCH_TYPE_SAVE_SHIFT
+	PERF_SAMPLE_BRANCH_HW_INDEX_SHIFT     = C.PERF_SAMPLE_BRANCH_HW_INDEX_SHIFT
+	PERF_SAMPLE_BRANCH_MAX_SHIFT          = C.PERF_SAMPLE_BRANCH_MAX_SHIFT
+	PERF_SAMPLE_BRANCH_USER               = C.PERF_SAMPLE_BRANCH_USER
+	PERF_SAMPLE_BRANCH_KERNEL             = C.PERF_SAMPLE_BRANCH_KERNEL
+	PERF_SAMPLE_BRANCH_HV                 = C.PERF_SAMPLE_BRANCH_HV
+	PERF_SAMPLE_BRANCH_ANY                = C.PERF_SAMPLE_BRANCH_ANY
+	PERF_SAMPLE_BRANCH_ANY_CALL           = C.PERF_SAMPLE_BRANCH_ANY_CALL
+	PERF_SAMPLE_BRANCH_ANY_RETURN         = C.PERF_SAMPLE_BRANCH_ANY_RETURN
+	PERF_SAMPLE_BRANCH_IND_CALL           = C.PERF_SAMPLE_BRANCH_IND_CALL
+	PERF_SAMPLE_BRANCH_ABORT_TX           = C.PERF_SAMPLE_BRANCH_ABORT_TX
+	PERF_SAMPLE_BRANCH_IN_TX              = C.PERF_SAMPLE_BRANCH_IN_TX
+	PERF_SAMPLE_BRANCH_NO_TX              = C.PERF_SAMPLE_BRANCH_NO_TX
+	PERF_SAMPLE_BRANCH_COND               = C.PERF_SAMPLE_BRANCH_COND
+	PERF_SAMPLE_BRANCH_CALL_STACK         = C.PERF_SAMPLE_BRANCH_CALL_STACK
+	PERF_SAMPLE_BRANCH_IND_JUMP           = C.PERF_SAMPLE_BRANCH_IND_JUMP
+	PERF_SAMPLE_BRANCH_CALL               = C.PERF_SAMPLE_BRANCH_CALL
+	PERF_SAMPLE_BRANCH_NO_FLAGS           = C.PERF_SAMPLE_BRANCH_NO_FLAGS
+	PERF_SAMPLE_BRANCH_NO_CYCLES          = C.PERF_SAMPLE_BRANCH_NO_CYCLES
+	PERF_SAMPLE_BRANCH_TYPE_SAVE          = C.PERF_SAMPLE_BRANCH_TYPE_SAVE
+	PERF_SAMPLE_BRANCH_HW_INDEX           = C.PERF_SAMPLE_BRANCH_HW_INDEX
+	PERF_SAMPLE_BRANCH_MAX                = C.PERF_SAMPLE_BRANCH_MAX
+	PERF_BR_UNKNOWN                       = C.PERF_BR_UNKNOWN
+	PERF_BR_COND                          = C.PERF_BR_COND
+	PERF_BR_UNCOND                        = C.PERF_BR_UNCOND
+	PERF_BR_IND                           = C.PERF_BR_IND
+	PERF_BR_CALL                          = C.PERF_BR_CALL
+	PERF_BR_IND_CALL                      = C.PERF_BR_IND_CALL
+	PERF_BR_RET                           = C.PERF_BR_RET
+	PERF_BR_SYSCALL                       = C.PERF_BR_SYSCALL
+	PERF_BR_SYSRET                        = C.PERF_BR_SYSRET
+	PERF_BR_COND_CALL                     = C.PERF_BR_COND_CALL
+	PERF_BR_COND_RET                      = C.PERF_BR_COND_RET
+	PERF_BR_MAX                           = C.PERF_BR_MAX
+	PERF_SAMPLE_REGS_ABI_NONE             = C.PERF_SAMPLE_REGS_ABI_NONE
+	PERF_SAMPLE_REGS_ABI_32               = C.PERF_SAMPLE_REGS_ABI_32
+	PERF_SAMPLE_REGS_ABI_64               = C.PERF_SAMPLE_REGS_ABI_64
+	PERF_TXN_ELISION                      = C.PERF_TXN_ELISION
+	PERF_TXN_TRANSACTION                  = C.PERF_TXN_TRANSACTION
+	PERF_TXN_SYNC                         = C.PERF_TXN_SYNC
+	PERF_TXN_ASYNC                        = C.PERF_TXN_ASYNC
+	PERF_TXN_RETRY                        = C.PERF_TXN_RETRY
+	PERF_TXN_CONFLICT                     = C.PERF_TXN_CONFLICT
+	PERF_TXN_CAPACITY_WRITE               = C.PERF_TXN_CAPACITY_WRITE
+	PERF_TXN_CAPACITY_READ                = C.PERF_TXN_CAPACITY_READ
+	PERF_TXN_MAX                          = C.PERF_TXN_MAX
+	PERF_TXN_ABORT_MASK                   = C.PERF_TXN_ABORT_MASK
+	PERF_TXN_ABORT_SHIFT                  = C.PERF_TXN_ABORT_SHIFT
+	PERF_FORMAT_TOTAL_TIME_ENABLED        = C.PERF_FORMAT_TOTAL_TIME_ENABLED
+	PERF_FORMAT_TOTAL_TIME_RUNNING        = C.PERF_FORMAT_TOTAL_TIME_RUNNING
+	PERF_FORMAT_ID                        = C.PERF_FORMAT_ID
+	PERF_FORMAT_GROUP                     = C.PERF_FORMAT_GROUP
+	PERF_FORMAT_MAX                       = C.PERF_FORMAT_MAX
+	PERF_IOC_FLAG_GROUP                   = C.PERF_IOC_FLAG_GROUP
+	PERF_RECORD_MMAP                      = C.PERF_RECORD_MMAP
+	PERF_RECORD_LOST                      = C.PERF_RECORD_LOST
+	PERF_RECORD_COMM                      = C.PERF_RECORD_COMM
+	PERF_RECORD_EXIT                      = C.PERF_RECORD_EXIT
+	PERF_RECORD_THROTTLE                  = C.PERF_RECORD_THROTTLE
+	PERF_RECORD_UNTHROTTLE                = C.PERF_RECORD_UNTHROTTLE
+	PERF_RECORD_FORK                      = C.PERF_RECORD_FORK
+	PERF_RECORD_READ                      = C.PERF_RECORD_READ
+	PERF_RECORD_SAMPLE                    = C.PERF_RECORD_SAMPLE
+	PERF_RECORD_MMAP2                     = C.PERF_RECORD_MMAP2
+	PERF_RECORD_AUX                       = C.PERF_RECORD_AUX
+	PERF_RECORD_ITRACE_START              = C.PERF_RECORD_ITRACE_START
+	PERF_RECORD_LOST_SAMPLES              = C.PERF_RECORD_LOST_SAMPLES
+	PERF_RECORD_SWITCH                    = C.PERF_RECORD_SWITCH
+	PERF_RECORD_SWITCH_CPU_WIDE           = C.PERF_RECORD_SWITCH_CPU_WIDE
+	PERF_RECORD_NAMESPACES                = C.PERF_RECORD_NAMESPACES
+	PERF_RECORD_KSYMBOL                   = C.PERF_RECORD_KSYMBOL
+	PERF_RECORD_BPF_EVENT                 = C.PERF_RECORD_BPF_EVENT
+	PERF_RECORD_CGROUP                    = C.PERF_RECORD_CGROUP
+	PERF_RECORD_MAX                       = C.PERF_RECORD_MAX
+	PERF_RECORD_KSYMBOL_TYPE_UNKNOWN      = C.PERF_RECORD_KSYMBOL_TYPE_UNKNOWN
+	PERF_RECORD_KSYMBOL_TYPE_BPF          = C.PERF_RECORD_KSYMBOL_TYPE_BPF
+	PERF_RECORD_KSYMBOL_TYPE_MAX          = C.PERF_RECORD_KSYMBOL_TYPE_MAX
+	PERF_BPF_EVENT_UNKNOWN                = C.PERF_BPF_EVENT_UNKNOWN
+	PERF_BPF_EVENT_PROG_LOAD              = C.PERF_BPF_EVENT_PROG_LOAD
+	PERF_BPF_EVENT_PROG_UNLOAD            = C.PERF_BPF_EVENT_PROG_UNLOAD
+	PERF_BPF_EVENT_MAX                    = C.PERF_BPF_EVENT_MAX
+	PERF_CONTEXT_HV                       = C.PERF_CONTEXT_HV
+	PERF_CONTEXT_KERNEL                   = C.PERF_CONTEXT_KERNEL
+	PERF_CONTEXT_USER                     = C.PERF_CONTEXT_USER
+	PERF_CONTEXT_GUEST                    = C.PERF_CONTEXT_GUEST
+	PERF_CONTEXT_GUEST_KERNEL             = C.PERF_CONTEXT_GUEST_KERNEL
+	PERF_CONTEXT_GUEST_USER               = C.PERF_CONTEXT_GUEST_USER
+	PERF_CONTEXT_MAX                      = C.PERF_CONTEXT_MAX
 )
 
 // Platform ABI and calling convention
diff --git a/unix/mkerrors.sh b/unix/mkerrors.sh
index 9bd8cd8..197301f 100755
--- a/unix/mkerrors.sh
+++ b/unix/mkerrors.sh
@@ -527,7 +527,7 @@
 		$2 ~ /^RND/ ||
 		$2 ~ /^KEY_(SPEC|REQKEY_DEFL)_/ ||
 		$2 ~ /^KEYCTL_/ ||
-		$2 ~ /^PERF_EVENT_IOC_/ ||
+		$2 ~ /^PERF_/ ||
 		$2 ~ /^SECCOMP_MODE_/ ||
 		$2 ~ /^SPLICE_/ ||
 		$2 ~ /^SYNC_FILE_RANGE_/ ||
diff --git a/unix/zerrors_linux.go b/unix/zerrors_linux.go
index 780d689..6232b2e 100644
--- a/unix/zerrors_linux.go
+++ b/unix/zerrors_linux.go
@@ -1508,6 +1508,92 @@
 	PARITY_DEFAULT                              = 0x0
 	PARITY_NONE                                 = 0x1
 	PARMRK                                      = 0x8
+	PERF_ATTR_SIZE_VER0                         = 0x40
+	PERF_ATTR_SIZE_VER1                         = 0x48
+	PERF_ATTR_SIZE_VER2                         = 0x50
+	PERF_ATTR_SIZE_VER3                         = 0x60
+	PERF_ATTR_SIZE_VER4                         = 0x68
+	PERF_ATTR_SIZE_VER5                         = 0x70
+	PERF_ATTR_SIZE_VER6                         = 0x78
+	PERF_AUX_FLAG_COLLISION                     = 0x8
+	PERF_AUX_FLAG_OVERWRITE                     = 0x2
+	PERF_AUX_FLAG_PARTIAL                       = 0x4
+	PERF_AUX_FLAG_TRUNCATED                     = 0x1
+	PERF_FLAG_FD_CLOEXEC                        = 0x8
+	PERF_FLAG_FD_NO_GROUP                       = 0x1
+	PERF_FLAG_FD_OUTPUT                         = 0x2
+	PERF_FLAG_PID_CGROUP                        = 0x4
+	PERF_MAX_CONTEXTS_PER_STACK                 = 0x8
+	PERF_MAX_STACK_DEPTH                        = 0x7f
+	PERF_MEM_LOCK_LOCKED                        = 0x2
+	PERF_MEM_LOCK_NA                            = 0x1
+	PERF_MEM_LOCK_SHIFT                         = 0x18
+	PERF_MEM_LVLNUM_ANY_CACHE                   = 0xb
+	PERF_MEM_LVLNUM_L1                          = 0x1
+	PERF_MEM_LVLNUM_L2                          = 0x2
+	PERF_MEM_LVLNUM_L3                          = 0x3
+	PERF_MEM_LVLNUM_L4                          = 0x4
+	PERF_MEM_LVLNUM_LFB                         = 0xc
+	PERF_MEM_LVLNUM_NA                          = 0xf
+	PERF_MEM_LVLNUM_PMEM                        = 0xe
+	PERF_MEM_LVLNUM_RAM                         = 0xd
+	PERF_MEM_LVLNUM_SHIFT                       = 0x21
+	PERF_MEM_LVL_HIT                            = 0x2
+	PERF_MEM_LVL_IO                             = 0x1000
+	PERF_MEM_LVL_L1                             = 0x8
+	PERF_MEM_LVL_L2                             = 0x20
+	PERF_MEM_LVL_L3                             = 0x40
+	PERF_MEM_LVL_LFB                            = 0x10
+	PERF_MEM_LVL_LOC_RAM                        = 0x80
+	PERF_MEM_LVL_MISS                           = 0x4
+	PERF_MEM_LVL_NA                             = 0x1
+	PERF_MEM_LVL_REM_CCE1                       = 0x400
+	PERF_MEM_LVL_REM_CCE2                       = 0x800
+	PERF_MEM_LVL_REM_RAM1                       = 0x100
+	PERF_MEM_LVL_REM_RAM2                       = 0x200
+	PERF_MEM_LVL_SHIFT                          = 0x5
+	PERF_MEM_LVL_UNC                            = 0x2000
+	PERF_MEM_OP_EXEC                            = 0x10
+	PERF_MEM_OP_LOAD                            = 0x2
+	PERF_MEM_OP_NA                              = 0x1
+	PERF_MEM_OP_PFETCH                          = 0x8
+	PERF_MEM_OP_SHIFT                           = 0x0
+	PERF_MEM_OP_STORE                           = 0x4
+	PERF_MEM_REMOTE_REMOTE                      = 0x1
+	PERF_MEM_REMOTE_SHIFT                       = 0x25
+	PERF_MEM_SNOOPX_FWD                         = 0x1
+	PERF_MEM_SNOOPX_SHIFT                       = 0x25
+	PERF_MEM_SNOOP_HIT                          = 0x4
+	PERF_MEM_SNOOP_HITM                         = 0x10
+	PERF_MEM_SNOOP_MISS                         = 0x8
+	PERF_MEM_SNOOP_NA                           = 0x1
+	PERF_MEM_SNOOP_NONE                         = 0x2
+	PERF_MEM_SNOOP_SHIFT                        = 0x13
+	PERF_MEM_TLB_HIT                            = 0x2
+	PERF_MEM_TLB_L1                             = 0x8
+	PERF_MEM_TLB_L2                             = 0x10
+	PERF_MEM_TLB_MISS                           = 0x4
+	PERF_MEM_TLB_NA                             = 0x1
+	PERF_MEM_TLB_OS                             = 0x40
+	PERF_MEM_TLB_SHIFT                          = 0x1a
+	PERF_MEM_TLB_WK                             = 0x20
+	PERF_RECORD_KSYMBOL_FLAGS_UNREGISTER        = 0x1
+	PERF_RECORD_MISC_COMM_EXEC                  = 0x2000
+	PERF_RECORD_MISC_CPUMODE_MASK               = 0x7
+	PERF_RECORD_MISC_CPUMODE_UNKNOWN            = 0x0
+	PERF_RECORD_MISC_EXACT_IP                   = 0x4000
+	PERF_RECORD_MISC_EXT_RESERVED               = 0x8000
+	PERF_RECORD_MISC_FORK_EXEC                  = 0x2000
+	PERF_RECORD_MISC_GUEST_KERNEL               = 0x4
+	PERF_RECORD_MISC_GUEST_USER                 = 0x5
+	PERF_RECORD_MISC_HYPERVISOR                 = 0x3
+	PERF_RECORD_MISC_KERNEL                     = 0x1
+	PERF_RECORD_MISC_MMAP_DATA                  = 0x2000
+	PERF_RECORD_MISC_PROC_MAP_PARSE_TIMEOUT     = 0x1000
+	PERF_RECORD_MISC_SWITCH_OUT                 = 0x2000
+	PERF_RECORD_MISC_SWITCH_OUT_PREEMPT         = 0x4000
+	PERF_RECORD_MISC_USER                       = 0x2
+	PERF_SAMPLE_BRANCH_PLM_ALL                  = 0x7
 	PIPEFS_MAGIC                                = 0x50495045
 	PPC_CMM_MAGIC                               = 0xc7571590
 	PPPIOCGNPMODE                               = 0xc008744c
diff --git a/unix/ztypes_linux.go b/unix/ztypes_linux.go
index 2309ffc..c5e829f 100644
--- a/unix/ztypes_linux.go
+++ b/unix/ztypes_linux.go
@@ -823,8 +823,6 @@
 	_         [28]uint8
 }
 
-const PERF_IOC_FLAG_GROUP = 0x1
-
 type Winsize struct {
 	Row    uint16
 	Col    uint16
@@ -990,13 +988,13 @@
 )
 
 const (
-	PERF_TYPE_HARDWARE   = 0x0
-	PERF_TYPE_SOFTWARE   = 0x1
-	PERF_TYPE_TRACEPOINT = 0x2
-	PERF_TYPE_HW_CACHE   = 0x3
-	PERF_TYPE_RAW        = 0x4
-	PERF_TYPE_BREAKPOINT = 0x5
-
+	PERF_FLAG_FD_CLOEXEF_TYPE_HARDWARE    = 0x0
+	PERF_TYPE_SOFTWARE                    = 0x1
+	PERF_TYPE_TRACEPOINT                  = 0x2
+	PERF_TYPE_HW_CACHE                    = 0x3
+	PERF_TYPE_RAW                         = 0x4
+	PERF_TYPE_BREAKPOINT                  = 0x5
+	PERF_TYPE_MAX                         = 0x6
 	PERF_COUNT_HW_CPU_CYCLES              = 0x0
 	PERF_COUNT_HW_INSTRUCTIONS            = 0x1
 	PERF_COUNT_HW_CACHE_REFERENCES        = 0x2
@@ -1007,106 +1005,161 @@
 	PERF_COUNT_HW_STALLED_CYCLES_FRONTEND = 0x7
 	PERF_COUNT_HW_STALLED_CYCLES_BACKEND  = 0x8
 	PERF_COUNT_HW_REF_CPU_CYCLES          = 0x9
-
-	PERF_COUNT_HW_CACHE_L1D  = 0x0
-	PERF_COUNT_HW_CACHE_L1I  = 0x1
-	PERF_COUNT_HW_CACHE_LL   = 0x2
-	PERF_COUNT_HW_CACHE_DTLB = 0x3
-	PERF_COUNT_HW_CACHE_ITLB = 0x4
-	PERF_COUNT_HW_CACHE_BPU  = 0x5
-	PERF_COUNT_HW_CACHE_NODE = 0x6
-
-	PERF_COUNT_HW_CACHE_OP_READ     = 0x0
-	PERF_COUNT_HW_CACHE_OP_WRITE    = 0x1
-	PERF_COUNT_HW_CACHE_OP_PREFETCH = 0x2
-
-	PERF_COUNT_HW_CACHE_RESULT_ACCESS = 0x0
-	PERF_COUNT_HW_CACHE_RESULT_MISS   = 0x1
-
-	PERF_COUNT_SW_CPU_CLOCK        = 0x0
-	PERF_COUNT_SW_TASK_CLOCK       = 0x1
-	PERF_COUNT_SW_PAGE_FAULTS      = 0x2
-	PERF_COUNT_SW_CONTEXT_SWITCHES = 0x3
-	PERF_COUNT_SW_CPU_MIGRATIONS   = 0x4
-	PERF_COUNT_SW_PAGE_FAULTS_MIN  = 0x5
-	PERF_COUNT_SW_PAGE_FAULTS_MAJ  = 0x6
-	PERF_COUNT_SW_ALIGNMENT_FAULTS = 0x7
-	PERF_COUNT_SW_EMULATION_FAULTS = 0x8
-	PERF_COUNT_SW_DUMMY            = 0x9
-	PERF_COUNT_SW_BPF_OUTPUT       = 0xa
-
-	PERF_SAMPLE_IP           = 0x1
-	PERF_SAMPLE_TID          = 0x2
-	PERF_SAMPLE_TIME         = 0x4
-	PERF_SAMPLE_ADDR         = 0x8
-	PERF_SAMPLE_READ         = 0x10
-	PERF_SAMPLE_CALLCHAIN    = 0x20
-	PERF_SAMPLE_ID           = 0x40
-	PERF_SAMPLE_CPU          = 0x80
-	PERF_SAMPLE_PERIOD       = 0x100
-	PERF_SAMPLE_STREAM_ID    = 0x200
-	PERF_SAMPLE_RAW          = 0x400
-	PERF_SAMPLE_BRANCH_STACK = 0x800
-	PERF_SAMPLE_REGS_USER    = 0x1000
-	PERF_SAMPLE_STACK_USER   = 0x2000
-	PERF_SAMPLE_WEIGHT       = 0x4000
-	PERF_SAMPLE_DATA_SRC     = 0x8000
-	PERF_SAMPLE_IDENTIFIER   = 0x10000
-	PERF_SAMPLE_TRANSACTION  = 0x20000
-	PERF_SAMPLE_REGS_INTR    = 0x40000
-
-	PERF_SAMPLE_BRANCH_USER       = 0x1
-	PERF_SAMPLE_BRANCH_KERNEL     = 0x2
-	PERF_SAMPLE_BRANCH_HV         = 0x4
-	PERF_SAMPLE_BRANCH_ANY        = 0x8
-	PERF_SAMPLE_BRANCH_ANY_CALL   = 0x10
-	PERF_SAMPLE_BRANCH_ANY_RETURN = 0x20
-	PERF_SAMPLE_BRANCH_IND_CALL   = 0x40
-	PERF_SAMPLE_BRANCH_ABORT_TX   = 0x80
-	PERF_SAMPLE_BRANCH_IN_TX      = 0x100
-	PERF_SAMPLE_BRANCH_NO_TX      = 0x200
-	PERF_SAMPLE_BRANCH_COND       = 0x400
-	PERF_SAMPLE_BRANCH_CALL_STACK = 0x800
-	PERF_SAMPLE_BRANCH_IND_JUMP   = 0x1000
-	PERF_SAMPLE_BRANCH_CALL       = 0x2000
-	PERF_SAMPLE_BRANCH_NO_FLAGS   = 0x4000
-	PERF_SAMPLE_BRANCH_NO_CYCLES  = 0x8000
-	PERF_SAMPLE_BRANCH_TYPE_SAVE  = 0x10000
-
-	PERF_FORMAT_TOTAL_TIME_ENABLED = 0x1
-	PERF_FORMAT_TOTAL_TIME_RUNNING = 0x2
-	PERF_FORMAT_ID                 = 0x4
-	PERF_FORMAT_GROUP              = 0x8
-
-	PERF_RECORD_MMAP            = 0x1
-	PERF_RECORD_LOST            = 0x2
-	PERF_RECORD_COMM            = 0x3
-	PERF_RECORD_EXIT            = 0x4
-	PERF_RECORD_THROTTLE        = 0x5
-	PERF_RECORD_UNTHROTTLE      = 0x6
-	PERF_RECORD_FORK            = 0x7
-	PERF_RECORD_READ            = 0x8
-	PERF_RECORD_SAMPLE          = 0x9
-	PERF_RECORD_MMAP2           = 0xa
-	PERF_RECORD_AUX             = 0xb
-	PERF_RECORD_ITRACE_START    = 0xc
-	PERF_RECORD_LOST_SAMPLES    = 0xd
-	PERF_RECORD_SWITCH          = 0xe
-	PERF_RECORD_SWITCH_CPU_WIDE = 0xf
-	PERF_RECORD_NAMESPACES      = 0x10
-
-	PERF_CONTEXT_HV     = -0x20
-	PERF_CONTEXT_KERNEL = -0x80
-	PERF_CONTEXT_USER   = -0x200
-
-	PERF_CONTEXT_GUEST        = -0x800
-	PERF_CONTEXT_GUEST_KERNEL = -0x880
-	PERF_CONTEXT_GUEST_USER   = -0xa00
-
-	PERF_FLAG_FD_NO_GROUP = 0x1
-	PERF_FLAG_FD_OUTPUT   = 0x2
-	PERF_FLAG_PID_CGROUP  = 0x4
-	PERF_FLAG_FD_CLOEXEC  = 0x8
+	PERF_COUNT_HW_MAX                     = 0xa
+	PERF_COUNT_HW_CACHE_L1D               = 0x0
+	PERF_COUNT_HW_CACHE_L1I               = 0x1
+	PERF_COUNT_HW_CACHE_LL                = 0x2
+	PERF_COUNT_HW_CACHE_DTLB              = 0x3
+	PERF_COUNT_HW_CACHE_ITLB              = 0x4
+	PERF_COUNT_HW_CACHE_BPU               = 0x5
+	PERF_COUNT_HW_CACHE_NODE              = 0x6
+	PERF_COUNT_HW_CACHE_MAX               = 0x7
+	PERF_COUNT_HW_CACHE_OP_READ           = 0x0
+	PERF_COUNT_HW_CACHE_OP_WRITE          = 0x1
+	PERF_COUNT_HW_CACHE_OP_PREFETCH       = 0x2
+	PERF_COUNT_HW_CACHE_OP_MAX            = 0x3
+	PERF_COUNT_HW_CACHE_RESULT_ACCESS     = 0x0
+	PERF_COUNT_HW_CACHE_RESULT_MISS       = 0x1
+	PERF_COUNT_HW_CACHE_RESULT_MAX        = 0x2
+	PERF_COUNT_SW_CPU_CLOCK               = 0x0
+	PERF_COUNT_SW_TASK_CLOCK              = 0x1
+	PERF_COUNT_SW_PAGE_FAULTS             = 0x2
+	PERF_COUNT_SW_CONTEXT_SWITCHES        = 0x3
+	PERF_COUNT_SW_CPU_MIGRATIONS          = 0x4
+	PERF_COUNT_SW_PAGE_FAULTS_MIN         = 0x5
+	PERF_COUNT_SW_PAGE_FAULTS_MAJ         = 0x6
+	PERF_COUNT_SW_ALIGNMENT_FAULTS        = 0x7
+	PERF_COUNT_SW_EMULATION_FAULTS        = 0x8
+	PERF_COUNT_SW_DUMMY                   = 0x9
+	PERF_COUNT_SW_BPF_OUTPUT              = 0xa
+	PERF_COUNT_SW_MAX                     = 0xb
+	PERF_SAMPLE_IP                        = 0x1
+	PERF_SAMPLE_TID                       = 0x2
+	PERF_SAMPLE_TIME                      = 0x4
+	PERF_SAMPLE_ADDR                      = 0x8
+	PERF_SAMPLE_READ                      = 0x10
+	PERF_SAMPLE_CALLCHAIN                 = 0x20
+	PERF_SAMPLE_ID                        = 0x40
+	PERF_SAMPLE_CPU                       = 0x80
+	PERF_SAMPLE_PERIOD                    = 0x100
+	PERF_SAMPLE_STREAM_ID                 = 0x200
+	PERF_SAMPLE_RAW                       = 0x400
+	PERF_SAMPLE_BRANCH_STACK              = 0x800
+	PERF_SAMPLE_REGS_USER                 = 0x1000
+	PERF_SAMPLE_STACK_USER                = 0x2000
+	PERF_SAMPLE_WEIGHT                    = 0x4000
+	PERF_SAMPLE_DATA_SRC                  = 0x8000
+	PERF_SAMPLE_IDENTIFIER                = 0x10000
+	PERF_SAMPLE_TRANSACTION               = 0x20000
+	PERF_SAMPLE_REGS_INTR                 = 0x40000
+	PERF_SAMPLE_PHYS_ADDR                 = 0x80000
+	PERF_SAMPLE_AUX                       = 0x100000
+	PERF_SAMPLE_CGROUP                    = 0x200000
+	PERF_SAMPLE_MAX                       = 0x400000
+	PERF_SAMPLE_BRANCH_USER_SHIFT         = 0x0
+	PERF_SAMPLE_BRANCH_KERNEL_SHIFT       = 0x1
+	PERF_SAMPLE_BRANCH_HV_SHIFT           = 0x2
+	PERF_SAMPLE_BRANCH_ANY_SHIFT          = 0x3
+	PERF_SAMPLE_BRANCH_ANY_CALL_SHIFT     = 0x4
+	PERF_SAMPLE_BRANCH_ANY_RETURN_SHIFT   = 0x5
+	PERF_SAMPLE_BRANCH_IND_CALL_SHIFT     = 0x6
+	PERF_SAMPLE_BRANCH_ABORT_TX_SHIFT     = 0x7
+	PERF_SAMPLE_BRANCH_IN_TX_SHIFT        = 0x8
+	PERF_SAMPLE_BRANCH_NO_TX_SHIFT        = 0x9
+	PERF_SAMPLE_BRANCH_COND_SHIFT         = 0xa
+	PERF_SAMPLE_BRANCH_CALL_STACK_SHIFT   = 0xb
+	PERF_SAMPLE_BRANCH_IND_JUMP_SHIFT     = 0xc
+	PERF_SAMPLE_BRANCH_CALL_SHIFT         = 0xd
+	PERF_SAMPLE_BRANCH_NO_FLAGS_SHIFT     = 0xe
+	PERF_SAMPLE_BRANCH_NO_CYCLES_SHIFT    = 0xf
+	PERF_SAMPLE_BRANCH_TYPE_SAVE_SHIFT    = 0x10
+	PERF_SAMPLE_BRANCH_HW_INDEX_SHIFT     = 0x11
+	PERF_SAMPLE_BRANCH_MAX_SHIFT          = 0x12
+	PERF_SAMPLE_BRANCH_USER               = 0x1
+	PERF_SAMPLE_BRANCH_KERNEL             = 0x2
+	PERF_SAMPLE_BRANCH_HV                 = 0x4
+	PERF_SAMPLE_BRANCH_ANY                = 0x8
+	PERF_SAMPLE_BRANCH_ANY_CALL           = 0x10
+	PERF_SAMPLE_BRANCH_ANY_RETURN         = 0x20
+	PERF_SAMPLE_BRANCH_IND_CALL           = 0x40
+	PERF_SAMPLE_BRANCH_ABORT_TX           = 0x80
+	PERF_SAMPLE_BRANCH_IN_TX              = 0x100
+	PERF_SAMPLE_BRANCH_NO_TX              = 0x200
+	PERF_SAMPLE_BRANCH_COND               = 0x400
+	PERF_SAMPLE_BRANCH_CALL_STACK         = 0x800
+	PERF_SAMPLE_BRANCH_IND_JUMP           = 0x1000
+	PERF_SAMPLE_BRANCH_CALL               = 0x2000
+	PERF_SAMPLE_BRANCH_NO_FLAGS           = 0x4000
+	PERF_SAMPLE_BRANCH_NO_CYCLES          = 0x8000
+	PERF_SAMPLE_BRANCH_TYPE_SAVE          = 0x10000
+	PERF_SAMPLE_BRANCH_HW_INDEX           = 0x20000
+	PERF_SAMPLE_BRANCH_MAX                = 0x40000
+	PERF_BR_UNKNOWN                       = 0x0
+	PERF_BR_COND                          = 0x1
+	PERF_BR_UNCOND                        = 0x2
+	PERF_BR_IND                           = 0x3
+	PERF_BR_CALL                          = 0x4
+	PERF_BR_IND_CALL                      = 0x5
+	PERF_BR_RET                           = 0x6
+	PERF_BR_SYSCALL                       = 0x7
+	PERF_BR_SYSRET                        = 0x8
+	PERF_BR_COND_CALL                     = 0x9
+	PERF_BR_COND_RET                      = 0xa
+	PERF_BR_MAX                           = 0xb
+	PERF_SAMPLE_REGS_ABI_NONE             = 0x0
+	PERF_SAMPLE_REGS_ABI_32               = 0x1
+	PERF_SAMPLE_REGS_ABI_64               = 0x2
+	PERF_TXN_ELISION                      = 0x1
+	PERF_TXN_TRANSACTION                  = 0x2
+	PERF_TXN_SYNC                         = 0x4
+	PERF_TXN_ASYNC                        = 0x8
+	PERF_TXN_RETRY                        = 0x10
+	PERF_TXN_CONFLICT                     = 0x20
+	PERF_TXN_CAPACITY_WRITE               = 0x40
+	PERF_TXN_CAPACITY_READ                = 0x80
+	PERF_TXN_MAX                          = 0x100
+	PERF_TXN_ABORT_MASK                   = -0x100000000
+	PERF_TXN_ABORT_SHIFT                  = 0x20
+	PERF_FORMAT_TOTAL_TIME_ENABLED        = 0x1
+	PERF_FORMAT_TOTAL_TIME_RUNNING        = 0x2
+	PERF_FORMAT_ID                        = 0x4
+	PERF_FORMAT_GROUP                     = 0x8
+	PERF_FORMAT_MAX                       = 0x10
+	PERF_IOC_FLAG_GROUP                   = 0x1
+	PERF_RECORD_MMAP                      = 0x1
+	PERF_RECORD_LOST                      = 0x2
+	PERF_RECORD_COMM                      = 0x3
+	PERF_RECORD_EXIT                      = 0x4
+	PERF_RECORD_THROTTLE                  = 0x5
+	PERF_RECORD_UNTHROTTLE                = 0x6
+	PERF_RECORD_FORK                      = 0x7
+	PERF_RECORD_READ                      = 0x8
+	PERF_RECORD_SAMPLE                    = 0x9
+	PERF_RECORD_MMAP2                     = 0xa
+	PERF_RECORD_AUX                       = 0xb
+	PERF_RECORD_ITRACE_START              = 0xc
+	PERF_RECORD_LOST_SAMPLES              = 0xd
+	PERF_RECORD_SWITCH                    = 0xe
+	PERF_RECORD_SWITCH_CPU_WIDE           = 0xf
+	PERF_RECORD_NAMESPACES                = 0x10
+	PERF_RECORD_KSYMBOL                   = 0x11
+	PERF_RECORD_BPF_EVENT                 = 0x12
+	PERF_RECORD_CGROUP                    = 0x13
+	PERF_RECORD_MAX                       = 0x14
+	PERF_RECORD_KSYMBOL_TYPE_UNKNOWN      = 0x0
+	PERF_RECORD_KSYMBOL_TYPE_BPF          = 0x1
+	PERF_RECORD_KSYMBOL_TYPE_MAX          = 0x2
+	PERF_BPF_EVENT_UNKNOWN                = 0x0
+	PERF_BPF_EVENT_PROG_LOAD              = 0x1
+	PERF_BPF_EVENT_PROG_UNLOAD            = 0x2
+	PERF_BPF_EVENT_MAX                    = 0x3
+	PERF_CONTEXT_HV                       = -0x20
+	PERF_CONTEXT_KERNEL                   = -0x80
+	PERF_CONTEXT_USER                     = -0x200
+	PERF_CONTEXT_GUEST                    = -0x800
+	PERF_CONTEXT_GUEST_KERNEL             = -0x880
+	PERF_CONTEXT_GUEST_USER               = -0xa00
+	PERF_CONTEXT_MAX                      = -0xfff
 )
 
 type TCPMD5Sig struct {