]> git.buserror.net Git - polintos/scott/priv.git/blobdiff - doc/abi/x86
Change x86 syscalls to direct branches, and define abi for additional syscalls.
[polintos/scott/priv.git] / doc / abi / x86
index 7f3de369192025ad0570c4cac8880f7c94f05e0f..7a11bd11a47a813b1a6962e25d1953da52ff9563 100644 (file)
@@ -4,7 +4,7 @@ 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
@@ -13,7 +13,7 @@ Out-of-Process Method Invocation:
            function will search for an exception handling function
            that covers the calling address.  If none is found,
            it will assume that it is a language without exception
-           handling, and return the exception to the caller in eax.
+           handling, an5Ad return the exception to the caller in eax.
       edx: length of exception segment, if any
       ecx: may be clobbered
       
@@ -23,29 +23,17 @@ Out-of-Process Method Invocation:
            requested
       esp: 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