]> git.buserror.net Git - polintos/scott/priv.git/blob - doc/abi/x86
Random stuff.
[polintos/scott/priv.git] / doc / abi / x86
1 Basic ABI: SysV i386
2
3 Out-of-Process Method Invocation:
4    Caller:
5       eax: pointer to parameter info block (PIB)
6
7       Call 0x7fff0000 to invoke the method.
8       
9       Upon return:
10       ebx, esi, edi, ebp, esp: preserved
11       eax: pointer to exception, or NULL if none
12            If there is an exception, the user part of the syscall
13            function will search for an exception handling function
14            that covers the calling address.  If none is found,
15            it will assume that it is a language without exception
16            handling, and return the exception to the caller in eax.
17       edx: length of exception segment, if any
18       ecx: may be clobbered
19       
20    Callee:
21       eax: object ID
22       edx: segment zero size
23       ecx: total size
24       ebx: method ID
25       esp, ebp, esi, edi: NULL.
26
27       Jump to 0x7fff0080 to return.
28       
29       Upon return:
30       eax: pointer to exception, or NULL if none
31       edx: length of exception segment, if any
32       ebx, ecx, esi, edi, ebp, esp: may be clobbered
33
34 Other system calls:
35    eax, edx, ecx: syscall arguments.
36         
37    Call 0x7fff0000 + 0x80 * syscallnum
38
39    eax: return value
40    edx, ecx: may be clobbered