X-Git-Url: http://git.buserror.net/cgi-bin/gitweb.cgi?p=polintos%2Fscott%2Fpriv.git;a=blobdiff_plain;f=doc%2Fabi%2Fx86;h=a095a79e4125886983eb8e6e2e919b28b965a404;hp=c62911dd5b0213402c2cbafe94a45e74ada92e9a;hb=139f54779f6395a1828261423cd8013ca940ff36;hpb=1ac390fe1e18444008857b056c947710be9621a8 diff --git a/doc/abi/x86 b/doc/abi/x86 index c62911d..a095a79 100644 --- a/doc/abi/x86 +++ b/doc/abi/x86 @@ -4,11 +4,11 @@ Out-of-Process Method Invocation: Caller: eax: pointer to parameter info block (PIB) - Call the 32-bit address stored at 0x7fff0000 to invoke the method. + Call 0x7fff0000 to invoke the method. Upon return: ebx, esi, edi, ebp, esp: preserved - eax: pointer to exception, or NULL if none. + eax: pointer to exception, or NULL if none If there is an exception, the user part of the syscall function will search for an exception handling function that covers the calling address. If none is found, @@ -18,14 +18,23 @@ Out-of-Process Method Invocation: ecx: may be clobbered Callee: - eax: pointer to PIB - edx: pointer to caller information struct, or NULL if not - requested. - esp: NULL. + eax: object ID + edx: segment zero size + ecx: total size + ebx: method ID + esp, ebp, esi, edi: NULL. - Jump to the 32-bit address stored at 0x7fff0004 to return. + Jump to 0x7fff0080 to return. Upon return: - eax: pointer to exception, or NULL if none. + eax: pointer to exception, or NULL if none edx: length of exception segment, if any - ebx, esi, edi, ebp, esp: may be clobbered + ebx, ecx, esi, edi, ebp, esp: may be clobbered + +Other system calls: + eax, edx, ecx: syscall arguments. + + Call 0x7fff0000 + 0x80 * syscallnum + + eax: return value + edx, ecx: may be clobbered