1 /* 2 * Copyright 2002-2005, Axel Dörfler, axeld@pinc-software.de. 3 * Distributed under the terms of the MIT License. 4 * 5 * Copyright 2001-2002, Travis Geiselbrecht. All rights reserved. 6 * Distributed under the terms of the NewOS License. 7 */ 8 #ifndef KERNEL_BOOT_KERNEL_ARGS_H 9 #define KERNEL_BOOT_KERNEL_ARGS_H 10 11 12 #include <SupportDefs.h> 13 14 #include <boot/elf.h> 15 #include <boot/disk_identifier.h> 16 #include <boot/driver_settings.h> 17 18 #include <platform_kernel_args.h> 19 #include <arch_kernel_args.h> 20 21 22 #define CURRENT_KERNEL_ARGS_VERSION 1 23 #define MAX_KERNEL_ARGS_RANGE 8 24 25 typedef struct kernel_args { 26 uint32 kernel_args_size; 27 uint32 version; 28 29 uint32 cons_line; 30 addr_range bootdir_addr; 31 32 struct preloaded_image kernel_image; 33 struct preloaded_image *preloaded_images; 34 35 uint32 num_physical_memory_ranges; 36 addr_range physical_memory_range[MAX_PHYSICAL_MEMORY_RANGE]; 37 uint32 num_physical_allocated_ranges; 38 addr_range physical_allocated_range[MAX_PHYSICAL_ALLOCATED_RANGE]; 39 uint32 num_virtual_allocated_ranges; 40 addr_range virtual_allocated_range[MAX_VIRTUAL_ALLOCATED_RANGE]; 41 uint32 num_kernel_args_ranges; 42 addr_range kernel_args_range[MAX_KERNEL_ARGS_RANGE]; 43 44 uint32 num_cpus; 45 addr_range cpu_kstack[MAX_BOOT_CPUS]; 46 47 struct { 48 disk_identifier identifier; 49 off_t partition_offset; 50 bool user_selected; 51 bool booted_from_image; 52 bool cd; 53 } boot_disk; 54 55 struct driver_settings_file *driver_settings; 56 57 struct { 58 bool enabled; 59 int32 width; 60 int32 height; 61 int32 depth; 62 addr_range physical_buffer; 63 } frame_buffer; 64 65 platform_kernel_args platform_args; 66 arch_kernel_args arch_args; 67 } kernel_args; 68 69 #endif /* KERNEL_BOOT_KERNEL_ARGS_H */ 70