From 79dd9caf61ca8dd4146b5fffa808636439fe7537 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Tue, 7 Oct 2003 21:58:48 +0000 Subject: [PATCH] Moved the kernel_args structure to the new kernel_args.h header file. stage2.h is now of interest for the stage2 boot loader only. stage2_struct.h is no longer needed. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4959 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- headers/private/kernel/boot/kernel_args.h | 48 +++++++++++++++++++++++ headers/private/kernel/boot/stage2.h | 41 ++++++------------- 2 files changed, 60 insertions(+), 29 deletions(-) create mode 100644 headers/private/kernel/boot/kernel_args.h diff --git a/headers/private/kernel/boot/kernel_args.h b/headers/private/kernel/boot/kernel_args.h new file mode 100644 index 0000000000..98f61b28d4 --- /dev/null +++ b/headers/private/kernel/boot/kernel_args.h @@ -0,0 +1,48 @@ +/* +** Copyright 2001-2002, Travis Geiselbrecht. All rights reserved. +** Distributed under the terms of the NewOS License. +*/ +#ifndef KERNEL_BOOT_KERNEL_ARGS_H +#define KERNEL_BOOT_KERNEL_ARGS_H + + +#include +#include + + +typedef struct address_range { + uint32 start; + uint32 size; +} addr_range; + +typedef struct kernel_args { + uint32 cons_line; + char *str; + addr_range bootdir_addr; + addr_range kernel_seg0_addr; + addr_range kernel_seg1_addr; + addr_range kernel_dynamic_section_addr; + + uint32 num_physical_memory_ranges; + addr_range physical_memory_range[MAX_PHYSICAL_MEMORY_RANGE]; + uint32 num_physical_allocated_ranges; + addr_range physical_allocated_range[MAX_PHYSICAL_ALLOCATED_RANGE]; + uint32 num_virtual_allocated_ranges; + addr_range virtual_allocated_range[MAX_VIRTUAL_ALLOCATED_RANGE]; + + uint32 num_cpus; + addr_range cpu_kstack[MAX_BOOT_CPUS]; + + platform_kernel_args platform_args; + + struct framebuffer { + int enabled; + int x_size; + int y_size; + int bit_depth; + int already_mapped; + addr_range mapping; + } fb; +} kernel_args; + +#endif /* KERNEL_BOOT_KERNEL_ARGS_H */ diff --git a/headers/private/kernel/boot/stage2.h b/headers/private/kernel/boot/stage2.h index d832dc8f54..75b98a0a1a 100644 --- a/headers/private/kernel/boot/stage2.h +++ b/headers/private/kernel/boot/stage2.h @@ -6,39 +6,22 @@ #ifndef KERNEL_BOOT_STAGE2_H #define KERNEL_BOOT_STAGE2_H -// this file declares stuff like addr_range, MAX_*, etc. -#include -#include + +#include -// kernel args -typedef struct kernel_args { - uint32 cons_line; - char *str; - addr_range bootdir_addr; - addr_range kernel_seg0_addr; - addr_range kernel_seg1_addr; - addr_range kernel_dynamic_section_addr; - uint32 num_phys_mem_ranges; +struct stage2_args; +extern struct kernel_args gKernelArgs; - addr_range phys_mem_range[MAX_PHYS_MEM_ADDR_RANGE]; - uint32 num_phys_alloc_ranges; - addr_range phys_alloc_range[MAX_PHYS_ALLOC_ADDR_RANGE]; - uint32 num_virt_alloc_ranges; - addr_range virt_alloc_range[MAX_VIRT_ALLOC_ADDR_RANGE]; - uint32 num_cpus; - addr_range cpu_kstack[MAX_BOOT_CPUS]; - arch_kernel_args arch_args; +#ifdef __cplusplus +extern "C" { +#endif - struct framebuffer { - int enabled; - int x_size; - int y_size; - int bit_depth; - int already_mapped; - addr_range mapping; - } fb; -} kernel_args; +extern int main(struct stage2_args *args); + +#ifdef __cplusplus +} +#endif #endif /* KERNEL_BOOT_STAGE2_H */