1/*
2** Copyright 2003, Axel D��rfler, axeld@pinc-software.de. All rights reserved.
3** Distributed under the terms of the MIT License.
4*/
5#ifndef KERNEL_ARCH_PPC_KERNEL_ARGS_H
6#define KERNEL_ARCH_PPC_KERNEL_ARGS_H
7
8#ifndef KERNEL_BOOT_KERNEL_ARGS_H
9#	error This file is included from <boot/kernel_args.h> only
10#endif
11
12#define _PACKED __attribute__((packed))
13
14#define MAX_VIRTUAL_RANGES_TO_KEEP	32
15
16// kernel args
17typedef struct {
18	// architecture specific
19	uint64		cpu_frequency;
20	uint64		bus_frequency;
21	uint64		time_base_frequency;
22
23	addr_range	page_table;		// virtual address and size of the page table
24	addr_range	exception_handlers;
25	addr_range	framebuffer;		// maps where the framebuffer is located, in physical memory
26	int 		screen_x, screen_y, screen_depth;
27
28	// The virtual ranges we want to keep in the kernel. E.g. those belonging
29	// to the Open Firmware.
30	uint32		num_virtual_ranges_to_keep;
31	addr_range	virtual_ranges_to_keep[MAX_VIRTUAL_RANGES_TO_KEEP];
32
33	// platform type we booted from
34	int			platform;
35} arch_kernel_args;
36
37#endif	/* KERNEL_ARCH_PPC_KERNEL_ARGS_H */
38