?? RIGHT := 110 ??
?? NEWTITLE := 'NOS/VE OS : Intermediate Calls For Multiprocessing' ??
MODULE osm$multipro_interface_r3;

{ PURPOSE:
{   This module contains the calls to the procedures that set up and display the multiprocessing environment.
{   This module also contains procedures for selecting processor for execution.

?? NEWTITLE := 'Global Declarations Referenced by This Module', EJECT ??
?? PUSH (LISTEXT := ON) ??
*copyc pmk$keypoints
?? POP ??
*copyc jmp$get_multipro_options_r1
*copyc jmp$set_multiprocessing_r1
*copyc osp$select_processors_w_divide1
*copyc osp$verify_system_privilege
*copyc pmp$deselect_processor_r1
*copyc pmp$get_processor_descrip_r1
*copyc pmp$select_processor_r1
?? OLDTITLE ??
?? NEWTITLE := 'jmp$get_multipro_options_r3', EJECT ??
  PROCEDURE [XDCL, #GATE] jmp$get_multipro_options_r3
    (VAR multipro_toggled: boolean;
     VAR status: ost$status);

    status.normal := TRUE;
    jmp$get_multipro_options_r1 (multipro_toggled, status);

  PROCEND jmp$get_multipro_options_r3;
?? OLDTITLE ??
?? NEWTITLE := 'jmp$set_multiprocessing_r3', EJECT ??
  PROCEDURE [XDCL, #GATE] jmp$set_multiprocessing_r3
    (    multiprocessing_state: ost$name;
         processor_id_set: ost$processor_id_set;
     VAR status: ost$status);

    status.normal := TRUE;
    jmp$set_multiprocessing_r1 (multiprocessing_state, processor_id_set, status);

  PROCEND jmp$set_multiprocessing_r3;
?? OLDTITLE ??
?? NEWTITLE := 'osp$select_processors_w_divide', EJECT ??
  FUNCTION [XDCL, #GATE, UNSAFE] osp$select_processors_w_divide: boolean;

   VAR
     switched: boolean;

    osp$verify_system_privilege;
    osp$select_processors_w_divide1 (switched);
    osp$select_processors_w_divide := switched;

  FUNCEND osp$select_processors_w_divide;
?? OLDTITLE ??
?? NEWTITLE := 'pmp$deselect_processor', EJECT ??
  PROCEDURE [XDCL, #GATE] pmp$deselect_processor
    (VAR status: ost$status);

    #keypoint (osk$entry, 0, pmk$deselect_processor);
    status.normal := TRUE;
    pmp$deselect_processor_r1 (status);
    #keypoint (osk$exit, 0, pmk$deselect_processor);

  PROCEND pmp$deselect_processor;
?? OLDTITLE ??
?? NEWTITLE := 'pmp$get_processor_descriptions', EJECT ??
  PROCEDURE [XDCL, #GATE] pmp$get_processor_descriptions
    (VAR processor_descriptions: pmt$processor_descriptions;
     VAR status: ost$status);

    status.normal := TRUE;
    pmp$get_processor_descrip_r1 (processor_descriptions, status);

  PROCEND pmp$get_processor_descriptions;
?? OLDTITLE ??
?? NEWTITLE := 'pmp$select_processor', EJECT ??
  PROCEDURE [XDCL, #GATE] pmp$select_processor
    (    id: ost$logical_processor_id;
     VAR status: ost$status);

    #keypoint (osk$entry, 0, pmk$select_processor);
    status.normal := TRUE;
    pmp$select_processor_r1 (id, status);
    #keypoint (osk$exit, 0, pmk$select_processor);

  PROCEND pmp$select_processor;
?? OLDTITLE ??
MODEND osm$multipro_interface_r3
