diff options
Diffstat (limited to 'os/kernel/include')
-rw-r--r-- | os/kernel/include/heap.h | 17 | ||||
-rw-r--r-- | os/kernel/include/memcore.h | 7 |
2 files changed, 11 insertions, 13 deletions
diff --git a/os/kernel/include/heap.h b/os/kernel/include/heap.h index c044f47c7..0ebe1d7b5 100644 --- a/os/kernel/include/heap.h +++ b/os/kernel/include/heap.h @@ -46,12 +46,15 @@ typedef struct memory_heap MemoryHeap; /**
* @brief Memory heap block header.
*/
-struct heap_header {
- union {
- struct heap_header *next; /**< @brief Next block in free list. */
- MemoryHeap *heap; /**< @brief Block owner heap. */
- } h_u; /**< @brief Overlapped fields. */
- size_t h_size; /**< @brief Size of the memory block. */
+union heap_header {
+ stkalign_t align;
+ struct {
+ union {
+ union heap_header *next; /**< @brief Next block in free list. */
+ MemoryHeap *heap; /**< @brief Block owner heap. */
+ } u; /**< @brief Overlapped fields. */
+ size_t size; /**< @brief Size of the memory block. */
+ } h;
};
/**
@@ -60,7 +63,7 @@ struct heap_header { struct memory_heap {
memgetfunc_t h_provider; /**< @brief Memory blocks provider for
this heap. */
- struct heap_header h_free; /**< @brief Free blocks list header. */
+ union heap_header h_free; /**< @brief Free blocks list header. */
#if CH_USE_MUTEXES
Mutex h_mtx; /**< @brief Heap access mutex. */
#else
diff --git a/os/kernel/include/memcore.h b/os/kernel/include/memcore.h index 9fc8d7a44..c0aa9c9a2 100644 --- a/os/kernel/include/memcore.h +++ b/os/kernel/include/memcore.h @@ -29,11 +29,6 @@ #define _MEMCORE_H_
/**
- * @brief Memory alignment type.
- */
-typedef void *align_t;
-
-/**
* @brief Memory get function.
* @note This type must be assignment compatible with the @p chMemAlloc()
* function.
@@ -43,7 +38,7 @@ typedef void *(*memgetfunc_t)(size_t size); /**
* @brief Alignment mask constant.
*/
-#define MEM_ALIGN_MASK (sizeof(align_t) - 1)
+#define MEM_ALIGN_MASK (sizeof(stkalign_t) - 1)
/**
* @brief Alignment helper macro.
|