xref: /haiku/headers/private/kernel/arch/arm/arch_kernel_args.h (revision 9e25244c5e9051f6cd333820d6332397361abd6c)
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_ARM_KERNEL_ARGS_H
6 #define KERNEL_ARCH_ARM_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 
13 #include <util/FixedWidthPointer.h>
14 #include <boot/interrupt_controller.h>
15 #include <boot/uart.h>
16 
17 
18 #define _PACKED __attribute__((packed))
19 
20 #define MAX_VIRTUAL_RANGES_TO_KEEP	32
21 
22 
23 // kernel args
24 typedef struct {
25 	int		cpu_type;
26 	int		fpu_type;
27 	int		mmu_type;
28 	int		platform;
29 	int		machine; // platform specific machine type
30 
31 	// architecture specific
32 	uint32	phys_pgdir;
33 	uint32	vir_pgdir;
34 	uint32	next_pagetable;
35 	uint32	last_pagetable;
36 
37 	// The virtual ranges we want to keep in the kernel.
38 	uint32		num_virtual_ranges_to_keep;
39 	addr_range	virtual_ranges_to_keep[MAX_VIRTUAL_RANGES_TO_KEEP];
40 
41 	// needed for UEFI, otherwise kernel acpi support can't find ACPI root
42 	FixedWidthPointer<void> acpi_root;
43 	FixedWidthPointer<void> fdt;
44 
45 	uart_info	uart;
46 	intc_info	interrupt_controller;
47 } _PACKED arch_kernel_args;
48 
49 #endif	/* KERNEL_ARCH_ARM_KERNEL_ARGS_H */
50