µOS++ IIIe / CMSIS++ / POSIX++ Reference  v6.3.11
“Perfekt ist nicht gut genug”
The third edition of µOS++ and CMSIS++, a proposal for the next generation CMSIS, written in C++.
os-hooks.h
Go to the documentation of this file.
1 /*
2  * This file is part of the µOS++ distribution.
3  * (https://github.com/micro-os-plus)
4  * Copyright (c) 2016 Liviu Ionescu.
5  *
6  * Permission is hereby granted, free of charge, to any person
7  * obtaining a copy of this software and associated documentation
8  * files (the "Software"), to deal in the Software without
9  * restriction, including without limitation the rights to use,
10  * copy, modify, merge, publish, distribute, sublicense, and/or
11  * sell copies of the Software, and to permit persons to whom
12  * the Software is furnished to do so, subject to the following
13  * conditions:
14  *
15  * The above copyright notice and this permission notice shall be
16  * included in all copies or substantial portions of the Software.
17  *
18  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
19  * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
20  * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
21  * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
22  * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
23  * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
24  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
25  * OTHER DEALINGS IN THE SOFTWARE.
26  */
27 
28 #ifndef CMSIS_PLUS_RTOS_OS_HOOKS_H_
29 #define CMSIS_PLUS_RTOS_OS_HOOKS_H_
30 
31 #include <stddef.h>
32 #include <stdbool.h>
33 
34 // ----------------------------------------------------------------------------
35 
36 #if defined(__cplusplus)
37 extern "C"
38 {
39 #endif /* __cplusplus */
40 
58  void
59  __attribute__ ((noreturn))
60  _start (void);
61 
69  void
71 
79  void
81 
89  void
90  os_startup_initialize_free_store (void* heap_address, size_t heap_size_bytes);
91 
97  void
98  os_startup_initialize_args (int* p_argc, char*** p_argv);
99 
107  void
109 
126  void
127  os_terminate_goodbye (void);
128 
135  void
136  __attribute__ ((noreturn))
137  os_terminate (int code);
138 
155  bool
157 
165  void
167 
175  void
177 
187 #define os_initialize_hardware_early os_startup_initialize_hardware_early
188 #define os_initialize_hardware os_startup_initialize_hardware
189 #define os_initialize_args os_startup_initialize_args
190 
199 #if defined(__cplusplus)
200 }
201 #endif /* __cplusplus */
202 
203 #endif /* CMSIS_PLUS_RTOS_OS_HOOKS_H_ */
void os_rtos_system_out_of_memory_hook(void)
Hook to handle out of memory in the RTOS dynamic memory.
void os_startup_initialize_args(int *p_argc, char ***p_argv)
Initialise arguments.
Definition: startup.cpp:411
bool os_rtos_idle_enter_power_saving_mode_hook(void)
Hook to enter a power saving mode.
Definition: os-idle.cpp:63
void os_startup_initialize_hardware(void)
Initialise hardware.
void os_startup_create_thread_idle(void)
Create the idle thread.
void os_startup_initialize_hardware_early(void)
Initialise hardware early.
void os_terminate_goodbye(void)
Display statistics and say goodbye before terminating.
Definition: os-main.cpp:187
void os_rtos_application_out_of_memory_hook(void)
Hook to handle out of memory in the application free store.
void os_terminate(int code)
Terminate the application. There is no more life after this.
Definition: exit.c:166
void _start(void)
The standard C application entry point.
Definition: startup.cpp:258
void os_startup_initialize_free_store(void *heap_address, size_t heap_size_bytes)
Initialise free store.