X-Git-Url: http://git.buserror.net/cgi-bin/gitweb.cgi?p=polintos%2Fscott%2Fpriv.git;a=blobdiff_plain;f=doc%2Fabi%2Fx86;h=805eb76a630f16fa019b67b3e493c509c7c9b799;hp=fd0c51a2a4835a2d7a7b0adfe40ae036b648eb23;hb=d32da4b91b9a403ae9d65c48fbb25c1abbb5083f;hpb=6e64b28821757af60447c790ae52a91831a9d4f0 diff --git a/doc/abi/x86 b/doc/abi/x86 index fd0c51a..805eb76 100644 --- a/doc/abi/x86 +++ b/doc/abi/x86 @@ -8,7 +8,7 @@ Out-of-Process Method Invocation: 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, @@ -19,13 +19,33 @@ Out-of-Process Method Invocation: Callee: eax: pointer to PIB - edx: pointer to caller information struct, if such was + edx: pointer to caller information struct, or NULL if not requested + esp: NULL. Jump to the 32-bit address stored at 0x7fff0004 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: should be preserved - ecx: may be clobbered + ebx, esi, edi, ebp, esp: may be clobbered + +Object registration: + eax: number of objects to register with initial refcount 1 + edx: pointer to list of NewObject structs + + Call the 32-bit address stored at 0x7fff0008. + + Upon return: + eax: pointer to exception, or NULL if none + edx: length of exception segment, if any + +GUID hash retrieval: + eax: object id + edx: 16-byte buffer + + Call the 32-bit address stored at 0x7fff000c. + + Upon return: + eax: pointer to exception, or NULL if none + edx: length of exception segment, if any