1 /* 2 * Copyright 2013-2016 Haiku, Inc. All rights reserved. 3 * Distributed under the terms of the MIT License. 4 */ 5 #ifndef KERNEL_BOOT_PLATFORM_EFI_KERNEL_ARGS_H 6 #define KERNEL_BOOT_PLATFORM_EFI_KERNEL_ARGS_H 7 8 9 #ifndef KERNEL_BOOT_KERNEL_ARGS_H 10 # error This file is included from <boot/kernel_args.h> only 11 #endif 12 13 // currently the EFI loader pretends to be the bios_ia32 platform. 14 // not quite right, as the kernel needs to be aware of efi runtime services 15 16 #include <arch/x86/apm.h> 17 #include <boot/disk_identifier.h> 18 #include <util/FixedWidthPointer.h> 19 20 21 #define SMP_MAX_CPUS 64 22 23 #define MAX_PHYSICAL_MEMORY_RANGE 32 24 #define MAX_PHYSICAL_ALLOCATED_RANGE 32 25 #define MAX_VIRTUAL_ALLOCATED_RANGE 32 26 27 #define MAX_SERIAL_PORTS 4 28 29 typedef struct bios_drive { 30 struct bios_drive *next; 31 uint16 drive_number; 32 disk_identifier identifier; 33 } bios_drive; 34 35 typedef struct { 36 uint16 serial_base_ports[MAX_SERIAL_PORTS]; 37 38 FixedWidthPointer<bios_drive> drives; 39 // this does not contain the boot drive 40 // seems to be ignored entirely? 41 42 apm_info apm; 43 } _PACKED platform_kernel_args; 44 45 46 #endif /* KERNEL_BOOT_PLATFORM_BIOS_IA32_KERNEL_ARGS_H */ 47