?? RIGHT := 110 ??
?? NEWTITLE := 'NOS/VE Operating System : Change OS Defaults Ring 3' ??
MODULE osm$change_os_defaults_r3;

{ PURPOSE:
{   This module contains the ring 3 interface for changing operating system defaults.

?? NEWTITLE := 'GLobal Declarations Referenced by This Module', EJECT ??
?? PUSH (LISTEXT := ON) ??
*copyc ofe$error_codes
*copyc ose$default_process_exceptions
?? POP ??
*copyc avp$configuration_administrator
*copyc avp$system_operator
*copyc osp$change_os_default_ring_1
*copyc osp$set_status_abnormal
?? OLDTITLE ??
?? NEWTITLE := 'osp$change_os_default_ring_3', EJECT ??

  PROCEDURE [XDCL, #GATE] osp$change_os_default_ring_3
    (    os_default: ost$operating_system_default;
     VAR status: ost$status);

    status.normal := TRUE;

    CASE os_default.kind OF

    = osc$os_name, osc$date_time, osc$time_zone =
      IF NOT avp$system_operator () THEN
        osp$set_status_abnormal ('OF', ofe$sou_not_active, 'system_operator', status);
        RETURN;
      IFEND;

    = osc$default_date_format, osc$default_time_format =
      IF NOT avp$configuration_administrator () THEN
        osp$set_status_abnormal ('OF', ofe$sou_not_active, 'configuration_admininistrator', status);
        RETURN;
      IFEND;

    ELSE
        osp$set_status_abnormal ('OS', ose$invalid_os_default_selected, '', status);
    CASEND;

    osp$change_os_default_ring_1 (os_default, status);

  PROCEND osp$change_os_default_ring_3;
MODEND osm$change_os_defaults_r3;
