kern
view src/boot/mboot.S @ 56:0be4615594df
finally, runqueues, blocking, waking up, idle loop etc, all seem to work fine
on a single user process... Next up: try forking another one :)
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Mon, 15 Aug 2011 06:17:58 +0300 |
parents | 7f9af8cddc96 |
children |
line source
1 #define MAGIC 0x1badb002
2 /* flags with bit 1 set means we need memory info */
3 #define FLAGS 2
4 #define STACK_SIZE 0x4000
6 .text
7 .align 4
9 /* multiboot header */
10 .long MAGIC
11 .long FLAGS
12 .long -(MAGIC + FLAGS) /* checksum */
14 .globl kentry
15 kentry:
16 /* setup a temporary kernel stack */
17 movl $(stack + STACK_SIZE), %esp
18 /* reset eflags register */
19 pushl $0
20 popf
21 /* call the kernel main function. ebx points to the
22 * multiboot information structure */
23 push %ebx
24 call kmain
25 /* we dropped out of main, halt the CPU */
26 cli
27 hlt
29 /* space for the temporary kernel stack */
30 .comm stack, STACK_SIZE