kernel: Obey "load_symbols" kernel setting.
Somehow this was never implemented...
This commit is contained in:
@@ -25,6 +25,7 @@
|
|||||||
|
|
||||||
#include <AutoDeleter.h>
|
#include <AutoDeleter.h>
|
||||||
#include <commpage.h>
|
#include <commpage.h>
|
||||||
|
#include <driver_settings.h>
|
||||||
#include <boot/kernel_args.h>
|
#include <boot/kernel_args.h>
|
||||||
#include <debug.h>
|
#include <debug.h>
|
||||||
#include <image_defs.h>
|
#include <image_defs.h>
|
||||||
@@ -93,6 +94,7 @@ static mutex sImageMutex = MUTEX_INITIALIZER("kimages_lock");
|
|||||||
static mutex sImageLoadMutex = MUTEX_INITIALIZER("kimages_load_lock");
|
static mutex sImageLoadMutex = MUTEX_INITIALIZER("kimages_load_lock");
|
||||||
// serializes loading/unloading add-ons locking order
|
// serializes loading/unloading add-ons locking order
|
||||||
// sImageLoadMutex -> sImageMutex
|
// sImageLoadMutex -> sImageMutex
|
||||||
|
static bool sLoadElfSymbols = false;
|
||||||
static bool sInitialized = false;
|
static bool sInitialized = false;
|
||||||
|
|
||||||
|
|
||||||
@@ -2393,8 +2395,7 @@ load_kernel_add_on(const char *path)
|
|||||||
vm_unreserve_address_range(VMAddressSpace::KernelID(), reservedAddress,
|
vm_unreserve_address_range(VMAddressSpace::KernelID(), reservedAddress,
|
||||||
reservedSize);
|
reservedSize);
|
||||||
|
|
||||||
// ToDo: this should be enabled by kernel settings!
|
if (sLoadElfSymbols)
|
||||||
if (1)
|
|
||||||
load_elf_symbol_table(fd, image);
|
load_elf_symbol_table(fd, image);
|
||||||
|
|
||||||
free(programHeaders);
|
free(programHeaders);
|
||||||
@@ -2721,12 +2722,19 @@ elf_read_kernel_image_symbols(image_id id, elf_sym* symbolTable,
|
|||||||
|
|
||||||
|
|
||||||
status_t
|
status_t
|
||||||
elf_init(kernel_args *args)
|
elf_init(kernel_args* args)
|
||||||
{
|
{
|
||||||
struct preloaded_image *image;
|
struct preloaded_image* image;
|
||||||
|
|
||||||
image_init();
|
image_init();
|
||||||
|
|
||||||
|
if (void* handle = load_driver_settings("kernel")) {
|
||||||
|
sLoadElfSymbols = get_driver_boolean_parameter(handle, "load_symbols",
|
||||||
|
false, false);
|
||||||
|
|
||||||
|
unload_driver_settings(handle);
|
||||||
|
}
|
||||||
|
|
||||||
sImagesHash = new(std::nothrow) ImageHash();
|
sImagesHash = new(std::nothrow) ImageHash();
|
||||||
if (sImagesHash == NULL)
|
if (sImagesHash == NULL)
|
||||||
return B_NO_MEMORY;
|
return B_NO_MEMORY;
|
||||||
|
|||||||
Reference in New Issue
Block a user