Copy segments.
The total number of bytes in all of the segments that require a
- buffer to be created in the destination address space. This is
+ buffer to be created in the destination address space, with each
+ buffer individually rounded up to an 8-byte alignment. This is
specified so that the kernel can allocate one large buffer for all
- segments before traversing the segment list. When returning from a
- method, the buffer size only includes buffers allocated by the
- caller; "inout" segments where the caller specified a non-NULL ptr,
- and the callee did not increase the length, are not included
+ segments before traversing the segment list. When returning from
+ a method, the buffer size only includes buffers allocated by the
+ caller; "inout" segments where the caller specified a non-NULL
+ ptr, and the callee did not increase the length, are not included
(because the kernel does not need to allocate a caller-side buffer
- for them). The kernel may throw an exception if the actual
- size is greater than specified in this field.
+ for them). The kernel may throw an exception if the actual size
+ is greater than specified in this field.
This only covers the "normal" segments which are mapped only
for the duration of the call. Copy segments are handled
copy_size 1 Size of all Copy segments.
- This is like buffer_size, but for Copy segments. The pages
+ 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