1 /*  START OF:       call_entry_info_.incl.pl1                 *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  * */
 2 
 3 /****^  HISTORY COMMENTS:
 4   1) change(2016-08-09,GDixon), approve(2016-10-13,MCR10014),
 5      audit(2016-10-13,Swenson), install(2016-10-13,MR12.6f-0002):
 6      Initial version of include file for call_entry_info_$from_XXX subroutines.
 7                                                    END HISTORY COMMENTS */
 8 
 9   dcl  entry_info_parm_count fixed bin;                     /* Dimension for allocating entry_info structure.         */
10   dcl  entry_info_ptr ptr;                                  /* Parameter pointing to allocated entry_info structure.  */
11 
12   dcl 1 entry_info aligned based(entry_info_ptr),           /* Output from call_entry_info_$from_XXX entrypoint.      */
13       2 header like entry_info_header,                      /* - Header data, as shown above.                         */
14       2 cleanup_data_ptr ptr,                               /* - Data used by call_entry_info_$cleanup.               */
15       2 descriptor_ptrs (entry_info_parm_count refer(entry_info.parm_count)) ptr;
16                                                             /* - Array of pointers to the parameter descriptors.      */
17 
18   dcl 1 entry_info_header aligned,                          /* Substructure at start of entry_info, contains all      */
19                                                             /*  entrypoint info, except pointers to each parameter    */
20                                                             /*  descriptor.                                           */
21       2 version char(4),                                    /* - version is entry_info_v1.                            */
22       2 areaP ptr,                                          /* - translator_temp_ allocation segment.                 */
23 
24       2 entrypoint,                                         /* - entrypoint described by this structure.              */
25         3 nameString char(256) var,                         /*   . entrypoint (format: seg$ep) whose calling sequence */
26                                                             /*     is described.                                      */
27         3 entryVar entry variable options (variable),       /*   . virtual_entry converted to an entry variable.      */
28 
29       2 callingSequence,                                    /* - Calling sequence data:                               */
30         3 function bit (1) unaligned,                       /*    . Entry is a function.                              */
31                                                             /*      (Last parameter descriptor is the return value.)  */
32         3 options_variable bit (1) unaligned,               /*    . Entry defined as options(variable).               */
33                                                             /*      (Not sure PL/I compiler ever sets this.)          */
34         3 pad1 bit(34) unaligned,
35         3 parm_count fixed bin;                             /*    . Number of parms given in entry's calling seq.     */
36                                                             /*      This includes its returns descriptor, if entry is */
37                                                             /*      a function.                                       */
38 
39   dcl  entry_info_v1 char(4) aligned int static options(constant) init("ei01");
40                                                             /* Version of the structure shown above.                  */
41   dcl  eiParmCountNotDetermined fixed bin int static options(constant) init(-1);
42                                                             /* Only used by call_entry_info_$from_virtual_entry.  This*/
43                                                             /*  is value returned in parm_count if no calling sequence*/
44                                                             /*  data was found.  This probably means the entrypoint   */
45                                                             /*  was not compiled by PL/I, or is an inaccessible gate  */
46                                                             /*  entrypoint (or both).                                 */
47 
48   dcl  call_entry_info_$from_virtual_entry entry (char(*), char(*), uns fixed bin(3), ptr, fixed bin(35));
49   dcl  call_entry_info_$from_declaration entry (char(*), char(*), char(*) var, uns fixed bin(3), ptr, fixed bin(35));
50   dcl  call_entry_info_$cleanup entry (ptr);
51 
52 /*  END OF:         call_entry_info_.incl.pl1                 *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  *  * */