?? NEWTITLE := 'NOS/VE Basic Access Method: Tape Label Attributes Retrieval' ??
MODULE bam$get_tape_label_attributes;
?? RIGHT := 110 ??

{ PURPOSE:
{   This module contains the 23D interface for getting the tape label
{   attributes.

?? NEWTITLE := 'Global Declarations Referenced by This Module', EJECT ??
?? PUSH (LISTEXT := ON) ??
*copyc fst$attachment_options
*copyc fst$evaluated_file_reference
*copyc fst$tape_attribute_source
*copyc fst$tla_returned_attributes
*copyc ost$caller_identifier
*copyc ost$status
?? POP ??
*copyc avp$removable_media_admin
*copyc fmp$get_tape_label_attributes
*copyc fmp$get_tape_label_cmd_attrib
*copyc osp$verify_system_privilege
?? OLDTITLE ??
?? NEWTITLE := 'bap$get_tape_label_attributes', EJECT ??

  PROCEDURE [XDCL, #GATE] bap$get_tape_label_attributes
    (    evaluated_file_reference: fst$evaluated_file_reference;
         source: fst$tape_attribute_source;
     VAR attributes {input, output} : fst$attachment_options;
     VAR returned_attributes: fst$tla_returned_attributes;
     VAR status: ost$status);

    VAR
      caller_id: ost$caller_identifier,
      rma_or_ring_privileged: boolean;

    status.normal := TRUE;

    osp$verify_system_privilege;
    #CALLER_ID (caller_id);

    rma_or_ring_privileged := avp$removable_media_admin () OR (caller_id.ring <= 3);

    CASE source OF
    = fsc$tla_last_ansi_file_accessed, fsc$tla_next_position =
      fmp$get_tape_label_attributes (evaluated_file_reference, source, rma_or_ring_privileged, attributes,
            returned_attributes, status);
    = fsc$tla_explicit_specification =
      fmp$get_tape_label_cmd_attrib (evaluated_file_reference, rma_or_ring_privileged, attributes,
            returned_attributes, status);
    ELSE
      ;
    CASEND;

  PROCEND bap$get_tape_label_attributes;
?? OLDTITLE ??
MODEND bam$get_tape_label_attributes;
