From d7453860a6b06e7d4a960c20792ce6f0b6cc5f3a Mon Sep 17 00:00:00 2001 From: Elliott Hughes Date: Thu, 17 Jul 2014 14:26:33 -0700 Subject: [PATCH] Remove non-standard prctl constants from . Also remove __bionic_name_mem which has exactly one caller, and is only ever expected to be used in this one place. Change-Id: I833744f91e887639f5b2d1269f966ee9032af207 --- libc/Android.mk | 1 - libc/bionic/__bionic_name_mem.cpp | 50 --------------------------------------- libc/bionic/dlmalloc.c | 9 +++++-- libc/include/sys/prctl.h | 13 ---------- libc/private/bionic_name_mem.h | 41 -------------------------------- 5 files changed, 7 insertions(+), 107 deletions(-) delete mode 100644 libc/bionic/__bionic_name_mem.cpp delete mode 100644 libc/private/bionic_name_mem.h diff --git a/libc/Android.mk b/libc/Android.mk index 0485d72b8..0adaff7d5 100644 --- a/libc/Android.mk +++ b/libc/Android.mk @@ -96,7 +96,6 @@ libc_bionic_src_files := \ bionic/access.cpp \ bionic/assert.cpp \ bionic/atof.cpp \ - bionic/__bionic_name_mem.cpp \ bionic/bionic_time_conversions.cpp \ bionic/brk.cpp \ bionic/c16rtomb.cpp \ diff --git a/libc/bionic/__bionic_name_mem.cpp b/libc/bionic/__bionic_name_mem.cpp deleted file mode 100644 index 72a1d1eab..000000000 --- a/libc/bionic/__bionic_name_mem.cpp +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright (C) 2013 The Android Open Source Project - * All rights reserved. - * - * 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. - * - * 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. - */ - -#include "private/bionic_name_mem.h" - -#include - -// Local definitions of custom prctl arguments to set a vma name in some kernels. -#define BIONIC_PR_SET_VMA 0x53564d41 -#define BIONIC_PR_SET_VMA_ANON_NAME 0 - -// Names a region of memory. The name is expected to show up in /proc/pid/maps -// and /proc/pid/smaps. There is no guarantee that it will work, and if it -// does work it is likely to only work on memory that was allocated with -// mmap(MAP_ANONYMOUS), and only on regions that are page aligned. name should -// be a pointer to a string that is valid for as long as the memory is mapped, -// preferably a compile-time constant string. -// -// Returns -1 on error and sets errno. If it returns an error naming page -// aligned anonymous memory the kernel doesn't support naming, and an alternate -// method of naming memory should be used (like ashmem). - -int __bionic_name_mem(void* addr, size_t len, const char* name) { - return prctl(BIONIC_PR_SET_VMA, BIONIC_PR_SET_VMA_ANON_NAME, addr, len, name); -} diff --git a/libc/bionic/dlmalloc.c b/libc/bionic/dlmalloc.c index 2d67392c0..7ecca1d3e 100644 --- a/libc/bionic/dlmalloc.c +++ b/libc/bionic/dlmalloc.c @@ -26,11 +26,16 @@ static void __bionic_heap_usage_error(const char* function, void* address); #define CORRUPTION_ERROR_ACTION(m) __bionic_heap_corruption_error(__FUNCTION__) #define USAGE_ERROR_ACTION(m,p) __bionic_heap_usage_error(__FUNCTION__, p) -/* Bionic named anonymous memory declarations */ +// Bionic named anonymous memory declarations. static void* named_anonymous_mmap(size_t length); #define MMAP(s) named_anonymous_mmap(s) #define DIRECT_MMAP(s) named_anonymous_mmap(s) +// Local definitions of custom prctl arguments to set a vma name in Android kernels. +#include +#define PR_SET_VMA 0x53564d41 +#define PR_SET_VMA_ANON_NAME 0 + // Ugly inclusion of C file so that bionic specific #defines configure dlmalloc. #include "../upstream-dlmalloc/malloc.c" @@ -51,6 +56,6 @@ static void* named_anonymous_mmap(size_t length) { if (map == MAP_FAILED) { return map; } - __bionic_name_mem(map, length, "libc_malloc"); + prctl(BIONIC_PR_SET_VMA, BIONIC_PR_SET_VMA_ANON_NAME, map, length, "libc_malloc"); return map; } diff --git a/libc/include/sys/prctl.h b/libc/include/sys/prctl.h index 391c22a77..f66f6f544 100644 --- a/libc/include/sys/prctl.h +++ b/libc/include/sys/prctl.h @@ -38,18 +38,6 @@ #error PR_SET_TIMERSLACK_PID defined twice #endif -#if !defined(PR_SET_VMA) -#define PR_SET_VMA 0x53564d41 -#else -#error PR_SET_VMA defined twice -#endif - -#if !defined(PR_SET_VMA_ANON_NAME) -#define PR_SET_VMA_ANON_NAME 0 -#else -#error PR_SET_VMA_ANON_NAME defined twice -#endif - __BEGIN_DECLS /* IMPORTANT NOTE: This function is declared as taking a variable number @@ -63,4 +51,3 @@ extern int prctl(int option, ...); __END_DECLS #endif /* _SYS_PRCTL_H */ - diff --git a/libc/private/bionic_name_mem.h b/libc/private/bionic_name_mem.h deleted file mode 100644 index 1c7664efb..000000000 --- a/libc/private/bionic_name_mem.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright (C) 2013 The Android Open Source Project - * All rights reserved. - * - * 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. - * - * 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. - */ - -#ifndef _BIONIC_NAME_MEM_H -#define _BIONIC_NAME_MEM_H - -#include -#include - -__BEGIN_DECLS - -__LIBC_HIDDEN__ int __bionic_name_mem(void* addr, size_t len, const char* name); - -__END_DECLS - -#endif -- 2.11.0