/* XXX Eventually check for collisions. They should NEVER happen. If problems seem to show up, it would be a good start to track them down.  */
static void __init reserve_mem(u64 base, u64 size)
/* XXX Eventually check for collisions. They should NEVER happen. If problems seem to show up, it would be a good start to track them down.  */
static void __init reserve_mem(u64 base, u64 size)
{
	u64 top = base + size;
	unsigned long cnt = RELOC(mem_reserve_cnt);
	if (size == 0)
		return;
	base = _ALIGN_DOWN(base, PAGE_SIZE);
	top = _ALIGN_UP(top, PAGE_SIZE);
	size = top - base;
	if (cnt >= (MEM_RESERVE_MAP_SIZE - 1))
		prom_panic("Memory reserve map exhausted !\n");
	RELOC(mem_reserve_map)[cnt].base = base;
	RELOC(mem_reserve_map)[cnt].size = size;
	RELOC(mem_reserve_cnt) = cnt + 1;
}