1 05/17/90  decode_definition_
  2 
  3 
  4 The decode_definition_ subroutine returns decoded information from an
  5 object segment definition into a directly accessible structure.
  6 
  7 
  8 Entry points in decode_definition_:
  9    (List is generated by the help command)
 10 
 11 
 12 :Entry: decode_definition_: 05/15/90  decode_definition_
 13 
 14 Function: returns the decoded information of an object segment
 15 definition in a directly accessible structure.  This subroutine can
 16 only be used on one segment at a time because it uses internal static
 17 storage for information about the current segment.
 18 
 19 
 20 Syntax:
 21 declare decode_definition_ entry (ptr, ptr, bit(1) aligned);
 22 call decode_definition_ (def_ptr, structure_ptr, eof);
 23 
 24 
 25 Arguments:
 26 def_ptr
 27    is a pointer to the selected definition, or to the base of the
 28    object segment.  (Input).  If def_ptr points to the base of the
 29    object segment, decode_definition_ returns the first acceptable
 30    definition in the definition section (see Notes).  Otherwise it is
 31    expected to be pointing to a definition.
 32 structure_ptr
 33    is a pointer to the structure in which decode_definition_ returns
 34    the desired information.  This structure is defined in
 35    decode_definition_str.incl.pl1.  (Input)
 36 
 37 
 38 eof
 39    is a binary indicator that is "1"b if the current invocation of
 40    decode_definition_ causes the search to go beyond the end of the
 41    definition list.  If that is the case, the returned information in
 42    the structure is null.  It may also be "1"b if any error occurs.
 43    (Output)
 44 
 45 
 46 Notes: decode_definition_ may not return the definition pointed to by
 47 def_ptr.  It checks the "ignore" bit of each definition, and if that
 48 bit is "1"b it will continue scanning the list of definitions until it
 49 finds one for which the "ignore" bit is not set.
 50 
 51 To be sure the internal static information about the current segment
 52 has been properly initialized, the first call to decode_definition_
 53 should either pass a pointer to the base of the object segment in
 54 def_ptr, or it should follow a call to decode_definition_$init.
 55 
 56 When decode_definition_ is called following a call to
 57 decode_definition_$init for the same object segment, it will ignore
 58 the value of def_ptr and always return the first definition in the
 59 definition section (for which "ignore" is not set).
 60 
 61 
 62 :Entry:  full:  05/17/90 decode_definition_$full
 63 
 64 Function: This entry point, given a pointer to an object segment
 65 definition, returns more complete information about that definition.
 66 The symbolic name returned by this entry point can contain up to 256
 67 characters.  This entry point does not use internal static storage.
 68 
 69 
 70 Syntax:
 71 declare decode_definition_$full entry (ptr, ptr, ptr, bit(1) aligned);
 72 call decode_definition_$full (def_ptr, structure_ptr, oi_ptr, eof);
 73 
 74 
 75 Arguments:
 76 def_ptr
 77    is a pointer to the selected definition.  (Input).
 78 structure_ptr
 79    is a pointer to the provided structure into which the
 80    decode_definition_$full entry point returns the desired information.
 81    This structure is defined in decode_definition_str.incl.pl1.
 82    (Input).
 83 oi_ptr
 84    is a pointer to the structure returned by any entry point of the
 85    object_info subroutine.  (Input).
 86 
 87 
 88 eof
 89    is a binary indicator that is "1"b if the current invocation of
 90    decode_definition_$full causes the search to go beyond the end of
 91    the definition list.  If that is the case, the returned information
 92    in the structure is null.  It may also be "1"b if any error occurs.
 93    (Output).
 94 
 95 
 96 Notes: decode_definition_$full will return the definition pointed to by
 97 def_ptr, whether or not the "ignore" bit is set for that definition.
 98 If def_ptr points to the definition header, however, this entry point
 99 will skip over it and return the first definition in the definition
100 section.
101 
102 
103 :Entry:  init:  05/16/90 decode_definition_$init
104 
105 Function: This entry point is used for initialization of the internal
106 static storage used to locate the current segment.  It is especially
107 useful when the object segment does not begin at offset 0 (as for an
108 archive component).  This entry point only effects the main entry
109 point, decode_definition_.
110 
111 
112 Syntax:
113 declare decode_definition_$init entry (ptr, fixed bin(24));
114 call decode_definition_$init (seg_ptr, bit_count);
115 
116 
117 Arguments:
118 seg_ptr
119    is a pointer to the beginning of an object segment (not necessarily
120    with an offset of 0).  (Input)
121 bit_count
122    is the bit count of the object segment.  (Input)