The PINT_Request

   typedef struct PINT_Request {
      PVFS_offset  offset;     /* offset from start of last set of elements */
      int32_t num_ereqs;  /* number of ereqs in a block */
      PVFS_size    stride;     /* stride between blocks in bytes */
      int32_t num_blocks; /* number of blocks */
      PVFS_offset  ub;         /* upper bound of the type in bytes */
      PVFS_offset  lb;         /* lower bound of the type in bytes */
      PVFS_size    aggregate_size; /* amount of aggregate data in bytes */
      int32_t depth;      /* number of levels of nesting */
      int32_t num_contig_chunks; /* number of contiguous data chunks */
      struct PINT_Request *ereq; /* element type */
      struct PINT_Request *sreq; /* sequence type */
   } PINT_Request;

A single PINT_Request structure represents num_blocks blocks of num_ereqs elements separated by stride bytes, beginning offest bytes from the logical start of the file, and followed by an arbitrary data layout described by the sequence type. The elements are of an arbitrary data layout described by the element type. The ub, lb, aggregate_size, depth, and num_contig_chunks fields are statistics of the entire data area beginning with the current PINT_Request struct and including the element and sequence types. Depth records the maximum depth of the element type chain. Calls to MPI_Type_contiguous, MPI_Type_vector, and MPI_Type_hvector can be constructed with a single PINT_Request struct and the PINT_Request struct passed in as the element type. Calls to MPI_Type_indexed, MPI_Type_hindexed, and MPI_Type_struct generally utilize the sequence type chain.