µOS++ IIIe Reference 7.0.0
The third edition of µOS++, a POSIX inspired open source framework, written in C++
Loading...
Searching...
No Matches
os-inlines.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_INLINES_H_
29#define CMSIS_PLUS_RTOS_OS_INLINES_H_
30
31/*
32 * References are to ISO/IEC 14882:2011(E) Third edition (2011-09-01)
33 */
34
35// ----------------------------------------------------------------------------
36
37#if defined(__cplusplus)
38
39// ----------------------------------------------------------------------------
40
41namespace os
42{
43 namespace rtos
44 {
45 namespace internal
46 {
58 inline void*
59 object_named_system::operator new (std::size_t bytes)
60 {
61 assert (!interrupts::in_handler_mode ());
62
64 }
65
76 inline void*
77 object_named_system::operator new[] (std::size_t bytes)
78 {
79 // Forward array allocation to single element allocation.
80 return operator new (bytes);
81 }
82
95 inline void*
96 object_named_system::operator new (std::size_t, void* ptr)
97 {
98 return ptr;
99 }
100
112 inline void*
113 object_named_system::operator new[] (std::size_t bytes, void* ptr)
114 {
115 // Forward array allocation to single element allocation.
116 return operator new (bytes, ptr);
117 }
118
136 inline void
137 object_named_system::operator delete (void* ptr, std::size_t bytes)
138 {
139 assert (!interrupts::in_handler_mode ());
140
142 static_cast<char*> (ptr), bytes);
143 }
144
157 inline void
158 object_named_system::operator delete[] (void* ptr, std::size_t bytes)
159 {
160 // Forward array deallocation to single element deallocation.
161 operator delete (ptr, bytes);
162 }
163
164 } /* namespace internal */
165 } /* namespace rtos */
166} /* namespace os */
167
168// ----------------------------------------------------------------------------
169
170#endif /* __cplusplus */
171
172// ----------------------------------------------------------------------------
173
174#endif /* CMSIS_PLUS_RTOS_OS_INLINES_H_ */
Standard allocator based on the RTOS system default memory manager.
Definition os-memory.h:544
void deallocate(value_type *addr, std::size_t elements) noexcept
Deallocate the number of memory blocks of type value_type.
value_type * allocate(std::size_t elements)
Allocate a number of memory blocks of type value_type.
bool in_handler_mode(void)
Check if the CPU is in handler mode.
Definition os-sched.h:1136
System namespace.