RTEMS 6.1-rc7
Loading...
Searching...
No Matches
Files | Functions | Variables
Workspace Handler

This group contains the Workspace Handler implementation. More...

Files

file  wkspaceinitmulti.c
 This source file contains the _Workspace_Handler_initialization() implementation which supports more than one memory area.
 
file  wkspaceinitone.c
 This source file contains the _Workspace_Handler_initialization() implementation which supports exactly one memory area.
 
file  wkspace.h
 This header file provides interfaces of the Workspace Handler which are only used by the implementation.
 
file  wkspacedata.h
 This header file provides data structures used by the implementation and the Application Configuration to define _Workspace_Size, _Workspace_Is_unified, and _Workspace_Malloc_initializer.
 
file  wkspaceinitmulti.h
 This header file provides the implementation of _Workspace_Initialize_for_multiple_areas().
 
file  wkspaceinitone.h
 This header file provides the implementation of _Workspace_Initialize_for_one_area().
 
file  wkspace.c
 This source file contains the definition of _Workspace_Area and the Workspace Handler system initialization.
 
file  wkspaceallocate.c
 This source file contains the implementation of _Workspace_Allocate().
 
file  wkspacefree.c
 This source file contains the implementation of _Workspace_Free().
 
file  wkspaceisunifieddefault.c
 This source file contains the default definition of _Workspace_Is_unified.
 
file  wkspacemallocinitdefault.c
 This source file contains the default definition of _Workspace_Malloc_initializer.
 
file  wkspacemallocinitunified.c
 This source file contains the implementation of _Workspace_Malloc_initialize_unified().
 
file  wkstringduplicate.c
 This source file contains the implementation of _Workspace_String_duplicate().
 

Functions

void _Workspace_Handler_initialization (void)
 Initializes the workspace handler.
 
void * _Workspace_Allocate (size_t size)
 Allocates a memory block of the specified size from the workspace.
 
void _Workspace_Free (void *block)
 Frees memory to the workspace.
 
char * _Workspace_String_duplicate (const char *string, size_t len)
 Duplicates string with memory from the workspace.
 
struct Heap_Control_Workspace_Malloc_initialize_separate (void)
 Initializes the C Program Heap separated from the RTEMS Workspace.
 
struct Heap_Control_Workspace_Malloc_initialize_unified (void)
 Initializes the C Program Heap so that it is unified with the RTEMS Workspace.
 

Variables

Heap_Control _Workspace_Area
 Executive workspace control.
 
const uintptr_t _Workspace_Size
 The workspace size in bytes.
 
const bool _Workspace_Is_unified
 Indicates if the workspace and C program heap are unified.
 
struct Heap_Control *(*const _Workspace_Malloc_initializer )(void)
 This constant provides the C Program Heap initialization handler.
 

Detailed Description

This group contains the Workspace Handler implementation.

This handler encapsulates functionality related to the management of the RTEMS Workspace. It provides mechanisms which can be used to define, initialize and manipulate the RTEMS Workspace.

Function Documentation

◆ _Workspace_Allocate()

void * _Workspace_Allocate ( size_t  size)

Allocates a memory block of the specified size from the workspace.

Parameters
sizeThe size of the memory block.
Return values
pointerThe pointer to the memory block. The pointer is at least aligned by CPU_HEAP_ALIGNMENT.
NULLNo memory block with the requested size is available in the workspace.

◆ _Workspace_Free()

void _Workspace_Free ( void *  block)

Frees memory to the workspace.

This function frees the specified block of memory.

Parameters
blockThe memory to free.
Note
If block is equal to NULL, then the request is ignored. This allows the caller to not worry about whether or not a pointer is NULL.

◆ _Workspace_Handler_initialization()

void _Workspace_Handler_initialization ( void  )

Initializes the workspace handler.

This routine performs the initialization necessary for this handler.

◆ _Workspace_Malloc_initialize_separate()

struct Heap_Control * _Workspace_Malloc_initialize_separate ( void  )

Initializes the C Program Heap separated from the RTEMS Workspace.

Returns
Returns the heap control used for the C Program Heap.

◆ _Workspace_Malloc_initialize_unified()

struct Heap_Control * _Workspace_Malloc_initialize_unified ( void  )

Initializes the C Program Heap so that it is unified with the RTEMS Workspace.

Returns
Returns the heap control used for the C Program Heap.

◆ _Workspace_String_duplicate()

char * _Workspace_String_duplicate ( const char *  string,
size_t  len 
)

Duplicates string with memory from the workspace.

Parameters
stringThe pointer to a zero terminated string.
lenThe length of the string (equal to strlen(string)).
Return values
otherDuplicated string.
NULLNot enough memory.

Variable Documentation

◆ _Workspace_Area

Heap_Control _Workspace_Area
extern

Executive workspace control.

This is the heap control structure used to manage the RTEMS Executive Workspace.

◆ _Workspace_Is_unified

const bool _Workspace_Is_unified
extern

Indicates if the workspace and C program heap are unified.

This constant is defined by the application configuration via <rtems/confdefs.h>.

◆ _Workspace_Malloc_initializer

struct Heap_Control *(*const _Workspace_Malloc_initializer) (void) ( void  )
extern

This constant provides the C Program Heap initialization handler.

This constant is defined by the application configuration option CONFIGURE_UNIFIED_WORK_AREAS via <rtems/confdefs.h> or a default configuration.

◆ _Workspace_Size

const uintptr_t _Workspace_Size
extern

The workspace size in bytes.

This constant is defined by the application configuration via <rtems/confdefs.h>.