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