Robert Millan wrote:
On Tue, Oct 23, 2007 at 09:06:16PM +0200, Christian Franke wrote:+/* Check memory address */ +static int +addr_is_valid (grub_addr_t addr) +{ + volatile unsigned char * p = (volatile unsigned char *)addr; + unsigned char x, y; + x = *p; + *p = x ^ 0xcf; + y = *p; + *p = x; + return y == (x ^ 0xcf); +} +I have a feeling this might be dangerous. Any comments on the warnings listed here: http://www.osdev.org/wiki/How_Do_I_Determine_The_Amount_Of_RAM#Counting_RAM_by_direct_probing ? Specially the bit about memory-mapped PCI.
This code does not check any memory-mapped PCI. It does only check the boundary returned by the BIOS memory map evaluation code (which didn't work in the E801 case).
Definitely not mandatory, but a IMO recommended assert-type check for experimental code.
Besides, if we really want it, perhaps it should be in a separate file so that other ports can use it if it's needed ?
Good point.
Ah, and why 0xcf instead of 0xff ?
... or 0xaa or 0x55. c.f. :-) _______________________________________________ Grub-devel mailing list [email protected] http://lists.gnu.org/mailman/listinfo/grub-devel
