15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#ifndef BASE_ALLOCATOR_ALLOCATOR_THUNKS_EXTENSION_H 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#define BASE_ALLOCATOR_ALLOCATOR_THUNKS_EXTENSION_H 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#include <stddef.h> // for size_t 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace base { 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace allocator { 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)namespace thunks { 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// WARNING: You probably don't want to use this file unless you are routing a 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// new allocator extension from a specific allocator implementation to base. 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// See allocator_extension.h to see the interface that base exports. 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)typedef bool (*GetAllocatorWasteSizeFunction)(size_t* size); 192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)void SetGetAllocatorWasteSizeFunction( 202a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) GetAllocatorWasteSizeFunction get_allocator_waste_size_function); 212a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)GetAllocatorWasteSizeFunction GetGetAllocatorWasteSizeFunction(); 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef void (*GetStatsFunction)(char* buffer, int buffer_length); 245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void SetGetStatsFunction(GetStatsFunction get_stats_function); 255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)GetStatsFunction GetGetStatsFunction(); 265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)typedef void (*ReleaseFreeMemoryFunction)(); 285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)void SetReleaseFreeMemoryFunction( 295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) ReleaseFreeMemoryFunction release_free_memory_function); 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)ReleaseFreeMemoryFunction GetReleaseFreeMemoryFunction(); 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace thunks 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace allocator 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)} // namespace base 355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)#endif 37