The following operations provide a convenient interface that hides the PartStack data structure. However, the fact that a participant list is really an array of type Part is visible to the programmer.
void partInit(Part *participants, int number)
Pushes address addr, pointing to length bytes, onto the stack of participant. A length of 0 indicates a ``special-value'' pointer (e.g., ANY_HOST) whose value as a pointer should be preserved across protection boundaries (and not dereferenced). See Section 4.4.
void partPush(Part participant, void *addr, int length)
Pops an address off the stack of participant. Returns NULL if there are no more elements on the stack.
void *partPop(Part participant)
Returns the number of bytes pointed to by the top element of the stack of participants. Returns 0 if the stack element was pushed with a length field of zero (i.e., a ``special-value'' pointer). Returns -1 if there are no elements on the stack.
int partStackTopByteLen(Part participants)
Returns the number of entries in participant list participants.
int partLength(Part *participants)