]> git.buserror.net Git - polintos/scott/priv.git/blobdiff - doc/orb/parameter-info-block
xfer to laptop
[polintos/scott/priv.git] / doc / orb / parameter-info-block
index 0c5281dcac963342d83ca1f947431266275ad683..b868a4474a0a7dcc6070fb7d6f9751716d6d3d38 100644 (file)
@@ -1,6 +1,6 @@
-Parameter Info Block (PIB), all offsets in pointer-length words
-   Name            Offset  Meaning
-   buffer_size     0       Size of the destination buffer, excluding
+Parameter Info Block (PIB)
+   Name            Size    Meaning
+   buffer_size     32-bit  Size of the destination buffer, excluding
                            Copy segments.
    
       The total number of bytes in all of the segments that require a
                            Copy segments.
    
       The total number of bytes in all of the segments that require a
@@ -19,12 +19,14 @@ Parameter Info Block (PIB), all offsets in pointer-length words
       for the duration of the call.  Copy segments are handled
       separately.
    
       for the duration of the call.  Copy segments are handled
       separately.
    
-   copy_size       1       Size of all Copy segments.
+   copy_size       32-bit  Size of all Copy segments.
    
       This is like buffer_size, but for Copy segments.
 
    
       This is like buffer_size, but for Copy segments.
 
-   objlist_ptr     2       Pointer to the object list
-   objlist_len     3       Length of the object list, in IDs
+   objlist_ptr     pointer Pointer to the object list
+       newobj_ptr      pointer Pointer to the new object list.
+   objlist_len     32-bit  Length of the object list, in IDs
+       newobj_len      32-bit  Length of the new object list.
 
       The object list is a special segment that contains object IDs
       rather than arbitrary data.  Each object ID will be translated
 
       The object list is a special segment that contains object IDs
       rather than arbitrary data.  Each object ID will be translated
@@ -33,12 +35,21 @@ Parameter Info Block (PIB), all offsets in pointer-length words
       regardless of the pointer size.  The first object in the list
       is the object to receive the message.
 
       regardless of the pointer size.  The first object in the list
       is the object to receive the message.
 
-   num_segments    4       Number of data segments
-   segment.ptr     5+n*4   Pointer to data segment
-   segment.len     6+n*4   Length of data segment in bytes
-   segment.flags   7+n*4   Attributes of data segment
-   reserved        8+n*4   Reserved for future use, and for
-                           power-of-two indexing
+               Objects which live in this address space have the high bit
+               clear; remote objects have the high bit set.  When sending
+               an object reference that has not been exposed to the kernel
+               before, its interface hash should exist in the newobj list.
+
+               
+
+   num_segments    32-bit  Number of data segments
+
+   segment.ptr     pointer Pointer to data segment
+   segment.len     32-bit  Length of data segment in bytes
+   segment.flags   32-bit  Attributes of data segment
+   reserved                Reserved for future use, and for
+                           power-of-two indexing -- pad to
+                           32 bytes.
    
       Each segment describes data being transmitted to and/or from the
       callee.  For out segments, the caller may designate a buffer to hold
    
       Each segment describes data being transmitted to and/or from the
       callee.  For out segments, the caller may designate a buffer to hold