CMR  1.3.0
Macros | Functions | Variables
env.c File Reference
#include "env_internal.h"
#include <assert.h>
#include <stdlib.h>
#include <limits.h>
#include <stdarg.h>
#include <string.h>

Macros

#define STACK_SIZE(k)    (FIRST_STACK_SIZE << k)
 

Functions

CMR_ERROR CMRcreateEnvironment (CMR **pcmr)
 Allocates and initializes a default CMR environment. More...
 
CMR_ERROR CMRfreeEnvironment (CMR **pcmr)
 Frees a CMR environment. More...
 
CMR_ERROR _CMRallocBlock (CMR *cmr, void **ptr, size_t size)
 Carries out the allocation for CMRallocBlock. More...
 
CMR_ERROR _CMRfreeBlock (CMR *cmr, void **ptr, size_t size)
 Carries out the deallocation for CMRfreeBlock. More...
 
CMR_ERROR _CMRallocBlockArray (CMR *cmr, void **ptr, size_t size, size_t length)
 Carries out the allocation for CMRallocBlockArray. More...
 
CMR_ERROR _CMRreallocBlockArray (CMR *cmr, void **ptr, size_t size, size_t length)
 Carries out the reallocation for CMRreallocBlockArray. More...
 
CMR_ERROR _CMRduplicateBlockArray (CMR *cmr, void **ptr, size_t size, size_t length, void *source)
 Carries out the duplication for CMRduplicateBlockArray. More...
 
CMR_ERROR _CMRfreeBlockArray (CMR *cmr, void **ptr)
 
CMR_ERROR _CMRallocStack (CMR *cmr, void **ptr, size_t size)
 Carries out the allocation for CMRallocStack. More...
 
CMR_ERROR _CMRfreeStack (CMR *cmr, void **ptr)
 Carries out the deallocation for CMRfreeStack. More...
 
void CMRassertStackConsistency (CMR *cmr)
 Checks stack protection fields for corruption. More...
 
size_t CMRgetStackUsage (CMR *cmr)
 
void CMRraiseErrorMessage (CMR *cmr, const char *format,...)
 
char * CMRgetErrorMessage (CMR *cmr)
 Returns the error message (or NULL if no error with a message occured). More...
 
void CMRclearErrorMessage (CMR *cmr)
 Clears the error message. More...
 
char * CMRconsistencyMessage (const char *format,...)
 

Variables

static const size_t FIRST_STACK_SIZE = 4096L
 
static const int INITIAL_MEM_STACKS = 16
 
static const int PROTECTION = INT_MIN / 42
 

Macro Definition Documentation

◆ STACK_SIZE

#define STACK_SIZE (   k)     (FIRST_STACK_SIZE << k)

Function Documentation

◆ _CMRallocBlock()

CMR_ERROR _CMRallocBlock ( CMR cmr,
void **  ptr,
size_t  size 
)

Carries out the allocation for CMRallocBlock.

Note
Use CMRallocBlock to allocate block memory.

◆ _CMRallocBlockArray()

CMR_ERROR _CMRallocBlockArray ( CMR cmr,
void **  ptr,
size_t  size,
size_t  length 
)

Carries out the allocation for CMRallocBlockArray.

Note
Use CMRallocBlockArray to allocate block memory.

◆ _CMRallocStack()

CMR_ERROR _CMRallocStack ( CMR cmr,
void **  ptr,
size_t  size 
)

Carries out the allocation for CMRallocStack.

Note
Use CMRallocStack to allocate stack memory.
Parameters
cmrCMR environment.
ptrPointer where the space shall be allocated.
sizeSpace to allocate.

◆ _CMRduplicateBlockArray()

CMR_ERROR _CMRduplicateBlockArray ( CMR cmr,
void **  ptr,
size_t  size,
size_t  length,
void *  source 
)

Carries out the duplication for CMRduplicateBlockArray.

Note
Use CMRduplicateBlockArray to duplicate block memory.

◆ _CMRfreeBlock()

CMR_ERROR _CMRfreeBlock ( CMR cmr,
void **  ptr,
size_t  size 
)

Carries out the deallocation for CMRfreeBlock.

Note
Use CMRfreeBlock to free block memory.

◆ _CMRfreeBlockArray()

CMR_ERROR _CMRfreeBlockArray ( CMR cmr,
void **  ptr 
)

◆ _CMRfreeStack()

CMR_ERROR _CMRfreeStack ( CMR cmr,
void **  ptr 
)

Carries out the deallocation for CMRfreeStack.

Note
Use CMRfreeStack to free stack memory.
Parameters
cmrCMR environment.
ptrPointer of space to be freed.

◆ _CMRreallocBlockArray()

CMR_ERROR _CMRreallocBlockArray ( CMR cmr,
void **  ptr,
size_t  size,
size_t  length 
)

Carries out the reallocation for CMRreallocBlockArray.

Note
Use CMRreallocBlockArray to reallocate block memory.

◆ CMRassertStackConsistency()

void CMRassertStackConsistency ( CMR cmr)

Checks stack protection fields for corruption.

Useful for debugging memory errors.

Parameters
cmrCMR environment.

◆ CMRclearErrorMessage()

void CMRclearErrorMessage ( CMR cmr)

Clears the error message.

Parameters
cmrCMR environment.

◆ CMRconsistencyMessage()

char* CMRconsistencyMessage ( const char *  format,
  ... 
)

◆ CMRcreateEnvironment()

CMR_ERROR CMRcreateEnvironment ( CMR **  pcmr)

Allocates and initializes a default CMR environment.

It has default parameters and outputs to stdout.

Parameters
pcmrPointer at which the CMR environment shall be allocated.

◆ CMRfreeEnvironment()

CMR_ERROR CMRfreeEnvironment ( CMR **  pcmr)

Frees a CMR environment.

Parameters
pcmrPointer to CMR environment.

◆ CMRgetErrorMessage()

char* CMRgetErrorMessage ( CMR cmr)

Returns the error message (or NULL if no error with a message occured).

Parameters
cmrCMR environment.

◆ CMRgetStackUsage()

size_t CMRgetStackUsage ( CMR cmr)
Parameters
cmrCMR environment.

◆ CMRraiseErrorMessage()

void CMRraiseErrorMessage ( CMR cmr,
const char *  format,
  ... 
)
Parameters
cmrCMR environment.
...Variadic arguments in printf-style.

Variable Documentation

◆ FIRST_STACK_SIZE

const size_t FIRST_STACK_SIZE = 4096L
static

Size of the first stack.

◆ INITIAL_MEM_STACKS

const int INITIAL_MEM_STACKS = 16
static

Initial number of allocated stacks.

◆ PROTECTION

const int PROTECTION = INT_MIN / 42
static

Protection bytes to detect corruption.