Opened 2 weeks ago
Last modified 2 weeks ago
#420 new defect
system_info_ entry points are poorly declared in both source and documentation. — at Version 1
| Reported by: | Gary Dixon | Owned by: | Eric Swenson |
|---|---|---|---|
| Priority: | major | Milestone: | No Milestore |
| Component: | Administration | Version: | MR12.6e |
| Keywords: | entry point documentation | Cc: |
Description (last modified by )
The system_info_.pl1 source program does not declare the parameters expected by each of its external entry points. A few have their parameters declared fully; others declare some of the parameters but not all of them; and most of the entry points declare none of the expected parameters.
The following except lines from system_info_.pl1 show this problem.
installation_id: entry; sysid: entry; version_id: entry; session: entry; titles: entry; users: entry; timeup: entry; next_shutdown: entry; last_shutdown: entry; rates: prices: entry; rates_rs: prices_rs: entry (rs_number); device_rates: device_prices: entry (ndev, devp); device_rates_rs: device_prices_rs: entry (rs_number, ndev, devp); abs_limits: entry; default_absentee_queue: entry; abs_prices: entry; abs_prices_rs: entry (rs_number); io_prices: entry; io_prices_rs: entry (rs_number); abs_chn: entry (ev, pid); next_shift_change: entry (curshft, shftime, newshft, starttime); shift_table: entry (stt); request_chn: entry; access_ceiling: entry (access_ceiling); log_threshold: entry; level_names: entry; category_names: entry; ARPANET_host_number: entry; resource_price: entry (a_price_name, a_price, a_code); resource_price_rs: entry (rs_number, a_price_name, a_price, a_code); rs_name: entry (rs_number, rs_name, a_code); rs_number: entry (rs_name, rs_number, a_code); max_rs_number: entry (rs_count); trusted_path_flags: entry (stp);
Note that some of these entry points appear in the MPM Subroutines writeup for system_info_ with parameters fully specified.
Other entry points are missing from the manual, but are fully declared in the system_info_.info segment.
And most of the entry points have parameter attributes declarations in the >sss>pl1.dcl segment. However, while all of these entry points are retained by bound_info_rtns_.bind, some are not declared in MPM Subroutines writeup or the system_info_.info segment.
The system_info_.pl1 code enables setting undeclared output values by treating then as command arguments. It calls cu_$arg_ptr to locate the char(*) argument, and sets its output value using the cu_-provided pointer and length. This practice may have stemmed from limitations of the v1pl1 compiler, but those have long since disappeared from Multics.
- Code in system_info_.pl1 should be updated to declare all parameters for every external entry point, and to use those declarations to return output data to the caller.
- Information in system_info_.info should be made fully consistent with the declared parameters, and provide documentation for all system_info_ external entry points.
- All system_info_$XXX entry points listed in >sss>pl1.dcl should be removed. Some are incorrect, and none will be needed if the actual parameters are declared in the PL/I source program. The PL/I compiler will provide argument descriptors for these parameters.
Until this issue is corrected, the user should refer to the MPM Subroutines or system_info_.info segment for correct calling sequence expected for each entry point.
When this ticket is closed, all entry points should be properly declared in the source. The display_entry_point_dcl (depd) command and Emacs pl1dcl keystroke will provide correct documentation for each parameter.
