#define __LUNAIX_CAKE_H
#include <lunaix/ds/llist.h>
+#include <lunaix/spike.h>
#define PILE_NAME_MAXLEN 20
u32_t alloced_pieces;
u32_t pieces_per_cake;
u32_t pg_per_cake;
- char pile_name[PILE_NAME_MAXLEN];
+ char pile_name[PILE_NAME_MAXLEN+1];
pile_cb ctor;
};
void
cake_ctor_zeroing(struct cake_pile* pile, void* piece);
+#define DEADCAKE_MARK 0xdeadcafeUL
+
+static inline void
+cake_ensure_valid(void* area) {
+ if (unlikely(*(unsigned int*)area == DEADCAKE_MARK)) {
+ fail("access to freed cake piece");
+ }
+}
+
#endif /* __LUNAIX_VALLOC_H */