1 /* BEGIN INCLUDE FILE dm_cm_datum.incl.pl1 */
 2 
 3 /* DESCRIPTION:
 4         This include file contains the declarations of datum structures.
 5    There are four tyes of datums: your ordinary, run-of-the-mill datum
 6    (Datum); a continuation datum (CN Datum), which is a continuation of
 7    another datum; a continued datum (CD Datum), which is continued (has a
 8    continuation datum) but is not a continuation itself; and a continued
 9    continuation datum (CDCN Datum), which is both continued and is a
10    continuation.  To illustrate, datums can be pieced combined in the
11    following ways:
12 
13    1) Datum alone.
14 
15    2) CD Datum -> CN Datum.
16 
17    3) CD Datum -> CDCN Datum {-> CDCN Datum -> ...-> CDCN Datum} -> CN Datum.
18 
19    continued_datum and continued_continuation_datum each contains a header
20    which includes the identifier of the datum which is its continuation.
21    continued_datum.header.full_length is the length in bits of the entire
22    element, i.e., the addition of the length of contents structure component
23    of all of the datums from CD Datum to CN Datum.
24 */
25 
26 /* HISTORY:
27 Written by Matthew Pierret, 02/07/82.
28 Modified:
29 03/25/82 by Matthew Pierret: Changed all datum structures to be unaligned.
30 06/14/82 by Matthew Pierret: Added DATUM_HEADER_LENGTH_IN_BYTES.
31 08/04/82 by Matthew Pierret: Added DATUM_HEADER_LENGTH_IN_BITS.
32 10/20/82 by Matthew Pierret:  Split into two include files, this one and
33             dm_cm_datum_constants.  The latter holds only and all constants
34             formerly in this include file.
35 10/29/82 by Matthew Pierret:  Removed datum headers.
36 09/18/84 by Matthew Pierret:  Added DESCRIPTION section.  Added datum and
37             continuation_datum (mainly for illustration).
38 12/03/84 by Matthew Pierret:  Removed the non-based structures
39             (cd cdcn)_datum_headers.
40 */
41 
42 /* format: style2,ll79,ind3 */
43 
44      dcl     1 datum                unaligned based (datum_ptr),
45                2 contents           bit (datum_contents_length_in_bits);
46 
47      dcl     1 continuation_datum   unaligned based (datum_ptr),
48                2 contents           bit (datum_contents_length_in_bits);
49 
50      dcl     1 continued_datum      unaligned based (datum_ptr),
51                2 header,
52                  3 full_length      fixed bin (35),
53                  3 continuation     like datum_id,
54                2 contents           bit (datum_contents_length_in_bits);
55 
56      dcl     1 continued_continuation_datum
57                                     unaligned based (datum_ptr),
58                2 header,
59                  3 continuation     like datum_id,
60                2 contents           bit (datum_contents_length_in_bits);
61 
62      dcl     1 datum_id             aligned based (datum_id_ptr),
63                2 control_interval_id
64                                     fixed bin (24) unal uns,
65                2 index              fixed bin (12) unal uns;
66 
67      dcl     datum_ptr              ptr init (null ());
68      dcl     datum_id_ptr           ptr init (null ());
69      dcl     datum_contents_length_in_bits
70                                     fixed bin (35) init (-1);
71 
72 
73 
74 /* END INCLUDE FILE dm_cm_datum.incl.pl1 */