1/* 2 * Copyright 2003, Axel D��rfler, axeld@pinc-software.de. 3 * All rights reserved. Distributed under the terms of the MIT License. 4 */ 5 6 7#include <OS.h> 8 9#include <boot/platform.h> 10#include <boot/heap.h> 11#include <boot/stdio.h> 12#include <platform/openfirmware/openfirmware.h> 13 14 15//#define TRACE_HEAP 1 16#if TRACE_HEAP 17# define TRACE(x) printf x 18#else 19# define TRACE(x) ; 20#endif 21 22 23status_t 24platform_init_heap(stage2_args *args, void **_base, void **_top) 25{ 26 TRACE(("platform_init_heap()\n")); 27 28 *_base = NULL; 29 status_t error = platform_allocate_region(_base, args->heap_size, 30 B_READ_AREA | B_WRITE_AREA, false); 31 if (error != B_OK) 32 return error; 33 34 printf("heap base = %p\n", *_base); 35 *_top = (void *)((int8 *)*_base + args->heap_size); 36 printf("heap top = %p\n", *_top); 37 38 return B_OK; 39} 40 41 42void 43platform_release_heap(stage2_args *args, void *base) 44{ 45 if (base != NULL) 46 platform_free_region(base, args->heap_size); 47} 48 49