tools include: Add uapi mman.h for each architecture
authorWang Nan <wangnan0@huawei.com>
Mon, 12 Sep 2016 12:54:29 +0000 (12:54 +0000)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Tue, 13 Sep 2016 18:26:08 +0000 (15:26 -0300)
commitf3539c12d8196ce0a1993364d30b3a18908470d1
tree418e70748c740f8693ef6255f2611785a175c7fb
parentd9ea48bc4e7cc297ca1073fa3f90ed80d964b7b4
tools include: Add uapi mman.h for each architecture

Some mmap related macros have different values for different
architectures. This patch introduces uapi mman.h for each
architectures.

Three headers are cloned from kernel include to tools/include:

 tools/include/uapi/asm-generic/mman-common.h
 tools/include/uapi/asm-generic/mman.h
 tools/include/uapi/linux/mman.h

The main part of this patch is generated by following script:

 macros=`cat $0 | awk 'V==1 {print}; /^# start macro list/ {V=1}'`
 for arch in `ls tools/arch`
 do
   [ -d tools/arch/$arch/include/uapi/asm ] || mkdir -p tools/arch/$arch/include/uapi/asm
   src=arch/$arch/include/uapi/asm/mman.h
   target=tools/arch/$arch/include/uapi/asm/mman.h
   guard="TOOLS_ARCH_"`echo $arch | awk '{print toupper($0)}'`_UAPI_ASM_MMAN_FIX_H
   echo '#ifndef '$guard > $target
   echo '#define '$guard >> $target

   [ -f $src ] &&
   for m in $macros
   do
     if grep '#define[ \t]*'$m $src > /dev/null 2>&1
     then
       grep -h '#define[ \t]*'$m $src | sed 's/[ \t]*\/\*.*$//g' >> $target
     fi
   done

   if [ -f $src ]
   then
      grep '#include <asm-generic' $src >> $target
   else
      echo "#include <asm-generic/mman.h>" >> $target
   fi
   echo '#endif' >> $target
   echo "$target"
 done

 exit 0
 # Following macros are extracted from:
 # tools/perf/trace/beauty/mmap.c
 #
 # start macro list
 MADV_DODUMP
 MADV_DOFORK
 MADV_DONTDUMP
 MADV_DONTFORK
 MADV_DONTNEED
 MADV_HUGEPAGE
 MADV_HWPOISON
 MADV_MERGEABLE
 MADV_NOHUGEPAGE
 MADV_NORMAL
 MADV_RANDOM
 MADV_REMOVE
 MADV_SEQUENTIAL
 MADV_SOFT_OFFLINE
 MADV_UNMERGEABLE
 MADV_WILLNEED
 MAP_32BIT
 MAP_ANONYMOUS
 MAP_DENYWRITE
 MAP_EXECUTABLE
 MAP_FILE
 MAP_FIXED
 MAP_GROWSDOWN
 MAP_HUGETLB
 MAP_LOCKED
 MAP_NONBLOCK
 MAP_NORESERVE
 MAP_POPULATE
 MAP_PRIVATE
 MAP_SHARED
 MAP_STACK
 MAP_UNINITIALIZED
 MREMAP_FIXED
 MREMAP_MAYMOVE
 PROT_EXEC
 PROT_GROWSDOWN
 PROT_GROWSUP
 PROT_NONE
 PROT_READ
 PROT_SEM
 PROT_WRITE

Signed-off-by: Wang Nan <wangnan0@huawei.com>
Cc: Zefan Li <lizefan@huawei.com>
Cc: pi3orama@163.com
Link: http://lkml.kernel.org/r/1473684871-209320-2-git-send-email-wangnan0@huawei.com
[ Added new files to tools/perf/MANIFEST to fix the detached tarball build, add mman.h for ARC ]
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
25 files changed:
tools/arch/alpha/include/uapi/asm/mman.h [new file with mode: 0644]
tools/arch/arc/include/uapi/asm/mman.h [new file with mode: 0644]
tools/arch/arm/include/uapi/asm/mman.h [new file with mode: 0644]
tools/arch/arm64/include/uapi/asm/mman.h [new file with mode: 0644]
tools/arch/frv/include/uapi/asm/mman.h [new file with mode: 0644]
tools/arch/h8300/include/uapi/asm/mman.h [new file with mode: 0644]
tools/arch/hexagon/include/uapi/asm/mman.h [new file with mode: 0644]
tools/arch/ia64/include/uapi/asm/mman.h [new file with mode: 0644]
tools/arch/m32r/include/uapi/asm/mman.h [new file with mode: 0644]
tools/arch/microblaze/include/uapi/asm/mman.h [new file with mode: 0644]
tools/arch/mips/include/uapi/asm/mman.h [new file with mode: 0644]
tools/arch/mn10300/include/uapi/asm/mman.h [new file with mode: 0644]
tools/arch/parisc/include/uapi/asm/mman.h [new file with mode: 0644]
tools/arch/powerpc/include/uapi/asm/mman.h [new file with mode: 0644]
tools/arch/s390/include/uapi/asm/mman.h [new file with mode: 0644]
tools/arch/score/include/uapi/asm/mman.h [new file with mode: 0644]
tools/arch/sh/include/uapi/asm/mman.h [new file with mode: 0644]
tools/arch/sparc/include/uapi/asm/mman.h [new file with mode: 0644]
tools/arch/tile/include/uapi/asm/mman.h [new file with mode: 0644]
tools/arch/x86/include/uapi/asm/mman.h [new file with mode: 0644]
tools/arch/xtensa/include/uapi/asm/mman.h [new file with mode: 0644]
tools/include/uapi/asm-generic/mman-common.h [new file with mode: 0644]
tools/include/uapi/asm-generic/mman.h [new file with mode: 0644]
tools/include/uapi/linux/mman.h [new file with mode: 0644]
tools/perf/MANIFEST