Several addresses are actually on 32 bits, such as in
typedef struct {
u32 flags;
u32 mem_lower;
u32 mem_upper;
u32 boot_device;
u32 cmdline;
u32 mods_count;
u32 mods_addr;
union {
aout_symbol_table_t aout_sym;
elf_section_header_table_t elf_sec;
} u;
u32 mmap_length;
u32 mmap_addr;
} multiboot_info_t
However, on x86_64 using gcc, addresses as well as unsigned long are 64
bits long.
It seems that luckily mmap_addr is below 2*32-1, making the u32 type
acceptable
so far (for instance in function __start_xen, where the memory map is
turned into
another structure) but what would it cost to change it into u64 ?
After all, the multiboot specification (page 18) has ''unsigned
long''
instead of u32 here.
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
Several addresses are actually on 32 bits, such as in
typedef struct {
u32 flags;
u32 mem_lower;
u32 mem_upper;
u32 boot_device;
u32 cmdline;
u32 mods_count;
u32 mods_addr;
union {
aout_symbol_table_t aout_sym;
elf_section_header_table_t elf_sec;
} u;
u32 mmap_length;
u32 mmap_addr;
} multiboot_info_t
However, on x86_64 using gcc, addresses as well as unsigned long are 64
bits long.
It seems that luckily mmap_addr is below 2*32-1, making the u32 type
acceptable
so far (for instance in function __start_xen, where the memory map is
turned into
another structure) but what would it cost to change it into u64 ?
After all, the multiboot specification (page 18) has ''unsigned
long''
instead of u32 here.
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
> > However, on x86_64 using gcc, addresses as well as unsigned long are > 64 bits long. > > It seems that luckily mmap_addr is below 2*32-1, making the u32 type > acceptable > so far (for instance in function __start_xen, where the memory map is > turned into > another structure) but what would it cost to change it into u64 ? > After all, the multiboot specification (page 18) has ''unsigned long'' > instead of u32 here.That info will never be placed above 4GB, or the info would not be available to non-pae non-x86/64 OSes. -- Keir _______________________________________________ Xen-devel mailing list Xen-devel@lists.xensource.com http://lists.xensource.com/xen-devel