The boot loader does now set the names of the images it loads to the

full paths.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27665 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Ingo Weinhold 2008-09-21 13:00:31 +00:00
parent 6aa2c9ecf1
commit b34e395eaf
3 changed files with 15 additions and 7 deletions

View File

@ -126,9 +126,9 @@ load_elf_symbol_table(int fd, preloaded_image *image)
status = B_ERROR;
goto error1;
}
// find symbol table in section headers
for (int32 i = 0; i < elfHeader.e_shnum; i++) {
if (sectionHeaders[i].sh_type == SHT_SYMTAB) {
stringHeader = &sectionHeaders[sectionHeaders[i].sh_link];
@ -423,7 +423,11 @@ elf_load_image(Directory *directory, const char *path)
status_t status = elf_load_image(fd, image);
if (status == B_OK) {
image->name = kernel_args_strdup(path);
char tmpPath[B_PATH_NAME_LENGTH];
if (directory->GetPath(path, tmpPath, sizeof(tmpPath)) == B_OK)
image->name = kernel_args_strdup(tmpPath);
else
image->name = kernel_args_strdup(path);
image->inode = stat.st_ino;
// insert to kernel args

View File

@ -51,7 +51,7 @@ is_bootable(Directory *volume)
}
status_t
status_t
load_kernel(stage2_args *args, Directory *volume)
{
int fd = open_from(volume, KERNEL_PATH, O_RDONLY);
@ -75,6 +75,12 @@ load_kernel(stage2_args *args, Directory *volume)
return status;
}
char tmpPath[B_PATH_NAME_LENGTH];
if (volume->GetPath(KERNEL_PATH, tmpPath, sizeof(tmpPath)) == B_OK)
gKernelArgs.kernel_image.name = kernel_args_strdup(tmpPath);
else
gKernelArgs.kernel_image.name = kernel_args_strdup("kernel");
return B_OK;
}
@ -162,7 +168,7 @@ load_module(Directory *volume, const char *name)
}
status_t
status_t
load_modules(stage2_args *args, Directory *volume)
{
int32 failed = 0;

View File

@ -4052,8 +4052,6 @@ vm_init(kernel_args *args)
allocate_kernel_args(args);
args->kernel_image.name = "kernel";
// the lazy boot loader currently doesn't set the kernel's name...
create_preloaded_image_areas(&args->kernel_image);
// allocate areas for preloaded images