blob: 8860d896420abc81db29f0d2ac1f1aa44bb4af71 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
.global syscall
// call from c with 4 x 32bit params
// syscall number, p1,p2,p3,p4
// TODO: push stack frame?
syscall:
push %ebx // preserve (sysV abi convnetion)
mov 0x8(%esp),%eax //syscall number
mov 0xC(%esp),%edx //p1
mov 0x10(%esp),%ecx //p2
mov 0x14(%esp),%ebx //p3
int $0x80
mov %ebx, %eax // set as return value
pop %ebx // preserve
ret
|