.section .text.forth.root-process
// Starts executing the root process.
.global root_process.start
root_process.start:
mov x16, #0
mov x17, #0
mov x18, #0
mov x19, #0
ldr x21, =root_process.context
add x22, x21, #0x200
mov x23, x22
add x25, x21, #0x100
mov x26, x25
b forth.__root_process
.section .data.forth.root-process
.p2align 8, 0
.global root_process.context
root_process.context:
.quad 0 // Low 64 Bits of PID
.fill 1, 8 // Saved Forth Insn Pointer
.quad root_process.dictionary // Dict Pointer
.quad root_process.dictionary.len // Dict Remaining Length
.quad forth.__last_pseudobuiltin.header // Last Defined Header
.fill 1, 8 // Process Flags
.quad root_process.source // Source Address
.quad root_process.source.len // Source Length
.fill 24, 8, 0
root_process.context.return_stack:
.fill 256, 1, 0
root_process.context.stack:
.fill 512, 1, 0
root_process.context.exn_return_stack:
.fill 256, 1, 0
root_process.context.exn_stack:
.fill 512, 1, 0
root_process.context.exn_cpu_stack:
.fill 256, 1, 0
.section .data.forth.root-process
.global root_process.data, root_process.data.devicetree_ptr
root_process.data:
root_process.data.devicetree_ptr: .quad 0
root_process.data.kernel_start: .quad kernel_start
root_process.data.kernel_length: .quad kernel_length
.section .bss.forth.root-process.dictionary
.align 8
root_process.dictionary: .skip 1024*1024
.set root_process.dictionary.len, . - root_process.dictionary
// vi: set ft=arm64asm :