Changes to kernel_args to make it identical for x86 and x86_64.
* Added a FixedWidthPointer template class which uses 64-bit storage to hold a pointer. This is used in place of raw pointers in kernel_args. * Added __attribute__((packed)) to kernel_args and all structures contained within it. This is necessary due to different alignment behaviour for 32-bit and 64-bit compilation with GCC. * With these changes, kernel_args will now come out the same size for both the x86_64 kernel and the loader, excluding the preloaded_image structure which has not yet been changed. * Tested both an x86 GCC2 and GCC4 build, no problems caused by these changes.
This commit is contained in:
@@ -13,13 +13,13 @@
|
||||
typedef struct addr_range {
|
||||
uint64 start;
|
||||
uint64 size;
|
||||
} addr_range;
|
||||
} _PACKED addr_range;
|
||||
|
||||
|
||||
typedef struct phys_addr_range {
|
||||
phys_addr_t start;
|
||||
phys_size_t size;
|
||||
} phys_addr_range;
|
||||
} _PACKED phys_addr_range;
|
||||
|
||||
|
||||
#ifdef __cplusplus
|
||||
|
||||
Reference in New Issue
Block a user