X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FKernel%2Farch%2Fx86_64%2Fproc.asm;h=afde3544dc9c821848cb51ea9e68332f9c926dc3;hb=09a02836dd9b51edc0f9fc73375fa9d90252a97d;hp=f44d65b012fccb04af434de6d101bc5594cf4765;hpb=c040a99e085bfeaac5146ed68a44d8c1e2ce9936;p=tpg%2Facess2.git diff --git a/KernelLand/Kernel/arch/x86_64/proc.asm b/KernelLand/Kernel/arch/x86_64/proc.asm index f44d65b0..afde3544 100644 --- a/KernelLand/Kernel/arch/x86_64/proc.asm +++ b/KernelLand/Kernel/arch/x86_64/proc.asm @@ -6,6 +6,8 @@ [section .text] [extern Threads_Exit] +[extern glThreadListLock] +[extern SHORTREL] [global GetRIP] GetRIP: @@ -18,6 +20,9 @@ NewTaskHeader: ; [rsp+0x08]: Function ; [rsp+0x10]: Argument + mov rdi, glThreadListLock + call SHORTREL + mov rdi, [rsp+0x10] mov rax, [rsp+0x8] add rsp, 0x10 ; Reclaim stack space (thread/fcn) @@ -39,6 +44,8 @@ Proc_CloneInt: PUSH_GPR ; Save RSP mov [rdi], rsp + ; Call MM_Clone (with bNoUserCopy flag) + mov rdi, rdx call MM_Clone ; Save CR3 mov rsi, [rsp+0x30] ; Saved version of RSI @@ -145,4 +152,15 @@ Proc_RestoreSSE: fxrstor [rdi] ret +[section .usertext] + +[global User_Signal_Kill] +User_Signal_Kill: + xor rax, rax + mov bx, di + mov bh, 0x02 + int 0xAC + jmp $ + + ; vim: ft=nasm