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