Home | History | Annotate | Download | only in allocator
      1 // Copyright 2016 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #ifdef BASE_ALLOCATOR_ALLOCATOR_SHIM_OVERRIDE_LINKER_WRAPPED_SYMBOLS_H_
      6 #error This header is meant to be included only once by allocator_shim.cc
      7 #endif
      8 #define BASE_ALLOCATOR_ALLOCATOR_SHIM_OVERRIDE_LINKER_WRAPPED_SYMBOLS_H_
      9 
     10 // This header overrides the __wrap_X symbols when using the link-time
     11 // -Wl,-wrap,malloc shim-layer approach (see README.md).
     12 // All references to malloc, free, etc. within the linker unit that gets the
     13 // -wrap linker flags (e.g., libchrome.so) will be rewritten to the
     14 // linker as references to __wrap_malloc, __wrap_free, which are defined here.
     15 
     16 #include "base/allocator/allocator_shim_internals.h"
     17 
     18 extern "C" {
     19 
     20 SHIM_ALWAYS_EXPORT void* __wrap_calloc(size_t n, size_t size) {
     21   return ShimCalloc(n, size, nullptr);
     22 }
     23 
     24 SHIM_ALWAYS_EXPORT void __wrap_free(void* ptr) {
     25   ShimFree(ptr, nullptr);
     26 }
     27 
     28 SHIM_ALWAYS_EXPORT void* __wrap_malloc(size_t size) {
     29   return ShimMalloc(size, nullptr);
     30 }
     31 
     32 SHIM_ALWAYS_EXPORT void* __wrap_memalign(size_t align, size_t size) {
     33   return ShimMemalign(align, size, nullptr);
     34 }
     35 
     36 SHIM_ALWAYS_EXPORT int __wrap_posix_memalign(void** res,
     37                                              size_t align,
     38                                              size_t size) {
     39   return ShimPosixMemalign(res, align, size);
     40 }
     41 
     42 SHIM_ALWAYS_EXPORT void* __wrap_pvalloc(size_t size) {
     43   return ShimPvalloc(size);
     44 }
     45 
     46 SHIM_ALWAYS_EXPORT void* __wrap_realloc(void* address, size_t size) {
     47   return ShimRealloc(address, size, nullptr);
     48 }
     49 
     50 SHIM_ALWAYS_EXPORT void* __wrap_valloc(size_t size) {
     51   return ShimValloc(size, nullptr);
     52 }
     53 
     54 }  // extern "C"
     55