diff --git a/tools/arch/alpha/include/uapi/asm/mman-fix.h b/tools/arch/alpha/include/uapi/asm/mman-fix.h
new file mode 100644
index 0000000..f807a71
--- /dev/null
+++ b/tools/arch/alpha/include/uapi/asm/mman-fix.h
@@ -0,0 +1,38 @@
+#ifndef TOOLS_ARCH_ALPHA_UAPI_ASM_MMAN_FIX_H
+#define TOOLS_ARCH_ALPHA_UAPI_ASM_MMAN_FIX_H
+#include <sys/mman.h>
+#ifndef PROT_SEM
+#define PROT_SEM	0x8
+#endif
+#ifndef MAP_FIXED
+#define MAP_FIXED	0x100
+#endif
+#ifndef MAP_ANONYMOUS
+#define MAP_ANONYMOUS	0x10
+#endif
+#ifndef MAP_STACK
+#define MAP_STACK	0x80000
+#endif
+#ifndef MAP_HUGETLB
+#define MAP_HUGETLB	0x100000
+#endif
+#ifndef MADV_MERGEABLE
+#define MADV_MERGEABLE   12
+#endif
+#ifndef MADV_UNMERGEABLE
+#define MADV_UNMERGEABLE 13
+#endif
+#ifndef MADV_HUGEPAGE
+#define MADV_HUGEPAGE	14
+#endif
+#ifndef MADV_NOHUGEPAGE
+#define MADV_NOHUGEPAGE	15
+#endif
+#ifndef MADV_DONTDUMP
+#define MADV_DONTDUMP   16
+#endif
+#ifndef MADV_DODUMP
+#define MADV_DODUMP	17
+#endif
+#include <asm-generic/mman-fix.h>
+#endif // TOOLS_ARCH_ALPHA_UAPI_ASM_MMAN_FIX_H
diff --git a/tools/arch/arm/include/uapi/asm/mman-fix.h b/tools/arch/arm/include/uapi/asm/mman-fix.h
new file mode 100644
index 0000000..a29dae1
--- /dev/null
+++ b/tools/arch/arm/include/uapi/asm/mman-fix.h
@@ -0,0 +1,5 @@
+#ifndef TOOLS_ARCH_ARM_UAPI_ASM_MMAN_FIX_H
+#define TOOLS_ARCH_ARM_UAPI_ASM_MMAN_FIX_H
+#include <sys/mman.h>
+#include <asm-generic/mman-fix.h>
+#endif // TOOLS_ARCH_ARM_UAPI_ASM_MMAN_FIX_H
diff --git a/tools/arch/arm64/include/uapi/asm/mman-fix.h b/tools/arch/arm64/include/uapi/asm/mman-fix.h
new file mode 100644
index 0000000..e50c0d1
--- /dev/null
+++ b/tools/arch/arm64/include/uapi/asm/mman-fix.h
@@ -0,0 +1,5 @@
+#ifndef TOOLS_ARCH_ARM64_UAPI_ASM_MMAN_FIX_H
+#define TOOLS_ARCH_ARM64_UAPI_ASM_MMAN_FIX_H
+#include <sys/mman.h>
+#include <asm-generic/mman-fix.h>
+#endif // TOOLS_ARCH_ARM64_UAPI_ASM_MMAN_FIX_H
diff --git a/tools/arch/frv/include/uapi/asm/mman-fix.h b/tools/arch/frv/include/uapi/asm/mman-fix.h
new file mode 100644
index 0000000..8c2eb44
--- /dev/null
+++ b/tools/arch/frv/include/uapi/asm/mman-fix.h
@@ -0,0 +1,5 @@
+#ifndef TOOLS_ARCH_FRV_UAPI_ASM_MMAN_FIX_H
+#define TOOLS_ARCH_FRV_UAPI_ASM_MMAN_FIX_H
+#include <sys/mman.h>
+#include <asm-generic/mman-fix.h>
+#endif // TOOLS_ARCH_FRV_UAPI_ASM_MMAN_FIX_H
diff --git a/tools/arch/h8300/include/uapi/asm/mman-fix.h b/tools/arch/h8300/include/uapi/asm/mman-fix.h
new file mode 100644
index 0000000..e639fe6
--- /dev/null
+++ b/tools/arch/h8300/include/uapi/asm/mman-fix.h
@@ -0,0 +1,5 @@
+#ifndef TOOLS_ARCH_H8300_UAPI_ASM_MMAN_FIX_H
+#define TOOLS_ARCH_H8300_UAPI_ASM_MMAN_FIX_H
+#include <sys/mman.h>
+#include <asm-generic/mman-fix.h>
+#endif // TOOLS_ARCH_H8300_UAPI_ASM_MMAN_FIX_H
diff --git a/tools/arch/hexagon/include/uapi/asm/mman-fix.h b/tools/arch/hexagon/include/uapi/asm/mman-fix.h
new file mode 100644
index 0000000..dda9359
--- /dev/null
+++ b/tools/arch/hexagon/include/uapi/asm/mman-fix.h
@@ -0,0 +1,5 @@
+#ifndef TOOLS_ARCH_HEXAGON_UAPI_ASM_MMAN_FIX_H
+#define TOOLS_ARCH_HEXAGON_UAPI_ASM_MMAN_FIX_H
+#include <sys/mman.h>
+#include <asm-generic/mman-fix.h>
+#endif // TOOLS_ARCH_HEXAGON_UAPI_ASM_MMAN_FIX_H
diff --git a/tools/arch/ia64/include/uapi/asm/mman-fix.h b/tools/arch/ia64/include/uapi/asm/mman-fix.h
new file mode 100644
index 0000000..1e98f36
--- /dev/null
+++ b/tools/arch/ia64/include/uapi/asm/mman-fix.h
@@ -0,0 +1,5 @@
+#ifndef TOOLS_ARCH_IA64_UAPI_ASM_MMAN_FIX_H
+#define TOOLS_ARCH_IA64_UAPI_ASM_MMAN_FIX_H
+#include <sys/mman.h>
+#include <asm-generic/mman-fix.h>
+#endif // TOOLS_ARCH_IA64_UAPI_ASM_MMAN_FIX_H
diff --git a/tools/arch/m32r/include/uapi/asm/mman-fix.h b/tools/arch/m32r/include/uapi/asm/mman-fix.h
new file mode 100644
index 0000000..74aa94d
--- /dev/null
+++ b/tools/arch/m32r/include/uapi/asm/mman-fix.h
@@ -0,0 +1,5 @@
+#ifndef TOOLS_ARCH_M32R_UAPI_ASM_MMAN_FIX_H
+#define TOOLS_ARCH_M32R_UAPI_ASM_MMAN_FIX_H
+#include <sys/mman.h>
+#include <asm-generic/mman-fix.h>
+#endif // TOOLS_ARCH_M32R_UAPI_ASM_MMAN_FIX_H
diff --git a/tools/arch/microblaze/include/uapi/asm/mman-fix.h b/tools/arch/microblaze/include/uapi/asm/mman-fix.h
new file mode 100644
index 0000000..90b7a53
--- /dev/null
+++ b/tools/arch/microblaze/include/uapi/asm/mman-fix.h
@@ -0,0 +1,5 @@
+#ifndef TOOLS_ARCH_MICROBLAZE_UAPI_ASM_MMAN_FIX_H
+#define TOOLS_ARCH_MICROBLAZE_UAPI_ASM_MMAN_FIX_H
+#include <sys/mman.h>
+#include <asm-generic/mman-fix.h>
+#endif // TOOLS_ARCH_MICROBLAZE_UAPI_ASM_MMAN_FIX_H
diff --git a/tools/arch/mips/include/uapi/asm/mman-fix.h b/tools/arch/mips/include/uapi/asm/mman-fix.h
new file mode 100644
index 0000000..ef58cd7
--- /dev/null
+++ b/tools/arch/mips/include/uapi/asm/mman-fix.h
@@ -0,0 +1,41 @@
+#ifndef TOOLS_ARCH_MIPS_UAPI_ASM_MMAN_FIX_H
+#define TOOLS_ARCH_MIPS_UAPI_ASM_MMAN_FIX_H
+#include <sys/mman.h>
+#ifndef PROT_SEM
+#define PROT_SEM	0x10
+#endif
+#ifndef MAP_FIXED
+#define MAP_FIXED	0x010
+#endif
+#ifndef MAP_ANONYMOUS
+#define MAP_ANONYMOUS	0x0800
+#endif
+#ifndef MAP_STACK
+#define MAP_STACK	0x40000
+#endif
+#ifndef MAP_HUGETLB
+#define MAP_HUGETLB	0x80000
+#endif
+#ifndef MADV_HWPOISON
+#define MADV_HWPOISON	 100
+#endif
+#ifndef MADV_MERGEABLE
+#define MADV_MERGEABLE	 12
+#endif
+#ifndef MADV_UNMERGEABLE
+#define MADV_UNMERGEABLE 13
+#endif
+#ifndef MADV_HUGEPAGE
+#define MADV_HUGEPAGE	14
+#endif
+#ifndef MADV_NOHUGEPAGE
+#define MADV_NOHUGEPAGE 15
+#endif
+#ifndef MADV_DONTDUMP
+#define MADV_DONTDUMP	16
+#endif
+#ifndef MADV_DODUMP
+#define MADV_DODUMP	17
+#endif
+#include <asm-generic/mman-fix.h>
+#endif // TOOLS_ARCH_MIPS_UAPI_ASM_MMAN_FIX_H
diff --git a/tools/arch/mn10300/include/uapi/asm/mman-fix.h b/tools/arch/mn10300/include/uapi/asm/mman-fix.h
new file mode 100644
index 0000000..86a2903
--- /dev/null
+++ b/tools/arch/mn10300/include/uapi/asm/mman-fix.h
@@ -0,0 +1,5 @@
+#ifndef TOOLS_ARCH_MN10300_UAPI_ASM_MMAN_FIX_H
+#define TOOLS_ARCH_MN10300_UAPI_ASM_MMAN_FIX_H
+#include <sys/mman.h>
+#include <asm-generic/mman-fix.h>
+#endif // TOOLS_ARCH_MN10300_UAPI_ASM_MMAN_FIX_H
diff --git a/tools/arch/parisc/include/uapi/asm/mman-fix.h b/tools/arch/parisc/include/uapi/asm/mman-fix.h
new file mode 100644
index 0000000..c157a03
--- /dev/null
+++ b/tools/arch/parisc/include/uapi/asm/mman-fix.h
@@ -0,0 +1,38 @@
+#ifndef TOOLS_ARCH_PARISC_UAPI_ASM_MMAN_FIX_H
+#define TOOLS_ARCH_PARISC_UAPI_ASM_MMAN_FIX_H
+#include <sys/mman.h>
+#ifndef PROT_SEM
+#define PROT_SEM	0x8
+#endif
+#ifndef MAP_FIXED
+#define MAP_FIXED	0x04
+#endif
+#ifndef MAP_ANONYMOUS
+#define MAP_ANONYMOUS	0x10
+#endif
+#ifndef MAP_STACK
+#define MAP_STACK	0x40000
+#endif
+#ifndef MAP_HUGETLB
+#define MAP_HUGETLB	0x80000
+#endif
+#ifndef MADV_MERGEABLE
+#define MADV_MERGEABLE   65
+#endif
+#ifndef MADV_UNMERGEABLE
+#define MADV_UNMERGEABLE 66
+#endif
+#ifndef MADV_HUGEPAGE
+#define MADV_HUGEPAGE	67
+#endif
+#ifndef MADV_NOHUGEPAGE
+#define MADV_NOHUGEPAGE	68
+#endif
+#ifndef MADV_DONTDUMP
+#define MADV_DONTDUMP   69
+#endif
+#ifndef MADV_DODUMP
+#define MADV_DODUMP	70
+#endif
+#include <asm-generic/mman-fix.h>
+#endif // TOOLS_ARCH_PARISC_UAPI_ASM_MMAN_FIX_H
diff --git a/tools/arch/powerpc/include/uapi/asm/mman-fix.h b/tools/arch/powerpc/include/uapi/asm/mman-fix.h
new file mode 100644
index 0000000..4b552fa
--- /dev/null
+++ b/tools/arch/powerpc/include/uapi/asm/mman-fix.h
@@ -0,0 +1,11 @@
+#ifndef TOOLS_ARCH_POWERPC_UAPI_ASM_MMAN_FIX_H
+#define TOOLS_ARCH_POWERPC_UAPI_ASM_MMAN_FIX_H
+#include <sys/mman.h>
+#ifndef MAP_STACK
+#define MAP_STACK	0x20000
+#endif
+#ifndef MAP_HUGETLB
+#define MAP_HUGETLB	0x40000
+#endif
+#include <asm-generic/mman-fix.h>
+#endif // TOOLS_ARCH_POWERPC_UAPI_ASM_MMAN_FIX_H
diff --git a/tools/arch/s390/include/uapi/asm/mman-fix.h b/tools/arch/s390/include/uapi/asm/mman-fix.h
new file mode 100644
index 0000000..d7755dd
--- /dev/null
+++ b/tools/arch/s390/include/uapi/asm/mman-fix.h
@@ -0,0 +1,5 @@
+#ifndef TOOLS_ARCH_S390_UAPI_ASM_MMAN_FIX_H
+#define TOOLS_ARCH_S390_UAPI_ASM_MMAN_FIX_H
+#include <sys/mman.h>
+#include <asm-generic/mman-fix.h>
+#endif // TOOLS_ARCH_S390_UAPI_ASM_MMAN_FIX_H
diff --git a/tools/arch/score/include/uapi/asm/mman-fix.h b/tools/arch/score/include/uapi/asm/mman-fix.h
new file mode 100644
index 0000000..97ad192
--- /dev/null
+++ b/tools/arch/score/include/uapi/asm/mman-fix.h
@@ -0,0 +1,5 @@
+#ifndef TOOLS_ARCH_SCORE_UAPI_ASM_MMAN_FIX_H
+#define TOOLS_ARCH_SCORE_UAPI_ASM_MMAN_FIX_H
+#include <sys/mman.h>
+#include <asm-generic/mman-fix.h>
+#endif // TOOLS_ARCH_SCORE_UAPI_ASM_MMAN_FIX_H
diff --git a/tools/arch/sh/include/uapi/asm/mman-fix.h b/tools/arch/sh/include/uapi/asm/mman-fix.h
new file mode 100644
index 0000000..d17bca8
--- /dev/null
+++ b/tools/arch/sh/include/uapi/asm/mman-fix.h
@@ -0,0 +1,5 @@
+#ifndef TOOLS_ARCH_SH_UAPI_ASM_MMAN_FIX_H
+#define TOOLS_ARCH_SH_UAPI_ASM_MMAN_FIX_H
+#include <sys/mman.h>
+#include <asm-generic/mman-fix.h>
+#endif // TOOLS_ARCH_SH_UAPI_ASM_MMAN_FIX_H
diff --git a/tools/arch/sparc/include/uapi/asm/mman-fix.h b/tools/arch/sparc/include/uapi/asm/mman-fix.h
new file mode 100644
index 0000000..3ac4ba0
--- /dev/null
+++ b/tools/arch/sparc/include/uapi/asm/mman-fix.h
@@ -0,0 +1,11 @@
+#ifndef TOOLS_ARCH_SPARC_UAPI_ASM_MMAN_FIX_H
+#define TOOLS_ARCH_SPARC_UAPI_ASM_MMAN_FIX_H
+#include <sys/mman.h>
+#ifndef MAP_STACK
+#define MAP_STACK	0x20000
+#endif
+#ifndef MAP_HUGETLB
+#define MAP_HUGETLB	0x40000
+#endif
+#include <asm-generic/mman-fix.h>
+#endif // TOOLS_ARCH_SPARC_UAPI_ASM_MMAN_FIX_H
diff --git a/tools/arch/tile/include/uapi/asm/mman-fix.h b/tools/arch/tile/include/uapi/asm/mman-fix.h
new file mode 100644
index 0000000..105a3b0e
--- /dev/null
+++ b/tools/arch/tile/include/uapi/asm/mman-fix.h
@@ -0,0 +1,11 @@
+#ifndef TOOLS_ARCH_TILE_UAPI_ASM_MMAN_FIX_H
+#define TOOLS_ARCH_TILE_UAPI_ASM_MMAN_FIX_H
+#include <sys/mman.h>
+#ifndef MAP_STACK
+#define MAP_STACK	MAP_GROWSDOWN
+#endif
+#ifndef MAP_HUGETLB
+#define MAP_HUGETLB	0x4000
+#endif
+#include <asm-generic/mman-fix.h>
+#endif // TOOLS_ARCH_TILE_UAPI_ASM_MMAN_FIX_H
diff --git a/tools/arch/x86/include/uapi/asm/mman-fix.h b/tools/arch/x86/include/uapi/asm/mman-fix.h
new file mode 100644
index 0000000..0cda2bf
--- /dev/null
+++ b/tools/arch/x86/include/uapi/asm/mman-fix.h
@@ -0,0 +1,8 @@
+#ifndef TOOLS_ARCH_X86_UAPI_ASM_MMAN_FIX_H
+#define TOOLS_ARCH_X86_UAPI_ASM_MMAN_FIX_H
+#include <sys/mman.h>
+#ifndef MAP_32BIT
+#define MAP_32BIT	0x40
+#endif
+#include <asm-generic/mman-fix.h>
+#endif // TOOLS_ARCH_X86_UAPI_ASM_MMAN_FIX_H
diff --git a/tools/arch/xtensa/include/uapi/asm/mman-fix.h b/tools/arch/xtensa/include/uapi/asm/mman-fix.h
new file mode 100644
index 0000000..9ec9051
--- /dev/null
+++ b/tools/arch/xtensa/include/uapi/asm/mman-fix.h
@@ -0,0 +1,38 @@
+#ifndef TOOLS_ARCH_XTENSA_UAPI_ASM_MMAN_FIX_H
+#define TOOLS_ARCH_XTENSA_UAPI_ASM_MMAN_FIX_H
+#include <sys/mman.h>
+#ifndef PROT_SEM
+#define PROT_SEM	0x10
+#endif
+#ifndef MAP_FIXED
+#define MAP_FIXED	0x010
+#endif
+#ifndef MAP_ANONYMOUS
+#define MAP_ANONYMOUS	0x0800
+#endif
+#ifndef MAP_STACK
+#define MAP_STACK	0x40000
+#endif
+#ifndef MAP_HUGETLB
+#define MAP_HUGETLB	0x80000
+#endif
+#ifndef MADV_MERGEABLE
+#define MADV_MERGEABLE   12
+#endif
+#ifndef MADV_UNMERGEABLE
+#define MADV_UNMERGEABLE 13
+#endif
+#ifndef MADV_HUGEPAGE
+#define MADV_HUGEPAGE	14
+#endif
+#ifndef MADV_NOHUGEPAGE
+#define MADV_NOHUGEPAGE	15
+#endif
+#ifndef MADV_DONTDUMP
+#define MADV_DONTDUMP   16
+#endif
+#ifndef MADV_DODUMP
+#define MADV_DODUMP	17
+#endif
+#include <asm-generic/mman-fix.h>
+#endif // TOOLS_ARCH_XTENSA_UAPI_ASM_MMAN_FIX_H
diff --git a/tools/include/uapi/asm-generic/mman-fix.h b/tools/include/uapi/asm-generic/mman-fix.h
new file mode 100644
index 0000000..f47eb4c
--- /dev/null
+++ b/tools/include/uapi/asm-generic/mman-fix.h
@@ -0,0 +1,46 @@
+#ifndef __TOOLS_UAPI_ASM_MMAN_FIX_H
+#define __TOOLS_UAPI_ASM_MMAN_FIX_H
+#include <sys/mman.h>
+#ifndef PROT_SEM
+#define PROT_SEM	0x8
+#endif
+#ifndef MAP_FIXED
+#define MAP_FIXED	0x10
+#endif
+#ifndef MAP_ANONYMOUS
+#define MAP_ANONYMOUS	0x20
+#endif
+#ifndef MADV_HWPOISON
+#define MADV_HWPOISON	100
+#endif
+#ifndef MADV_SOFT_OFFLINE
+#define MADV_SOFT_OFFLINE 101
+#endif
+#ifndef MADV_MERGEABLE
+#define MADV_MERGEABLE   12
+#endif
+#ifndef MADV_UNMERGEABLE
+#define MADV_UNMERGEABLE 13
+#endif
+#ifndef MADV_HUGEPAGE
+#define MADV_HUGEPAGE	14
+#endif
+#ifndef MADV_NOHUGEPAGE
+#define MADV_NOHUGEPAGE	15
+#endif
+#ifndef MADV_DONTDUMP
+#define MADV_DONTDUMP   16
+#endif
+#ifndef MADV_DODUMP
+#define MADV_DODUMP	17
+#endif
+#ifndef MAP_STACK
+#define MAP_STACK	0x20000
+#endif
+#ifndef MAP_HUGETLB
+#define MAP_HUGETLB	0x40000
+#endif
+#ifndef MAP_UNINITIALIZED
+#define MAP_UNINITIALIZED 0x4000000
+#endif
+#endif // __TOOLS_UAPI_ASM_MMAN_FIX_H
diff --git a/tools/perf/MANIFEST b/tools/perf/MANIFEST
index ff200c6..56ac24f 100644
--- a/tools/perf/MANIFEST
+++ b/tools/perf/MANIFEST
@@ -66,6 +66,7 @@ tools/include/linux/hash.h
 tools/include/linux/kernel.h
 tools/include/linux/list.h
 tools/include/linux/log2.h
+tools/include/uapi/asm-generic/mman-fix.h
 tools/include/uapi/linux/bpf.h
 tools/include/uapi/linux/bpf_common.h
 tools/include/uapi/linux/hw_breakpoint.h
@@ -80,3 +81,4 @@ tools/include/linux/err.h
 tools/include/linux/bitmap.h
 tools/include/linux/time64.h
 tools/arch/*/include/uapi/asm/perf_regs.h
+tools/arch/*/include/uapi/asm/mman-fix.h
