| Index: fusl/src/thread/arm/syscall_cp.s
|
| diff --git a/fusl/src/thread/arm/syscall_cp.s b/fusl/src/thread/arm/syscall_cp.s
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..a5730c08b826334f550055f31703e1c69227af27
|
| --- /dev/null
|
| +++ b/fusl/src/thread/arm/syscall_cp.s
|
| @@ -0,0 +1,29 @@
|
| +.syntax unified
|
| +.global __cp_begin
|
| +.hidden __cp_begin
|
| +.global __cp_end
|
| +.hidden __cp_end
|
| +.global __cp_cancel
|
| +.hidden __cp_cancel
|
| +.hidden __cancel
|
| +.global __syscall_cp_asm
|
| +.hidden __syscall_cp_asm
|
| +.type __syscall_cp_asm,%function
|
| +__syscall_cp_asm:
|
| + mov ip,sp
|
| + stmfd sp!,{r4,r5,r6,r7,lr}
|
| +__cp_begin:
|
| + ldr r0,[r0]
|
| + cmp r0,#0
|
| + blne __cp_cancel
|
| + mov r7,r1
|
| + mov r0,r2
|
| + mov r1,r3
|
| + ldmfd ip,{r2,r3,r4,r5,r6}
|
| + svc 0
|
| +__cp_end:
|
| + ldmfd sp!,{r4,r5,r6,r7,lr}
|
| + bx lr
|
| +__cp_cancel:
|
| + ldmfd sp!,{r4,r5,r6,r7,lr}
|
| + b __cancel
|
|
|