aboutsummaryrefslogtreecommitdiffstats
path: root/os/various/cpp_wrappers/ch.cpp
diff options
context:
space:
mode:
authorgdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2013-01-02 18:42:39 +0000
committergdisirio <gdisirio@35acf78f-673a-0410-8e92-d51de3d6d3f4>2013-01-02 18:42:39 +0000
commit3edb2cf5532bf7c1c43cc2a839d3d0a15e6d7a6a (patch)
tree4ccaa2d3c320fbd1031d4b41d6367f6cbef03781 /os/various/cpp_wrappers/ch.cpp
parent7e137d9cf21ede3282a5993a51eee702ff5a420d (diff)
downloadChibiOS-3edb2cf5532bf7c1c43cc2a839d3d0a15e6d7a6a.tar.gz
ChibiOS-3edb2cf5532bf7c1c43cc2a839d3d0a15e6d7a6a.tar.bz2
ChibiOS-3edb2cf5532bf7c1c43cc2a839d3d0a15e6d7a6a.zip
Added memory pools to the C++ wrapper.
git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@5020 35acf78f-673a-0410-8e92-d51de3d6d3f4
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 */
}
/** @} */