RTI Connext DDS Micro C API
Version 4.0.1
|
Macros | |
#define | OSAPI_get_alignment_of(testType) offsetof (struct { char c; testType member; }, member) |
Gets alignment of a type. | |
#define | OSAPI_Heap_is_address_aligned(location, alignment) (((char*)(location) - (char*)OSAPI_CC_NullPtr) % (alignment) == 0) |
Check if a particular address is aligned to an alignment. | |
#define | OSAPI_Heap_align_size_up(size, alignment) (((size) + ((alignment) - 1U)) & (~((alignment) - 1U))) |
Aligns a particular address to an alignment alignment. |
Typedefs | |
typedef RTI_INT32 | OSAPI_Alignment_T |
The OSAPIAlignment is the alignment in bytes; an address is aligned when it is a positive integer multiple of the alignment. |
Functions | |
void * | OSAPI_Heap_allocate (RTI_SIZE_T count, RTI_SIZE_T size) |
Allocates zero-initialized memory from the heap. | |
void * | OSAPI_Heap_realloc (void *ptr, RTI_SIZE_T size) |
Reallocate memory from the heap. | |
void | OSAPI_Heap_free (void *ptr) |
Frees memory allocated from the heap. | |
void | OSAPI_Heap_allocate_struct (MACRO_TYPE **pointer, MACRO_TYPE) |
Allocates space on the heap for a C structure and initializes the structure with 0's. | |
void | OSAPI_Heap_free_struct (MACRO_TYPE *pointer) |
Returns previously allocated (with OSAPI_Heap_allocate_struct) space to the heap. | |
void | OSAPI_Heap_allocate_array (MACRO_TYPE **pointer, int count, MACRO_TYPE) |
A static method to allocate space on the heap for an array of C structures; the array is initialized with 0's. | |
void | OSAPI_Heap_free_array (MACRO_TYPE *storage) |
A static method to return space (that was previously allocated with OSAPI_Heap_allocate_array) to the heap. | |
void | OSAPI_Heap_allocate_string (char **pointer, RTI_UINT32 size) |
A static method to allocate space on the heap for a string of up to a given size. The string is initialized with 0's. | |
void | OSAPI_Heap_free_string (char *pointer) |
A static method to return space string space to the heap. | |
void | OSAPI_Heap_allocate_buffer (char **buffer, RTI_SIZE_T size, OSAPI_Alignment_T alignment) |
A static method to allocate a block of memory of the provided size from the heap. | |
void | OSAPI_Heap_free_buffer (void *buffer) |
A static method to return a block (that was previously allocated with OSAPI_Heap_allocate_buffer) to the heap. | |
RTI_SIZE_T | OSAPI_Heap_get_allocated_byte_count (void) |
Return current allocated memory. | |
RTI_SIZE_T | OSAPI_Heap_get_allocated_byte_count_from_size (void) |
Return current allocated memory without allocation overhead. | |
void | OSAPI_Heap_disable_alloc (void) |
Disable memory allocation. |
Variables | |
RTI_SIZE_T | OSAPI_gv_AllocatedByteCount |
Current allocated bytes. | |
RTI_SIZE_T | OSAPI_gv_AllocatedByteCountFromSize |
Current allocated bytes without allocation overhead. |
#define OSAPI_get_alignment_of | ( | testType | ) | offsetof (struct { char c; testType member; }, member) |
Gets alignment of a type.
#define OSAPI_Heap_is_address_aligned | ( | location, | |
alignment | |||
) | (((char*)(location) - (char*)OSAPI_CC_NullPtr) % (alignment) == 0) |
Check if a particular address is aligned to an alignment.
#define OSAPI_Heap_align_size_up | ( | size, | |
alignment | |||
) | (((size) + ((alignment) - 1U)) & (~((alignment) - 1U))) |
Aligns a particular address to an alignment alignment.
typedef RTI_INT32 OSAPI_Alignment_T |
The OSAPIAlignment is the alignment in bytes; an address is aligned when it is a positive integer multiple of the alignment.
void* OSAPI_Heap_allocate | ( | RTI_SIZE_T | count, |
RTI_SIZE_T | size | ||
) |
Allocates zero-initialized memory from the heap.
The function allocates count
elements of size size
and sets the memory region to 0.
NOTE: This operation assumes the specified size to be > 0; this operation is never used directly but it is only accessed by using one of the other allocate operations of OSAPI_Heap (e.g. allocate_struct, allocate_array, allocate_string...); these operations are implemented as macros and accept a "type" argument which is always converted to a size > 0 using the sizeof operator.
[in] | count | The number of elements to allocate. |
[in] | size | The size of the element; size is assumed to be always greater than 0. |
count
elements of size size
.void* OSAPI_Heap_realloc | ( | void * | ptr, |
RTI_SIZE_T | size | ||
) |
Reallocate memory from the heap.
[in] | ptr | Currently allocated buffer |
[in] | size | The new desired size |
void OSAPI_Heap_free | ( | void * | ptr | ) |
Frees memory allocated from the heap.
The function frees memory previously allocated with OSAPI_Heap_allocate back to the heap.
[in] | ptr | Pointer to region previous allocated with OSAPI_Heap_allocate |
void OSAPI_Heap_allocate_struct | ( | MACRO_TYPE ** | pointer, |
MACRO_TYPE | |||
) |
Allocates space on the heap for a C structure and initializes the structure with 0's.
Example:
The returned space must be freed with OSAPI_Heap_free_struct.
NOTE: This operation is implemented as a macro in order to support the specification of a "type" argument (converted to a size value using the sizeof operator).
void OSAPI_Heap_free_struct | ( | MACRO_TYPE * | pointer | ) |
Returns previously allocated (with OSAPI_Heap_allocate_struct) space to the heap.
[in] | pointer | If NULL, no op. |
Example:
void OSAPI_Heap_allocate_array | ( | MACRO_TYPE ** | pointer, |
int | count, | ||
MACRO_TYPE | |||
) |
A static method to allocate space on the heap for an array of C structures; the array is initialized with 0's.
Example:
The returned space must be freed with OSAPI_Heap_free_array.
NOTE: This operation is implemented as a macro in order to support the specification of a "type" argument (converted to a size value using the sizeof operator).
void OSAPI_Heap_free_array | ( | MACRO_TYPE * | storage | ) |
A static method to return space (that was previously allocated with OSAPI_Heap_allocate_array) to the heap.
Example:
[in] | storage | If NULL, no op. |
void OSAPI_Heap_allocate_string | ( | char ** | pointer, |
RTI_UINT32 | size | ||
) |
A static method to allocate space on the heap for a string of up to a given size. The string is initialized with 0's.
Example:
[out] | pointer | String buffer. |
[in] | size | Size in bytes to allocate; this length must not include the string terminator, which is automatically added to the specified value. |
The returned space must be freed with OSAPI_Heap_free_string.
void OSAPI_Heap_free_string | ( | char * | pointer | ) |
A static method to return space string space to the heap.
[in] | pointer | If NULL, no op. |
void OSAPI_Heap_allocate_buffer | ( | char ** | buffer, |
RTI_SIZE_T | size, | ||
OSAPI_Alignment_T | alignment | ||
) |
A static method to allocate a block of memory of the provided size from the heap.
[out] | buffer | |
[in] | size | > 0 |
[in] | alignment | Power of 2 and >0 or OSAPI_ALIGNMENT_DEFAULT. If the alignment is OSAPI_ALIGNMENT_DEFAULT, the returned pointer will have "default alignment" (meaning that any C-structure can start at the beginning of the buffer). |
The block must be returned to the heap with OSAPI_Heap_free_buffer.
void OSAPI_Heap_free_buffer | ( | void * | buffer | ) |
A static method to return a block (that was previously allocated with OSAPI_Heap_allocate_buffer) to the heap.
[in] | buffer | If NULL, no op. |
RTI_SIZE_T OSAPI_Heap_get_allocated_byte_count | ( | void | ) |
Return current allocated memory.
RTI_SIZE_T OSAPI_Heap_get_allocated_byte_count_from_size | ( | void | ) |
Return current allocated memory without allocation overhead.
void OSAPI_Heap_disable_alloc | ( | void | ) |
Disable memory allocation.
RTI_SIZE_T OSAPI_gv_AllocatedByteCount |
Current allocated bytes.
RTI_SIZE_T OSAPI_gv_AllocatedByteCountFromSize |
Current allocated bytes without allocation overhead.