diff --git a/src/core/heap.c b/src/core/heap.c index 0c8a9ac83..d9a7efec7 100644 --- a/src/core/heap.c +++ b/src/core/heap.c @@ -13,7 +13,7 @@ struct heap_block { extern char _text[]; extern char _end[]; -static physaddr_t heap_start, heap_end, heap_ptr; +static physaddr_t heap_start; /* * Find the largest contiguous area of memory that I can use for the diff --git a/src/include/heap.h b/src/include/heap.h index 448ce5e0b..fbd3f643c 100644 --- a/src/include/heap.h +++ b/src/include/heap.h @@ -80,4 +80,13 @@ static inline void forget2 ( void *ptr ) { efree ( ptr ); } +/* + * Heap markers. osloader.c and other code may wish to know the heap + * location, without necessarily wanting to drag in heap.o. We + * therefore declare these as shared (i.e. common) symbols. + * + */ +physaddr_t heap_ptr __asm__ ( "_shared_heap_ptr" ); +physaddr_t heap_end __asm__ ( "_shared_heap_end" ); + #endif /* HEAP_H */