
  PROCEDURE [INLINE] fmp$get_label_header_info
    (    system_file_label_p: {input^} ^fmt$system_file_label;
     VAR ring_attributes: amt$ring_attributes;
     VAR status: ost$status);

?? PUSH (LISTEXT := ON) ??

    VAR
      static_label_p: ^SEQ ( * ),
      static_label_header_p: ^fmt$static_label_header;

    IF system_file_label_p^.static_label <> NIL THEN
      static_label_p := system_file_label_p^.static_label;
      RESET static_label_p;
      NEXT static_label_header_p IN static_label_p;
      IF static_label_header_p^.unique_character <> fmc$unique_label_id THEN
        osp$set_status_abnormal (amc$access_method_id,
              ame$damaged_file_attributes, ('Invalid static file label' CAT
              'detected in fmp$get_label_header_info.'), status);
        RETURN;
      IFEND;
      IF static_label_header_p^.file_previously_opened THEN
        ring_attributes := static_label_header_p^.ring_attributes;
        RETURN;
      IFEND;
    IFEND;

    ring_attributes := fmv$system_file_attributes.static_label.ring_attributes;
    status.normal := TRUE;
  PROCEND fmp$get_label_header_info;

*copyc ame$attribute_validation_errors
*copyc amt$ring_attributes
*copyc fmc$unique_label_id
*copyc fmt$static_label_header
*copyc fmt$system_file_label
*copyc fmv$system_file_attributes
*copyc osp$set_status_abnormal
*copyc ost$status
?? POP ??
