xref: /haiku/headers/private/kernel/boot/platform/efi/platform_kernel_args.h (revision f4ff9cb02c1d292908407314ed023af25e0995da)
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