Subversion Repositories HelenOS-historic

Compare Revisions

Ignore whitespace Rev 1036 → Rev 1037

/kernel/trunk/arch/amd64/src/boot/boot.S
172,8 → 172,8
addq $0xffffffff80000000, %rdx
mods_invalid:
movq %rcx, init_size
movq %rdx, init_addr
# movq %rcx, init_size
# movq %rdx, init_addr
bt $6, %eax # mbi->flags[6] (mmap_length, mmap_addr valid)
jc mmap_valid
/kernel/trunk/arch/mips32/src/mips32.c
93,9 → 93,11
 
console_init();
debugger_init();
/* Setup usermode...*/
config.init_addr = INIT_ADDRESS;
config.init_size = INIT_SIZE;
/* Setup usermode */
init.cnt = 1;
init.tasks[0].addr = INIT_ADDRESS;
init.tasks[0].size = INIT_SIZE;
}
 
void arch_post_mm_init(void)
/kernel/trunk/arch/ia32/src/boot/boot.S
99,28 → 99,41
mem_invalid:
movl %ecx, e801memorysize
bt $3, %eax # mbi->flags[3] (mods_count, mods_addr valid)
bt $3, %eax # mbi->flags[3] (mods_count, mods_addr valid)
jc mods_valid
xorl %ecx, %ecx
xorl %edx, %edx
jmp mods_invalid
movl %ecx, init
jmp mods_end
mods_valid:
movl 20(%ebx), %ecx # mbi->mods_count
movl %ecx, init
cmpl $0, %ecx
je mods_invalid
je mods_end
movl 24(%ebx), %esi # mbi->mods_addr
movl 0(%esi), %edx # mods->mod_start
movl 4(%esi), %ecx # mods->mod_end
subl %edx, %ecx
addl $0x80000000, %edx
movl $init, %edi
mods_invalid:
movl %ecx, init_size
movl %edx, init_addr
mods_loop:
movl 0(%esi), %edx # mods->mod_start
addl $0x80000000, %edx
movl %edx, 4(%edi)
movl 4(%esi), %edx
subl 0(%esi), %edx # mods->mod_end - mods->mod_start
movl %edx, 8(%edi)
addl $16, %esi
addl $8 , %edi
loop mods_loop
mods_end:
bt $6, %eax # mbi->flags[6] (mmap_length, mmap_addr valid)
jc mmap_valid