1 03/05/85  create_data_segment_
 2 
 3 
 4 The create_data_segment_ subroutine is used in conjunction with the
 5 create_data_segment command to create a standard object segment from
 6 PL/I data structures passed to it as parameters.  The
 7 create_data_segment_ subroutine is called from a PL/I program that has
 8 defined in it either one or two specific PL/I structures, whose
 9 contents are to be placed in the text and/or static sections of the
10 object segment to be created.  The level-2 structure component names
11 become entry point names for the object segment, i.e., names that can
12 be found by links so that other programs may reference the data by
13 name.
14 
15 
16 Entry points in create_data_segment_:
17    (List is generated by the help command)
18 
19 
20 :Entry:  create_data_segment_:  03/05/85  create_data_segment_
21 
22 
23 Function:
24 is used in conjunction with the create_data_segment command to create
25 a standard object segment from PL/I data structures passed to it as
26 parameters.
27 
28 
29 Syntax:
30 declare create_data_segment_ entry (ptr, fixed bin(35));
31 call create_data_segment_ (cds_arg_ptr, code);
32 
33 
34 Arguments:
35 cds_arg_ptr
36    is a pointer to a structure (see "Structure" below) containing
37    information to be passed to the create_data_segment_ subroutine,
38    specifying the structures to be used to create the object segment.
39    (Input)
40 code
41    is a standard status code.  (Output) It can be
42    error_table_$translation_failed if no object segment is created.
43 
44 
45 Notes:  The brief translator name placed in object segments produced by
46 the create_data_segment_ subroutine is cds.
47 
48 If the defs_in_link switch is supplied as on ("1"b), then a
49 nonrelocatable, nonstandard object segment is produced.
50 
51 All text and static-resident information created is supplied with
52 absolute relocation.  Hence, one must be wary of threads and pointers
53 in one's structures, as they are not relocated if the object segment is
54 bound.
55 
56 The program that calls the create_data_segment_ subroutine must be in
57 the PL/I language.  It must be compiled with the -table control
58 argument.  The create_data_segment command provides for this.
59 
60 
61 It is essential that structures specified by cds_args.sections be at
62 least referenced in the calling program, or they are not described in
63 the runtime symbol table.
64 
65 The create_data_segment_ program, in its capacity as a translator,
66 issues diagnostic messages on the terminal, as opposed to returning
67 detailed status codes.
68 
69 All regions of the text and/or static sections not explicitly set by
70 the calling program, whether via "init" attributes or explicit code,
71 may not be assumed to contain zero or any other quantity.