
PROC dum$find_kol_index_by_sfn, find_kol_index_by_sfn (
  system_job_name, sfn: name 19 = $REQUIRED
  kol_index : VAR OF INTEGER = $required
  status)

  create_variable name=sfn_offset k=integer
  kol_address = $mem($sa(jmv$kol_p) 6)
  kol_size = $mem(($sa(jmv$kol_p)+6) 4)
  kol_entry_size = $mem(($sa(jmv$kol_p)+14) 4)
  number_of_kol_entries = kol_size / kol_entry_size
  target_system_job_name = $strrep($value(system_job_name))

  FOR search_index = 1 TO number_of_kol_entries DO
    kol_entry_address = kol_address + (search_index-1)*kol_entry_size
    IF $memory_string(kol_entry_address,19) = target_system_job_name THEN
      $value(kol_index) = search_index
      EXIT_PROC
    IFEND
  FOREND
  EXIT_PROC WITH $STATUS(FALSE, 'DU', 0, 'Entry not found.')

PROCEND dum$find_kol_index_by_sfn

