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:
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user