1
Lowlevel-Coding / Re: grub2 memorymap trouble
« am: 02. December 2013, 20:39 »Ich hab nun keine Ahnung von D oder D2, aber in C wäre das hier nicht korrekt (sofern das 1:1 übersetzbar ist):Code: [Auswählen]ulong entryAddr = cast(ulong)(memMap + memMap.tagType.sizeof + memMap.tagSize.sizeof + memMap.entrySize.sizeof + memMap.entryVersion.sizeof);
Im Prinzip wird da ja 16 auf den Zeiger memMap addiert. In C würde dann entryAddr aber nicht wie gewünscht die Adresse von memMap + 16 Bytes enthalten, sondern auf das 16-te TagMemoryMap hinter memMap zeigen, also 256 Bytes hinter memMap.
hi jidder!
du hast natürlich recht mit dem hinweis auf die pointerarithmetik und dein vorschlag behebt das problem.
Code: [Auswählen]
* * Available memory: 0x0; length: 651264
* * Reserved memory: 0x9f000; length: 4096
* * Reserved memory: 0xe8000; length: 98304
* * Available memory: 0x100000; length: 535756800
* * ACPI reclaimable memory: 0x1fff0000; length: 65536
* * Reserved memory: 0xfffc0000; length: 262144
so solls aussehn. merci
