RTEMS
|
Low level handler to provide memory areas for higher level memory handlers such as the Workspace Handler. More...
Files | |
file | memory.h |
Memory Handler API. | |
Classes | |
struct | Memory_Area |
The memory area description. More... | |
struct | Memory_Information |
The memory information. More... | |
Macros | |
#define | MEMORY_INFORMATION_INITIALIZER(areas) { RTEMS_ARRAY_SIZE( areas ), ( areas ) } |
Statically initialize a memory information. More... | |
#define | MEMORY_INITIALIZER(begin, end) { ( begin ), ( begin ), ( end ) } |
Statically initialize a memory area. More... | |
Functions | |
static __inline__ size_t | _Memory_Get_count (const Memory_Information *information) |
Get the memory area count. More... | |
static __inline__ Memory_Area * | _Memory_Get_area (const Memory_Information *information, size_t index) |
Get a memory area by index. More... | |
static __inline__ void | _Memory_Initialize (Memory_Area *area, void *begin, void *end) |
Initialize the memory area. More... | |
static __inline__ void | _Memory_Initialize_by_size (Memory_Area *area, void *begin, uintptr_t size) |
Initialize the memory area by size. More... | |
static __inline__ const void * | _Memory_Get_begin (const Memory_Area *area) |
Get the memory area begin. More... | |
static __inline__ void | _Memory_Set_begin (Memory_Area *area, const void *begin) |
Set the memory area begin. More... | |
static __inline__ const void * | _Memory_Get_end (const Memory_Area *area) |
Get the memory area end. More... | |
static __inline__ void | _Memory_Set_end (Memory_Area *area, const void *end) |
Set the memory area end. More... | |
static __inline__ uintptr_t | _Memory_Get_size (const Memory_Area *area) |
Get the memory area size. More... | |
static __inline__ void * | _Memory_Get_free_begin (const Memory_Area *area) |
Get the begin of the free area of the memory area. More... | |
static __inline__ void | _Memory_Set_free_begin (Memory_Area *area, void *begin) |
Set the begin of the free area of the memory area. More... | |
static __inline__ uintptr_t | _Memory_Get_free_size (const Memory_Area *area) |
Get the size of the free memory area of the memory area. More... | |
static __inline__ void | _Memory_Consume (Memory_Area *area, uintptr_t consume) |
Consume the specified size from the free memory area of the memory area. More... | |
const Memory_Information * | _Memory_Get (void) |
Return the memory information of this platform. More... | |
void * | _Memory_Allocate (const Memory_Information *information, uintptr_t size, uintptr_t alignment) |
Allocate a memory area from the memory information. More... | |
void | _Memory_Fill (const Memory_Information *information, int c) |
Fill all free memory areas of the memory information with a constant byte. More... | |
void | _Memory_Zero_free_areas (void) |
Zeros all free memory areas of the system. | |
void | _Memory_Dirty_free_areas (void) |
Dirty all free memory areas of the system. | |
Variables | |
const bool | _Memory_Zero_before_use |
Indicates if the memory is zeroed during system initialization. More... | |
Low level handler to provide memory areas for higher level memory handlers such as the Workspace Handler.
#define MEMORY_INFORMATION_INITIALIZER | ( | areas | ) | { RTEMS_ARRAY_SIZE( areas ), ( areas ) } |
#define MEMORY_INITIALIZER | ( | begin, | |
end | |||
) | { ( begin ), ( begin ), ( end ) } |
void* _Memory_Allocate | ( | const Memory_Information * | information, |
uintptr_t | size, | ||
uintptr_t | alignment | ||
) |
Allocate a memory area from the memory information.
It is not possible to free the memory area allocated by this function.
information | The memory information. |
size | The size in bytes of the memory area to allocate. |
alignment | The alignment in bytes of the memory area to allocate. It must be a power of two. |
NULL | No such memory area available. |
begin | The begin of the allocated memory area. |
Definition at line 34 of file memoryallocate.c.
|
static |
void _Memory_Fill | ( | const Memory_Information * | information, |
int | c | ||
) |
Fill all free memory areas of the memory information with a constant byte.
information | The memory information. |
c | The constant byte to fill the free memory areas. |
const Memory_Information* _Memory_Get | ( | void | ) |
Return the memory information of this platform.
This function is provided by the Board Support Package (BSP). Using a function gives the BSPs a bit more freedom with respect to the implementation. Calling this function shall not have side-effects. Initialization steps to set up the memory information shall be done in a system initialization handler (RTEMS_SYSINIT_MEMORY).
Definition at line 42 of file bspgetworkarea.c.
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
|
static |
const bool _Memory_Zero_before_use |
Indicates if the memory is zeroed during system initialization.
This value is provided via <rtems/confdefs.h> in case CONFIGURE_ZERO_WORKSPACE_AUTOMATICALLY is defined.