
  TYPE
    pmt$queue_definition = record
      removal_lock: ost$signature_lock,
      definition: ^pmt$queue_specification,
    recend,

    pmt$queue_definition_table = array [*] of pmt$queue_definition,

    pmt$queue_specification = record
      name: pmt$queue_name,
      removal_bracket: ost$ring,
      usage_bracket: ost$ring,
      control: pmt$queue_control,
    recend,

    pmt$queue_control = record
      connection_lock: ost$signature_lock,
      connected_task_list: ^pmt$queue_connected_task,
      message_queue_lock: ost$signature_lock,
      message_queue: pmt$message_queue,
      waiting_task_lock: ost$signature_lock,
      waiting_task_queue: pmt$waiting_task_queue,
    recend,

    pmt$queue_connected_task = record
      task: pmt$task_id,
      next_connected_task: ^pmt$queue_connected_task,
    recend,

    pmt$message_queue = record
      number_messages: pmt$messages_per_queue,
      dequeue: ^pmt$queued_message,
      enqueue: ^^pmt$queued_message,
    recend,

    pmt$queued_message = record
      dequeue_thread: ^pmt$queued_message,
      message: pmt$message,
{*    segments: ^array [*] of mmt$queued_segments, ****not in NOS/VE R1
    recend,

    pmt$waiting_task_queue = record
      number_waiting_tasks: pmt$connected_tasks_per_queue,
      dequeue: ^pmt$queued_task,
      enqueue: ^^pmt$queued_task,
    recend,

    pmt$queued_task = record
      task: ost$global_task_id,
      next_task: ^pmt$queued_task,
    recend;

*copyc OSD$VIRTUAL_ADDRESS
*copyc OST$GLOBAL_TASK_ID
*copyc PMT$TASK_ID
*copyc ost$signature_lock
*copyc PMD$LOCAL_QUEUES
