?? RIGHT := 110 ??
?? NEWTITLE := 'NOS/VE SCL INTERPRETER : Command Statistic Ring 3' ??
MODULE clm$command_stats_ring_3;

{ PURPOSE :
{   This module contains the ring 3 procedure necessary to get
{   the xcb information needed by the command resources statistic.
{

?? NEWTITLE := 'Global Declarations', EJECT ??
?? PUSH (LISTEXT := ON) ??
*copyc clt$command_resource_statistics
*copyc sfd$type_declarations
?? POP ??
*copyc clv$command_statistics_enabled
*copyc clv$secure_logging_activated
*copyc clv$log_secure_parameters
*copyc osp$system_error
*copyc pmp$find_executing_task_xcb
*copyc pmp$get_task_cp_time

?? TITLE := 'clp$get_command_statistics', EJECT ??

  PROCEDURE [XDCL, #GATE] clp$get_command_statistics
    (VAR cmd_statistics: clt$command_resource_statistics;
     VAR secure_logging: boolean;
     VAR stats_enabled: boolean);

    VAR
      cp_time: pmt$task_cp_time,
      local_status: ost$status,
      xcb: ^ost$execution_control_block;

    local_status.normal := TRUE;

    secure_logging := clv$secure_logging_activated;
    stats_enabled := clv$command_statistics_enabled;

    IF NOT stats_enabled THEN
      RETURN;
    IFEND;

    pmp$find_executing_task_xcb (xcb);

    IF xcb = NIL THEN
      osp$system_error ('task XCB lost', NIL);
    IFEND;

    cmd_statistics.paging_statistics := xcb^.paging_statistics;

    pmp$get_task_cp_time (cp_time, local_status);

    IF local_status.normal THEN
      cmd_statistics.cptime := cp_time;
    ELSE
      cmd_statistics.cptime.task_time := 0;
      cmd_statistics.cptime.monitor_time := 0;
    IFEND;

  PROCEND clp$get_command_statistics;

?? TITLE := 'clp$get_log_secure_parameters', EJECT ??

  PROCEDURE [XDCL, #GATE] clp$get_log_secure_parameters
    (VAR log_secure_parameters: boolean);


    log_secure_parameters := clv$log_secure_parameters;

  PROCEND clp$get_log_secure_parameters;

MODEND clm$command_stats_ring_3;
