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