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
22typedef 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