 TYPE
    cmt$io_direction = (cmc$read_into_memory, cmc$write_from_memory,
      cmc$no_memory_reference, cmc$read_write_memory, cmc$dummy_5_memory,
      cmc$dummy_6_memory, cmc$dummy_7_memory, cmc$dummy_8_memory),
    cmt$io_requests = (cmc$pp_io, cmc$unit_io, cmc$no_io, cmc$dummy4_io,
      cmc$dummy5_io, cmc$dummy6_io, cmc$dummy7_io, cmc$dummy8_io);

  TYPE
    cmt$io_request_type = cmt$io_requests,
    cmt$io_request = record
      kind: cmt$io_requests,
      element_name: cmt$element_name,
      wait_for_io_completion: cmt$wait_for_io_completion,
    recend,
    cmt$wait_for_io_completion = record
      io_complete_response_p: ^cmt$subsys_io_response_area,
      io_complete_flag: char,
      CASE wait_for_io_completion: boolean OF
        = TRUE =
            requested_wait_time: 0 .. 0ffffffffffff(16),
            expected_wait_time: 0 .. 0ffffffffffff(16),
        = FALSE =
            destroy_io_req_upon_completion: boolean,
      CASEND,
    recend;

?? PUSH (LISTEXT := ON) ??
*copyc cmt$element_name
*copyc cmt$subsys_io_response_area
?? POP ??
