#include <unistd.h>
#include <mylimits.h>
#include "omConfig.h"
#include "omDefaultConfig.h"
#include "omMalloc.h"
#include "omalloc.h"
#include <string.h>
Go to the source code of this file.
◆ _omSizeOfLargeAddr
#define _omSizeOfLargeAddr |
( |
|
addr | ) |
(*((size_t*) ((char*) addr - SIZEOF_STRICT_ALIGNMENT))) |
◆ OM_ALIGN_PAGE
#define OM_ALIGN_PAGE |
( |
|
addr | ) |
( ((long)addr + (SIZEOF_SYSTEM_PAGE -1)) & ~(SIZEOF_SYSTEM_PAGE - 1)) |
◆ OM_ALLOC_SYSTEM_C
#define OM_ALLOC_SYSTEM_C |
◆ OM_FREE_TO_SYSTEM
◆ OM_MALLOC_FROM_SYSTEM
◆ OM_REALLOC_FROM_SYSTEM
◆ OM_VALLOC_FROM_SYSTEM
◆ OM_VFREE_TO_SYSTEM
◆ _omVallocFromSystem()
void* _omVallocFromSystem |
( |
size_t |
size, |
|
|
int |
fail |
|
) |
| |
Definition at line 298 of file omAllocSystem.c.
303 OM_MEMORY_LOW_HOOK();
307 if (fail)
return NULL;
310 OM_OUT_OF_MEMORY_HOOK();
330 #if defined(OM_HAVE_VALLOC_MMAP) && defined(OM_MALLOC_MAX_BYTES_SYSTEM) 331 if (
om_Info.MaxBytesFromValloc + OM_MALLOC_MAX_BYTES_SYSTEM >
om_Info.MaxBytesSystem)
332 om_Info.MaxBytesSystem =
om_Info.MaxBytesFromValloc + OM_MALLOC_MAX_BYTES_SYSTEM;
334 #if defined(HAVE_SBRK) && !defined(OM_HAVE_VALLOC_MMAP) && !defined(OM_MALLOC_MAX_BYTES_SBRK) 340 +
om_Info.CurrentBytesFromValloc);
344 OM_VALLOC_HOOK(
size);
unsigned long om_SbrkInit
#define OM_VALLOC_FROM_SYSTEM
#define omIsAddrPageAligned(addr)
◆ omAlloc0Large()
void* omAlloc0Large |
( |
size_t |
size | ) |
|
Definition at line 68 of file omAllocSystem.c.
72 memset(addr, 0,
size);
size_t omSizeOfLargeAddr(void *addr)
void * omAllocLarge(size_t size)
◆ omAllocFromSystem()
void* omAllocFromSystem |
( |
size_t |
size | ) |
|
Definition at line 180 of file omAllocSystem.c.
187 OM_MEMORY_LOW_HOOK();
191 OM_OUT_OF_MEMORY_HOOK();
207 #if defined(OM_HAVE_VALLOC_MMAP) && defined(OM_MALLOC_MAX_BYTES_SYSTEM) 208 if (
om_Info.CurrentBytesFromValloc + OM_MALLOC_MAX_BYTES_SYSTEM >
om_Info.MaxBytesSystem)
209 om_Info.MaxBytesSystem =
om_Info.CurrentBytesFromValloc + OM_MALLOC_MAX_BYTES_SYSTEM;
211 #if defined(HAVE_SBRK) && !defined(OM_MALLOC_MAX_BYTES_SBRK) 214 #ifndef OM_HAVE_VALLOC_MMAP
215 +
om_Info.CurrentBytesFromValloc
223 OM_MALLOC_HOOK(
size);
#define OM_MALLOC_FROM_SYSTEM
unsigned long om_SbrkInit
◆ omAllocLarge()
void* omAllocLarge |
( |
size_t |
size | ) |
|
Definition at line 34 of file omAllocSystem.c.
39 *((
size_t*) addr) =
size;
40 return (
void *)(addr + SIZEOF_STRICT_ALIGNMENT);
void * omAllocFromSystem(size_t size)
◆ omEmulateValloc()
void* omEmulateValloc |
( |
size_t |
size | ) |
|
Definition at line 145 of file omAllocSystem.c.
148 size_t padding = SIZEOF_VOIDP;
154 if ((
OM_ALIGN_PAGE(addr) + SIZEOF_VOIDP) - (
long) addr <= padding)
157 *((
void**) ((
void*) ret_addr +
size)) = addr;
163 padding = padding << 1;
#define OM_MALLOC_FROM_SYSTEM
#define OM_ALIGN_PAGE(addr)
#define OM_FREE_TO_SYSTEM
◆ omEmulateVfree()
void omEmulateVfree |
( |
void * |
addr, |
|
|
size_t |
size |
|
) |
| |
◆ omFreeLarge()
void omFreeLarge |
( |
void * |
addr | ) |
|
Definition at line 59 of file omAllocSystem.c.
61 char* _addr = (
char *)addr - SIZEOF_STRICT_ALIGNMENT;
void omFreeSizeToSystem(void *addr, size_t size)
◆ omFreeSizeToSystem()
void omFreeSizeToSystem |
( |
void * |
addr, |
|
|
size_t |
size |
|
) |
| |
◆ omFreeToSystem()
void omFreeToSystem |
( |
void * |
addr | ) |
|
Definition at line 286 of file omAllocSystem.c.
size_t omSizeOfAddr(const void *addr)
void omFreeSizeToSystem(void *addr, size_t size)
◆ omRealloc0Large()
void* omRealloc0Large |
( |
void * |
old_addr, |
|
|
size_t |
new_size |
|
) |
| |
Definition at line 76 of file omAllocSystem.c.
87 if (new_size > old_size)
88 memset(new_addr + old_size, 0, new_size - old_size);
89 return (
void *)new_addr;
size_t omSizeOfLargeAddr(void *addr)
void * omReallocLarge(void *old_addr, size_t new_size)
#define omIsBinPageAddr(addr)
◆ omReallocFromSystem()
void* omReallocFromSystem |
( |
void * |
addr, |
|
|
size_t |
newsize |
|
) |
| |
Definition at line 227 of file omAllocSystem.c.
void * omReallocSizeFromSystem(void *addr, size_t oldsize, size_t newsize)
size_t omSizeOfAddr(const void *addr)
◆ omReallocLarge()
void* omReallocLarge |
( |
void * |
old_addr, |
|
|
size_t |
new_size |
|
) |
| |
Definition at line 43 of file omAllocSystem.c.
50 new_size = OM_ALIGN_SIZE(new_size);
51 _old_addr = (
char *)old_addr - SIZEOF_STRICT_ALIGNMENT;
53 *((
size_t*) _old_addr) + SIZEOF_STRICT_ALIGNMENT,
54 new_size + SIZEOF_STRICT_ALIGNMENT);
55 *((
size_t*) new_addr) = new_size;
56 return (
void *)(new_addr + SIZEOF_STRICT_ALIGNMENT);
void * omReallocSizeFromSystem(void *addr, size_t oldsize, size_t newsize)
◆ omReallocSizeFromSystem()
void* omReallocSizeFromSystem |
( |
void * |
addr, |
|
|
size_t |
oldsize, |
|
|
size_t |
newsize |
|
) |
| |
Definition at line 232 of file omAllocSystem.c.
239 OM_MEMORY_LOW_HOOK();
246 OM_OUT_OF_MEMORY_HOOK();
254 if (((
unsigned long) res) + newsize >
om_MaxAddr)
260 om_Info.CurrentBytesFromMalloc += (long) newsize - (
long) oldsize;
266 #if defined(OM_HAVE_VALLOC_MMAP) && defined(OM_MALLOC_MAX_BYTES_SYSTEM) 267 if (
om_Info.CurrentBytesFromValloc + OM_MALLOC_MAX_BYTES_SYSTEM >
om_Info.MaxBytesSystem)
268 om_Info.MaxBytesSystem =
om_Info.CurrentBytesFromValloc + OM_MALLOC_MAX_BYTES_SYSTEM;
270 #if defined(HAVE_SBRK) && !defined(OM_MALLOC_MAX_BYTES_SBRK) 272 #ifndef OM_HAVE_VALLOC_MMAP
273 +
om_Info.CurrentBytesFromValloc
282 OM_REALLOC_HOOK(oldsize, newsize);
unsigned long om_SbrkInit
#define OM_REALLOC_FROM_SYSTEM
◆ omSizeOfAddr()
size_t omSizeOfAddr |
( |
const void * |
addr | ) |
|
Definition at line 97 of file omAllocSystem.c.
size_t omSizeOfLargeAddr(void *addr)
#define omIsBinAddrTrackAddr(addr)
#define omSizeOfBinAddr(addr)
#define omIsBinPageAddr(addr)
◆ omSizeOfLargeAddr()
size_t omSizeOfLargeAddr |
( |
void * |
addr | ) |
|
◆ omSizeWOfAddr()
size_t omSizeWOfAddr |
( |
void * |
addr | ) |
|
Definition at line 109 of file omAllocSystem.c.
size_t omSizeOfLargeAddr(void *addr)
#define omIsBinAddrTrackAddr(addr)
#define omSizeWOfBinAddr(addr)
#define omIsBinPageAddr(addr)
◆ omVfreeToSystem()
void omVfreeToSystem |
( |
void * |
page, |
|
|
size_t |
size |
|
) |
| |
Definition at line 348 of file omAllocSystem.c.
#define OM_VFREE_TO_SYSTEM
#define omIsAddrPageAligned(addr)