xref: /haiku/headers/private/kernel/arch/arm64/arch_kernel_args.h (revision 4a55cc230cf7566cadcbb23b1928eefff8aea9a2)
1 /*
2 ** Copyright 2021 Haiku, Inc. All rights reserved.
3 ** Distributed under the terms of the MIT License.
4 */
5 #ifndef KERNEL_ARCH_ARM64_KERNEL_ARGS_H
6 #define KERNEL_ARCH_ARM64_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 typedef struct {
23 	uint64	phys_pgdir;
24 	uint64	vir_pgdir;
25 	uint64	next_pagetable;
26 
27 	// The virtual ranges we want to keep in the kernel.
28 	uint32		num_virtual_ranges_to_keep;
29 	addr_range	virtual_ranges_to_keep[MAX_VIRTUAL_RANGES_TO_KEEP];
30 
31 	// needed for UEFI, otherwise kernel acpi support can't find ACPI root
32 	FixedWidthPointer<void>	acpi_root;
33 	FixedWidthPointer<void>	fdt;
34 
35 	uart_info	uart;
36 	intc_info	interrupt_controller;
37 
38 } _PACKED arch_kernel_args;
39 
40 #endif	/* KERNEL_ARCH_ARM64_KERNEL_ARGS_H */
41