
  TYPE
    jmt$job_category_data = record
      item_list: ^jmt$job_category_item_list,
      initial_set_values: jmt$job_category_set_list,
      category_names: ^jmt$job_category_name_list,
    recend;

  TYPE
    jmt$job_category_item_list = SEQ ( * ),
    jmt$job_category_set_list = array [jmt$job_category_item_kind] of
          jmt$job_category_set,
    jmt$job_category_name_list = array [0 .. * ] of record
      name: ost$name,
      definition_name: ost$name,
    recend;

  TYPE
    jmt$job_category_item = record
      categories: jmt$job_category_set,
      skip_item: jmt$job_category_reference,
      next_item: jmt$job_category_reference,
      case kind: jmt$job_category_item_kind of
      = jmc$ca_cpu_time_limit, jmc$ca_sru_time_limit, jmc$ca_mag_tape_limit,
            jmc$ca_working_set =
        number: integer,
      = jmc$ca_login_account, jmc$ca_login_project, jmc$ca_login_family,
            jmc$ca_login_user, jmc$ca_user_job_name,
            jmc$ca_orig_application_name, jmc$ca_job_mode,
            jmc$ca_job_qualifier =
        name: ost$name,
      = jmc$ca_or_conditions =
        members: jmt$job_category_set,
      casend,
    recend;

  TYPE
    jmt$job_category_item_kind = (jmc$ca_cpu_time_limit, jmc$ca_sru_time_limit,
          jmc$ca_mag_tape_limit, jmc$ca_working_set, jmc$ca_login_account,
          jmc$ca_login_project, jmc$ca_login_family, jmc$ca_login_user,
          jmc$ca_user_job_name, jmc$ca_orig_application_name, jmc$ca_job_mode,
          jmc$ca_job_priority, jmc$ca_job_qualifier, jmc$ca_or_conditions);

  TYPE
    jmt$job_category_reference = REL (jmt$job_category_item_list)
          ^jmt$job_category_item;

*copyc jmt$job_category_set
*copyc ost$name
