3 * - By John Hodge (thePowersGang)
6 * - Process management assembly
9 #include "include/assembly.h"
11 .globl KernelThreadHeader
13 @ SP+8: Argument Count
15 @ SP+0: Thread Pointer
18 @ TODO: Do something with the thread pointer
20 ldr r4, [sp],#4 @ Function
38 .globl Proc_int_DropToUser
48 @ R1: Pointer to where to save old stack
50 @ R3: Pointer to save old IP
51 @ SP+0: New address space
61 @ Only update TTBR0 if the task has an explicit address space
64 mcrne p15, 0, r1, c2, c0, 0 @ Set TTBR0 to r0
81 mov r4, r1 @ Save mem destination
82 str sp, [r0] @ Save SP to SP dest
85 str r0, [r4] @ Save clone return to Mem Dest
87 ldr r0, =Proc_CloneInt_new
97 @ ldr r0, =csProc_CloneInt_NewTaskMessage
106 csProc_CloneInt_NewTaskMessage: