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 * * * * * * * * * * * * * * * * * * * */