{ This deck contains type to allow conversion between the
{ data field of a keypoint and the types passed to the keypoint
{ processor.

  TYPE
    dft$keypoint_catalog_summary = packed record
      case boolean of
      = TRUE =
        remote_catalog: boolean,
        catalog_owner: boolean,
        catalog_depth: 0 .. 1f(16),
        read_access: {or write} boolean,
      = FALSE =
        keypoint_data: 0 .. 0fffff(16),
      casend,
    recend;

  TYPE
    dft$keypoint_file_operation = packed record
      case boolean of
      = TRUE =
        remote: {or local} boolean,
        catalog: {or file} boolean,
      = FALSE =
        keypoint_data: 0 .. 0fffff(16),
      casend,
    recend;

  TYPE
    dft$keypoint_pager_io = packed record
      case boolean of
      = TRUE =
        io_function: iot$io_function,
        pages: 0 .. 0fff(16),
      = FALSE =
        keypoint_data: 0 .. 0fffff(16),
      casend,
    recend;

  TYPE
    dft$keypoint_sfid = packed record
      case boolean of
      = TRUE =
        file_entry_index: gft$file_descriptor_index,
        residence: gft$table_residence,
      = FALSE =
        keypoint_data: 0 .. 0fffff(16),
      casend,
    recend;

?? PUSH (LISTEXT := ON) ??
*copyc gft$system_file_identifier
*copyc iot$io_function
?? POP ??
