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
Merge branch 'master' of git://ted.mutabah.net/acess2
[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
9e45273
..
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,14
+2,20
@@
; AcssMicro - System Calls
; ========================
; AcssMicro - System Calls
; ========================
-%include "../../../Kernel/include/syscalls.inc.asm"
-
[bits 32]
[section .data]
[global _errno:data 4]
_errno: dw 0
[section .text]
[bits 32]
[section .data]
[global _errno:data 4]
_errno: dw 0
[section .text]
+[global _start]
+[extern SoMain]
+_start:
+ call SoMain
+ add esp, 4 ; // Base address
+ call eax
+ call _exit
+
; DEST
; SRC
_memcpy:
; DEST
; SRC
_memcpy:
@@
-150,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
@@
-181,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