aboutsummaryrefslogtreecommitdiffstats
path: root/os/various/cpp_wrappers/ch.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'os/various/cpp_wrappers/ch.cpp')
-rw-r--r--os/various/cpp_wrappers/ch.cpp36
1 files changed, 35 insertions, 1 deletions
diff --git a/os/various/cpp_wrappers/ch.cpp b/os/various/cpp_wrappers/ch.cpp
index b6270d8ba..9dc3f79ca 100644
--- a/os/various/cpp_wrappers/ch.cpp
+++ b/os/various/cpp_wrappers/ch.cpp
@@ -569,8 +569,42 @@ namespace chibios_rt {
return chMBFetchI(&mb, msgp);
}
-
#endif /* CH_USE_MAILBOXES */
+
+#if CH_USE_MEMPOOLS
+ /*------------------------------------------------------------------------*
+ * chibios_rt::MemoryPool *
+ *------------------------------------------------------------------------*/
+ MemoryPool::MemoryPool(size_t size, memgetfunc_t provider) {
+
+ chPoolInit(&pool, size, provider);
+ }
+
+ void MemoryPool::loadArray(void *p, size_t n) {
+
+ chPoolLoadArray(&pool, p, n);
+ }
+
+ void *MemoryPool::allocI(void) {
+
+ return chPoolAlloc(&pool);
+ }
+
+ void *MemoryPool::alloc(void) {
+
+ return chPoolAllocI(&pool);
+ }
+
+ void MemoryPool::free(void *objp) {
+
+ chPoolFree(&pool, objp);
+ }
+
+ void MemoryPool::freeI(void *objp) {
+
+ chPoolFreeI(&pool, objp);
+ }
+#endif /* CH_USE_MEMPOOLS */
}
/** @} */