Don't store a KMessage in kernel_args for the boot volume, only the buffer address/size.

Pointers in kernel_args are going to be changed to unconditionally use 64-bit
storage (to make kernel_args compatible with both the x86 and x86_64 kernels).
KMessage stores a pointer to its buffer, however since KMessage is used
outside of the boot code it is undesirable to change it to use 64-bit storage
for the pointer as it may add additional overhead on 32-bit builds. Therefore,
only store the buffer address and size and then construct a KMessage from
those in the kernel.
This commit is contained in:
Alex Smith
2012-06-20 11:53:47 +01:00
parent 7417d5ed8d
commit 93cb9538be
15 changed files with 49 additions and 54 deletions
+3 -3
View File
@@ -18,8 +18,6 @@
#include <platform_kernel_args.h>
#include <arch_kernel_args.h>
#include <util/KMessage.h>
#define CURRENT_KERNEL_ARGS_VERSION 1
#define MAX_KERNEL_ARGS_RANGE 20
@@ -59,7 +57,9 @@ typedef struct kernel_args {
uint32 num_cpus;
addr_range cpu_kstack[MAX_BOOT_CPUS];
KMessage boot_volume;
// boot volume KMessage data
void *boot_volume;
int32 boot_volume_size;
struct driver_settings_file *driver_settings;