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 Initial Version

Reported by: Gary Dixon Owned by: Eric Swenson
Priority: major Milestone: No Milestore
Component: Administration Version: MR12.6e
Keywords: entry point documentation Cc:

Description

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 declaration.

Change History (0)

Note: See TracTickets for help on using tickets.