Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 284 → Rev 285

/SPARTAN/trunk/arch/ia32/src/boot/memmap.S
29,8 → 29,6
 
#include <arch/boot/memmapasm.h>
 
E820_RECORD_SIZE = MEMMAP_E820_RECORD_SIZE
E820_MAX_RECORDS = MEMMAP_E820_MAX_RECORDS
E820_SMAP = 0x534d4150
 
.global memmap_arch_init
46,12 → 44,12
movw %bx,%ds
movw %bx,%es
movw $e820table_boot,%di
movb $E820_MAX_RECORDS,e820counter_boot
movb $MEMMAP_E820_MAX_RECORDS,e820counter_boot
e820loop:
movl $E820_SMAP,%edx # control sequence "SMAP"
 
movl $0x0000e820,%eax # service
movl $E820_RECORD_SIZE,%ecx
movl $MEMMAP_E820_RECORD_SIZE,%ecx
int $0x15
jc e820err
58,11 → 56,11
cmpl $E820_SMAP,%eax # verifying BIOS
jne e820err
 
cmpl $E820_RECORD_SIZE,%ecx
cmpl $MEMMAP_E820_RECORD_SIZE,%ecx
jne e820err # bad record size - bug in bios
movw %di,%ax # next record
addw $E820_RECORD_SIZE,%ax
addw $MEMMAP_E820_RECORD_SIZE,%ax
movw %ax,%di
decb e820counter_boot # buffer is full
72,7 → 70,7
jne e820loop
e820end:
movb $E820_MAX_RECORDS,%al
movb $MEMMAP_E820_MAX_RECORDS,%al
subb e820counter_boot,%al
movb %al,e820counter_boot # store # of valid entries in e820counter