Nebula
Loading...
Searching...
No Matches
osxmemory.h File Reference

Detailed Description

Lowlevel memory functions for the OSX platform.

(C) 2010 Radon Labs GmbH (C) 2013-2018 Individual contributors, see AUTHORS file

#include "core/config.h"
#include "core/debug.h"
#include "memory/osx/osxmemoryconfig.h"

Go to the source code of this file.

Classes

struct  Memory::TotalMemoryStatus
 Get the system's total current memory, this does not only include Nebula's memory allocations but the memory usage of the entire system. More...
 

Namespaces

namespace  Memory
 

Macros

#define __MEMORY_CHECKPOINT(s)
 Debug and memory validation functions.
 
#define __MEMORY_VALIDATE(s)
 
#define n_new(type)
 
#define n_new_array(type, size)
 
#define n_delete(ptr)
 
#define n_delete_array(ptr)
 

Functions

void * Memory::Alloc (HeapType heapType, size_t size, size_t alignment)
 Allocate a block of memory from one of the global heaps.
 
void * Memory::Realloc (HeapType heapType, void *ptr, size_t size)
 Re-Allocate a block of memory from one of the global heaps.
 
void Memory::Free (HeapType heapType, void *ptr)
 Free a block of memory.
 
char * Memory::DuplicateCString (const char *from)
 Duplicate a 0-terminated string, this method should no longer be used!
 
bool Memory::IsOverlapping (const unsigned char *srcPtr, size_t srcSize, const unsigned char *dstPtr, size_t dstSize)
 Test if 2 areas of memory areas are overlapping.
 
void Memory::Copy (const void *from, void *to, size_t numBytes)
 Copy a chunk of memory (note the argument order is different from memcpy()!!!)
 
void Memory::Clear (void *ptr, size_t numBytes)
 Overwrite a chunk of memory with 0's.
 
void Memory::Fill (void *ptr, size_t numBytes, unsigned char value)
 Fill memory with a specific byte.
 
TotalMemoryStatus Memory::GetTotalMemoryStatus ()
 Get the system's total memory status.
 
void * operator new (size_t size)
 Replacement global new/delete operators.
 
void * operator new (size_t size, size_t align)
 
void * operator new[] (size_t size)
 Replacement global new[] operators.
 
void * operator new[] (size_t size, size_t align)
 
void operator delete (void *p)
 Replacement global delete operator.
 
void operator delete[] (void *p)
 Replacement global delete[] operator.
 

Variables

int volatile Memory::TotalAllocCount = 0
 
int volatile Memory::TotalAllocSize = 0
 
int volatile Memory::HeapTypeAllocCount [NumHeapTypes] = { 0 }
 
int volatile Memory::HeapTypeAllocSize [NumHeapTypes] = { 0 }
 
bool volatile Memory::MemoryLoggingEnabled = false
 
unsigned int volatile Memory::MemoryLoggingThreshold = 0
 
HeapType volatile Memory::MemoryLoogingHeapType
 

Macro Definition Documentation

◆ __MEMORY_CHECKPOINT

#define __MEMORY_CHECKPOINT ( s)

Debug and memory validation functions.

◆ __MEMORY_VALIDATE

#define __MEMORY_VALIDATE ( s)

◆ n_delete

#define n_delete ( ptr)
Value:
delete ptr

◆ n_delete_array

#define n_delete_array ( ptr)
Value:
delete[] ptr

◆ n_new

#define n_new ( type)
Value:
new type

◆ n_new_array

#define n_new_array ( type,
size )
Value:
new type[size]

Function Documentation

◆ operator delete()

void operator delete ( void * p)
externnoexcept

Replacement global delete operator.

◆ operator delete[]()

void operator delete[] ( void * p)
externnoexcept

Replacement global delete[] operator.

◆ operator new() [1/2]

void * operator new ( size_t size)
extern

Replacement global new/delete operators.

Replacement global new/delete operators.

◆ operator new() [2/2]

void * operator new ( size_t size,
size_t align )
extern

◆ operator new[]() [1/2]

void * operator new[] ( size_t size)
extern

Replacement global new[] operators.

◆ operator new[]() [2/2]

void * operator new[] ( size_t size,
size_t align )
extern