ucommon/cpr.h File Reference

Runtime functions. More...

#include <ucommon/platform.h>
Include dependency graph for cpr.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

__EXPORT void * cpr_memalloc (size_t size) __MALLOC
 Portable memory allocation helper function.
__EXPORT void * cpr_memassign (size_t size, caddr_t address, size_t known) __MALLOC
 Portable memory placement helper function.
__EXPORT void cpr_memswap (void *mem1, void *mem2, size_t size)
 Portable swap code.
__EXPORT void cpr_runtime_error (const char *text)
 Function to handle runtime errors.
__EXPORT uint32_t lsb_getlong (uint8_t *b)
__EXPORT uint16_t lsb_getshort (uint8_t *b)
__EXPORT void lsb_setlong (uint8_t *b, uint32_t v)
__EXPORT void lsb_setshort (uint8_t *b, uint16_t v)
__EXPORT uint32_t msb_getlong (uint8_t *b)
__EXPORT uint16_t msb_getshort (uint8_t *b)
__EXPORT void msb_setlong (uint8_t *b, uint32_t v)
__EXPORT void msb_setshort (uint8_t *b, uint16_t v)
void operator delete (void *object)
 Delete an object from the heap.
void operator delete[] (void *array)
 Delete an array from the heap.
void * operator new (size_t size, caddr_t address, size_t known)
 A placement new operator where we know the allocated size.
void * operator new (size_t size, caddr_t address)
 A placement new operator where we assume the size of memory is good.
void * operator new (size_t size, size_t extra)
 Overdraft new to allocate extra memory for object from heap.
void * operator new (size_t size)
 Our generic new operator.
void * operator new[] (size_t size, caddr_t address, size_t known)
 A placement new array operator where we know the allocated size.
void * operator new[] (size_t size, caddr_t address)
 A placement new array operator where we assume the size of memory is good.
void * operator new[] (size_t size)
 Our generic new array operator.

Detailed Description

Runtime functions.

This includes common runtime library functions we may need portably.

Author:
David Sugar <dyfet@gnutelephony.org>

Definition in file cpr.h.


Function Documentation

__EXPORT void* cpr_memalloc ( size_t  size  ) 

Portable memory allocation helper function.

Handles out of heap error as a runtime error.

Parameters:
size of memory block to allocate from heap.
Returns:
memory address of allocated heap space.
__EXPORT void* cpr_memassign ( size_t  size,
caddr_t  address,
size_t  known 
)

Portable memory placement helper function.

This is used to process "placement" new operators where a new object is constructed over a pre-allocated area of memory. This handles invalid values through runtime error.

Parameters:
size of object being constructed.
address where the object is being placed.
known size of the location we are constructing the object in.
__EXPORT void cpr_memswap ( void *  mem1,
void *  mem2,
size_t  size 
)

Portable swap code.

Parameters:
mem1 to swap.
mem2 to swap.
size of swap area.
__EXPORT void cpr_runtime_error ( const char *  text  ) 

Function to handle runtime errors.

When using the standard C library, runtime errors are handled by a simple abort. When using the stdc++ library with stdexcept, then std::runtime_error will be thrown.

Parameters:
text of runtime error.
void operator delete ( void *  object  )  [inline]

Delete an object from the heap.

Parameters:
object to delete.

Definition at line 163 of file cpr.h.

void operator delete[] ( void *  array  )  [inline]

Delete an array from the heap.

All array element destructors are called.

Parameters:
array to delete.

Definition at line 170 of file cpr.h.

void* operator new ( size_t  size,
caddr_t  address,
size_t  known 
) [inline]

A placement new operator where we know the allocated size.

We find out how much memory is needed by the new and can prevent the object from exceeding the available space we are placing the object.

Parameters:
size of memory needed for object.
address where to place object.
known size of location we are placing object.
Returns:
memory we placed object.

Definition at line 155 of file cpr.h.

Here is the call graph for this function:

void* operator new ( size_t  size,
caddr_t  address 
) [inline]

A placement new operator where we assume the size of memory is good.

We construct the object at a specified place in memory which we assume is valid for our needs.

Parameters:
size of memory needed for object.
address where to place object.
Returns:
memory we placed object.

Definition at line 142 of file cpr.h.

Here is the call graph for this function:

void* operator new ( size_t  size,
size_t  extra 
) [inline]

Overdraft new to allocate extra memory for object from heap.

This is used for objects that must have a known class size but store extra data behind the class. The last member might be an unsized or 0 element array, and the actual size needed from the heap is hence not the size of the class itself but is known by the routine allocating the object.

Parameters:
size of object.
extra heap space needed for data.

Definition at line 131 of file cpr.h.

Here is the call graph for this function:

void* operator new ( size_t  size  )  [inline]

Our generic new operator.

Uses our heap memory allocator.

Parameters:
size of object being constructed.
Returns:
memory allocated from heap.

Definition at line 85 of file cpr.h.

Here is the call graph for this function:

void* operator new[] ( size_t  size,
caddr_t  address,
size_t  known 
) [inline]

A placement new array operator where we know the allocated size.

We find out how much memory is needed by the new and can prevent arrayed objects from exceeding the available space we are placing the object.

Parameters:
size of memory needed for object array.
address where to place object array.
known size of location we are placing array.
Returns:
memory we placed object array.

Definition at line 118 of file cpr.h.

Here is the call graph for this function:

void* operator new[] ( size_t  size,
caddr_t  address 
) [inline]

A placement new array operator where we assume the size of memory is good.

We construct the array at a specified place in memory which we assume is valid for our needs.

Parameters:
size of memory needed for object array.
address where to place object array.
Returns:
memory we placed object array.

Definition at line 106 of file cpr.h.

Here is the call graph for this function:

void* operator new[] ( size_t  size  )  [inline]

Our generic new array operator.

Uses our heap memory allocator.

Parameters:
size of memory needed for object array.
Returns:
memory allocated from heap.

Definition at line 93 of file cpr.h.

Here is the call graph for this function:


Generated on 24 Sep 2014 for ucommon by  doxygen 1.6.1