| Christopher Ferris | 72bbd42 | 2014-05-08 11:14:03 -0700 | [diff] [blame] | 1 | /* | 
|  | 2 | * Copyright (C) 2012 The Android Open Source Project | 
|  | 3 | * | 
|  | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); | 
|  | 5 | * you may not use this file except in compliance with the License. | 
|  | 6 | * You may obtain a copy of the License at | 
|  | 7 | * | 
|  | 8 | *      http://www.apache.org/licenses/LICENSE-2.0 | 
|  | 9 | * | 
|  | 10 | * Unless required by applicable law or agreed to in writing, software | 
|  | 11 | * distributed under the License is distributed on an "AS IS" BASIS, | 
|  | 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
|  | 13 | * See the License for the specific language governing permissions and | 
|  | 14 | * limitations under the License. | 
|  | 15 | */ | 
|  | 16 |  | 
| Elliott Hughes | cbc80ba | 2018-02-13 14:26:29 -0800 | [diff] [blame] | 17 | #pragma once | 
| Christopher Ferris | 72bbd42 | 2014-05-08 11:14:03 -0700 | [diff] [blame] | 18 |  | 
|  | 19 | #include <jemalloc/jemalloc.h> | 
| Elliott Hughes | cb0e703 | 2015-01-30 20:33:31 -0800 | [diff] [blame] | 20 | #include <malloc.h>  // For struct mallinfo. | 
| Christopher Ferris | 72bbd42 | 2014-05-08 11:14:03 -0700 | [diff] [blame] | 21 |  | 
|  | 22 | // Need to wrap memalign since je_memalign fails on non-power of 2 alignments. | 
|  | 23 | #define je_memalign je_memalign_round_up_boundary | 
|  | 24 |  | 
| Christopher Ferris | a22f5d5 | 2019-03-01 16:40:59 -0800 | [diff] [blame] | 25 | // Need to wrap aligned_alloc since je_aligned_alloc does not enforce | 
|  | 26 | // that size is a multiple of alignment. | 
|  | 27 | #define je_aligned_alloc je_aligned_alloc_wrapper | 
|  | 28 |  | 
| Christopher Ferris | 72bbd42 | 2014-05-08 11:14:03 -0700 | [diff] [blame] | 29 | __BEGIN_DECLS | 
|  | 30 |  | 
| Christopher Ferris | a22f5d5 | 2019-03-01 16:40:59 -0800 | [diff] [blame] | 31 | void* je_aligned_alloc_wrapper(size_t, size_t); | 
| Colin Cross | 869691c | 2016-01-29 12:48:18 -0800 | [diff] [blame] | 32 | int je_iterate(uintptr_t, size_t, void (*)(uintptr_t, size_t, void*), void*); | 
| Yi Kong | 7b50f7d | 2019-07-23 15:01:39 -0700 | [diff] [blame] | 33 | int je_mallctl(const char *name, void *oldp, size_t *oldlenp, void *newp, size_t newlen) __attribute__((nothrow)); | 
| Christopher Ferris | a22f5d5 | 2019-03-01 16:40:59 -0800 | [diff] [blame] | 34 | struct mallinfo je_mallinfo(); | 
| Colin Cross | 869691c | 2016-01-29 12:48:18 -0800 | [diff] [blame] | 35 | void je_malloc_disable(); | 
|  | 36 | void je_malloc_enable(); | 
| Christopher Ferris | 6c619a0 | 2019-03-01 17:59:51 -0800 | [diff] [blame] | 37 | int je_malloc_info(int options, FILE* fp); | 
| Christopher Ferris | a22f5d5 | 2019-03-01 16:40:59 -0800 | [diff] [blame] | 38 | int je_mallopt(int, int); | 
| Christopher Ferris | 72bbd42 | 2014-05-08 11:14:03 -0700 | [diff] [blame] | 39 | void* je_memalign_round_up_boundary(size_t, size_t); | 
|  | 40 | void* je_pvalloc(size_t); | 
|  | 41 |  | 
|  | 42 | __END_DECLS |