#include "memsizes.h"
#include "heap.h"
-#define ASSERT(...)
-
struct heap_block {
size_t size;
char data[0];
physaddr_t addr;
struct heap_block *block;
- ASSERT ( ! ( align & ( align - 1 ) ) );
+ ASSERT ( ( align & ( align - 1 ) ) == 0 );
addr = ( ( ( heap_ptr - size ) & ~( align - 1 ) )
- sizeof ( struct heap_block ) );
void efree ( void *ptr ) {
struct heap_block *block;
- ASSERT ( ptr == ( heap_ptr + sizeof ( size_t ) ) );
+ ASSERT ( ptr == phys_to_virt ( heap_ptr + sizeof ( size_t ) ) );
block = ( struct heap_block * )
( ptr - offsetof ( struct heap_block, data ) );
#define DBG2 DBG_PRINT
#endif
+/*
+ * ASSERT() macros
+ *
+ */
+#define ASSERT(x)
+
+#if DEBUG_SYMBOL >= 1
+#undef ASSERT
+#define ASSERT(x) \
+ do { \
+ if ( ! (x) ) { \
+ DBG ( "ASSERT(%s) failed at %s line %d [%s]\n", #x, \
+ __FILE__, __LINE__, __FUNCTION__ ); \
+ } \
+ } while (0)
+#endif
+
#define PACKED __attribute__((packed))
#define __unused __attribute__((unused))
#define __used __attribute__((used))