From 50f3983035a7829cd6e0b0c3adb809bfcfcb0b37 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Tue, 20 Apr 2004 23:45:32 +0000 Subject: [PATCH] Added gKernelEntry variable; it's now set in load_kernel(). Removed start_kernel() function - it's now replaced by the platform_start_kernel() call. Fixed the kernel add-on boot module search path. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7265 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/kernel/boot/loader/loader.cpp | 12 +++--------- src/kernel/boot/loader/loader.h | 3 +-- src/kernel/boot/loader/main.cpp | 3 ++- 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/src/kernel/boot/loader/loader.cpp b/src/kernel/boot/loader/loader.cpp index c1fc86188b..95a035e7ef 100644 --- a/src/kernel/boot/loader/loader.cpp +++ b/src/kernel/boot/loader/loader.cpp @@ -65,6 +65,8 @@ load_kernel(stage2_args *args, Directory *volume) puts("kernel loaded successfully"); + gKernelEntry = image.elf_header.e_entry; + /* void *cookie; if (volume->Open(&cookie, O_RDONLY) == B_OK) { char name[B_FILE_NAME_LENGTH]; @@ -82,7 +84,7 @@ load_modules(stage2_args *args, Directory *volume) { // we don't have readdir() & co. yet... - int fd = open_from(volume, "beos/system/add-ons/boot", O_RDONLY); + int fd = open_from(volume, "beos/system/add-ons/kernel/boot", O_RDONLY); if (fd < B_OK) return fd; @@ -102,11 +104,3 @@ load_modules(stage2_args *args, Directory *volume) return B_OK; } - -void -start_kernel() -{ - // shouldn't return... - panic("starting the kernel is not yet implemented :)"); -} - diff --git a/src/kernel/boot/loader/loader.h b/src/kernel/boot/loader/loader.h index ed8f66be07..126eec875a 100644 --- a/src/kernel/boot/loader/loader.h +++ b/src/kernel/boot/loader/loader.h @@ -1,5 +1,5 @@ /* -** Copyright 2003, Axel Dörfler, axeld@pinc-software.de. All rights reserved. +** Copyright 2003-2004, Axel Dörfler, axeld@pinc-software.de. All rights reserved. ** Distributed under the terms of the OpenBeOS License. */ #ifndef LOADER_H @@ -12,6 +12,5 @@ extern bool is_bootable(Directory *volume); extern status_t load_kernel(stage2_args *args, Directory *volume); extern status_t load_modules(stage2_args *args, Directory *volume); -extern void start_kernel(); #endif /* LOADER_H */ diff --git a/src/kernel/boot/loader/main.cpp b/src/kernel/boot/loader/main.cpp index 5a571b8489..6d39bf8eca 100644 --- a/src/kernel/boot/loader/main.cpp +++ b/src/kernel/boot/loader/main.cpp @@ -25,6 +25,7 @@ kernel_args gKernelArgs; +addr_t gKernelEntry; extern "C" int @@ -96,7 +97,7 @@ main(stage2_args *args) load_modules(args, volume); // ToDo: cleanup, heap_release() etc. - start_kernel(); + platform_start_kernel(); } }