]> 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
@@ -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.
    
-   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.
 
-   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
@@ -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.
 
-   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