X-Git-Url: http://git.buserror.net/cgi-bin/gitweb.cgi?p=polintos%2Fscott%2Fpriv.git;a=blobdiff_plain;f=doc%2Forb%2Fparameter-info-block;h=b868a4474a0a7dcc6070fb7d6f9751716d6d3d38;hp=0c5281dcac963342d83ca1f947431266275ad683;hb=bc696ad9b0d5a2ad04e2de5ad8b89f746dd78491;hpb=1ac390fe1e18444008857b056c947710be9621a8 diff --git a/doc/orb/parameter-info-block b/doc/orb/parameter-info-block index 0c5281d..b868a44 100644 --- a/doc/orb/parameter-info-block +++ b/doc/orb/parameter-info-block @@ -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