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 29typedef struct bios_drive { 30 struct bios_drive *next; 31 uint16 drive_number; 32 disk_identifier identifier; 33} bios_drive; 34 35typedef 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