RTEMS: cpukit/include/rtems/score/stack.h Source File

| RTEMS 5.4-rc2

Loading...
Searching...
No Matches
stack.h
Go to the documentation of this file.
1
13/*
14 * COPYRIGHT (c) 1989-2006.
15 * On-Line Applications Research Corporation (OAR).
16 *
17 * The license and distribution terms for this file may be
18 * found in the file LICENSE in this distribution or at
19 * http://www.rtems.org/license/LICENSE.
20 */
21
22#ifndef _RTEMS_SCORE_STACK_H
23#define _RTEMS_SCORE_STACK_H
24
25#include <rtems/score/basedefs.h>
26
27#ifdef __cplusplus
28extern "C" {
29#endif
30
48#define STACK_MINIMUM_SIZE CPU_STACK_MINIMUM_SIZE
49
53 typedef struct {
55 size_t size;
57 void *area;
58} Stack_Control;
59
65 typedef void ( *Stack_Allocator_initialize )( size_t stack_space_size );
66
75 typedef void *( *Stack_Allocator_allocate )( size_t stack_size );
76
82 typedef void ( *Stack_Allocator_free )( void *addr );
83
96 typedef void *( *Stack_Allocator_allocate_for_idle )(
97 uint32_t cpu,
98 size_t stack_size
99);
100
106extern uint32_t rtems_minimum_stack_size;
107
113extern const uintptr_t _Stack_Space_size;
114
120extern const bool _Stack_Allocator_avoids_workspace;
121
127extern const Stack_Allocator_initialize _Stack_Allocator_initialize;
128
134extern const Stack_Allocator_allocate _Stack_Allocator_allocate;
135
141extern const Stack_Allocator_free _Stack_Allocator_free;
142
149extern const Stack_Allocator_allocate_for_idle
150 _Stack_Allocator_allocate_for_idle;
151
152#ifdef __cplusplus
153}
154#endif
155
156#endif
157/* end of include file */
basedefs.h
Basic Definitions.
_Stack_Allocator_allocate_for_idle
const Stack_Allocator_allocate_for_idle _Stack_Allocator_allocate_for_idle
The stack allocator allocate stack for idle thread handler.
Definition: stackallocatorforidle.c:58
Stack_Allocator_initialize
void(* Stack_Allocator_initialize)(size_t stack_space_size)
The stack allocator initialization handler.
Definition: stack.h:65
_Stack_Allocator_avoids_workspace
const bool _Stack_Allocator_avoids_workspace
Indicates if the stack allocator avoids the workspace.
Definition: stackallocator.c:35
Stack_Allocator_allocate
void *(* Stack_Allocator_allocate)(size_t stack_size)
Stack allocator allocate handler.
Definition: stack.h:75
_Stack_Space_size
const uintptr_t _Stack_Space_size
The configured stack space size.
_Stack_Allocator_allocate
const Stack_Allocator_allocate _Stack_Allocator_allocate
The stack allocator allocate handler.
Definition: stackallocator.c:39
_Stack_Allocator_free
const Stack_Allocator_free _Stack_Allocator_free
The stack allocator free handler.
Definition: stackallocator.c:41
_Stack_Allocator_initialize
const Stack_Allocator_initialize _Stack_Allocator_initialize
The stack allocator initialization handler.
Definition: stackallocator.c:37
Stack_Allocator_free
void(* Stack_Allocator_free)(void *addr)
Stack allocator free handler.
Definition: stack.h:82
rtems_minimum_stack_size
uint32_t rtems_minimum_stack_size
The minimum stack size.
Stack_Allocator_allocate_for_idle
void *(* Stack_Allocator_allocate_for_idle)(uint32_t cpu, size_t stack_size)
Stack allocator allocate for idle handler.
Definition: stack.h:96
Stack_Control
Definition: stack.h:53
Stack_Control::size
size_t size
Definition: stack.h:55
Stack_Control::area
void * area
Definition: stack.h:57