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
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
edx: length of exception segment, if any
- ebx, esi, edi, ebp, esp: may be clobbered
+ ebx, ecx, 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
+Other system calls:
+ eax, edx, ecx: syscall arguments.
- 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
+ Call 0x7fff0000 + 0x80 * syscallnum
-GUID SHA-1 hash retrieval:
- eax: object id
- edx: 20-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
+ eax: return value
+ edx, ecx: may be clobbered