git.ucc.asn.au
/
tpg
/
acess2.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Usermode/AxWin3 - Updated clientside IPC code to allow select() usage by client
[tpg/acess2.git]
/
Usermode
/
Libraries
/
ld-acess.so_src
/
arch
/
x86.asm.h
diff --git
a/Usermode/Libraries/ld-acess.so_src/arch/x86.asm.h
b/Usermode/Libraries/ld-acess.so_src/arch/x86.asm.h
index
a569637
..
1732799
100644
(file)
--- a/
Usermode/Libraries/ld-acess.so_src/arch/x86.asm.h
+++ b/
Usermode/Libraries/ld-acess.so_src/arch/x86.asm.h
@@
-2,8
+2,6
@@
; AcssMicro - System Calls
; ========================
; AcssMicro - System Calls
; ========================
-%include "../../../Kernel/include/syscalls.inc.asm"
-
[bits 32]
[section .data]
[global _errno:data 4]
[bits 32]
[section .data]
[global _errno:data 4]
@@
-14,11
+12,8
@@
_errno: dw 0
[extern SoMain]
_start:
call SoMain
[extern SoMain]
_start:
call SoMain
-
- add esp, 4
+ add esp, 4 ; // Base address
call eax
call eax
-
- push eax
call _exit
; DEST
call _exit
; DEST
@@
-161,6
+156,7
@@
clone:
push ebp
mov ebp, esp
push ebx
push ebp
mov ebp, esp
push ebx
+ push edx
mov ebx, [ebp+12] ; Get new stack pointer
mov ebx, [ebp+12] ; Get new stack pointer
@@
-192,11
+188,20
@@
clone:
sub ebx, 12
%endif
.doCall:
sub ebx, 12
%endif
.doCall:
+ mov edx, ebx ; Save new stack
mov eax, SYS_CLONE
mov ecx, ebx ; Stack
mov ebx, [ebp+8] ; Flags
SYSCALL_OP
mov [_errno], ebx
mov eax, SYS_CLONE
mov ecx, ebx ; Stack
mov ebx, [ebp+8] ; Flags
SYSCALL_OP
mov [_errno], ebx
+
+ test eax, eax
+ jnz .ret
+ test edx, edx
+ jz .ret
+ mov esp, edx
+.ret:
+ pop edx
pop ebx
pop ebp
ret
pop ebx
pop ebp
ret
UCC
git Repository :: git.ucc.asn.au