The participant data structure is used to collect addressing information for opening connections. A participant list is defined to be an array of type Part, and a PartStack is the main field in a single Part. The fields of these structures should not be directly accessed by the protocol developer.
#define PART_MAX_STACK 20typedef struct {
struct {
void *ptr;
int len;
} arr[PART_MAX_STACK];
int top;
} PartStack;
typedef struct {
int len;
PartStack stack;
} Part;