diff --git a/headers/private/kernel/boot/kernel_args.h b/headers/private/kernel/boot/kernel_args.h index 6ae660e6a1..24aa866772 100644 --- a/headers/private/kernel/boot/kernel_args.h +++ b/headers/private/kernel/boot/kernel_args.h @@ -1,5 +1,5 @@ /* - * Copyright 2002-2005, Axel Dörfler, axeld@pinc-software.de. + * Copyright 2002-2006, Axel Dörfler, axeld@pinc-software.de. * Distributed under the terms of the MIT License. * * Copyright 2001-2002, Travis Geiselbrecht. All rights reserved. @@ -20,7 +20,7 @@ #define CURRENT_KERNEL_ARGS_VERSION 1 -#define MAX_KERNEL_ARGS_RANGE 8 +#define MAX_KERNEL_ARGS_RANGE 16 typedef struct kernel_args { uint32 kernel_args_size; diff --git a/src/system/boot/loader/kernel_args.cpp b/src/system/boot/loader/kernel_args.cpp index 8212959b2f..6007fec2bd 100644 --- a/src/system/boot/loader/kernel_args.cpp +++ b/src/system/boot/loader/kernel_args.cpp @@ -1,7 +1,7 @@ /* -** Copyright 2004, Axel Dörfler, axeld@pinc-software.de. All rights reserved. -** Distributed under the terms of the Haiku License. -*/ + * Copyright 2004-2006, Axel Dörfler, axeld@pinc-software.de. All rights reserved. + * Distributed under the terms of the MIT License. + */ #include @@ -13,7 +13,7 @@ #include -static const size_t kChunkSize = 16384; +static const size_t kChunkSize = 4 * B_PAGE_SIZE; kernel_args gKernelArgs; @@ -126,8 +126,8 @@ static status_t add_kernel_args_range(void *start, uint32 size) { return insert_address_range(gKernelArgs.kernel_args_range, - &gKernelArgs.num_kernel_args_ranges, MAX_KERNEL_ARGS_RANGE, - (addr_t)start, size); + &gKernelArgs.num_kernel_args_ranges, MAX_KERNEL_ARGS_RANGE, + (addr_t)start, size); } @@ -140,6 +140,8 @@ add_kernel_args_range(void *start, uint32 size) extern "C" void * kernel_args_malloc(size_t size) { + //dprintf("kernel_args_malloc(): %ld bytes (%ld bytes left)\n", size, sFree); + if (sFirstFree != NULL && size <= sFree) { // there is enough space in the current buffer void *address = sFirstFree;