?? NEWTITLE := 'NOS/VE: Program Management : Debug Stack Managers 1FF' ??
MODULE pmm$debug_stack_managers_1ff;
?? RIGHT := 110 ??

{ PURPOSE:
{   This module is responsible for the declaring and obtaining the the job debug ring (task shared).

?? NEWTITLE := 'Global Declarations Referenced by This Module' ??
?? PUSH (LISTEXT := ON) ??
*copyc osd$virtual_address
*copyc oss$task_shared
?? POP ??
?? OLDTITLE ??
?? NEWTITLE := 'Global Declarations Declared by This Module' ??

  VAR
    pmv$job_debug_ring: [XDCL, oss$task_shared] ost$ring := 11;

?? OLDTITLE ??
?? NEWTITLE := 'pmp$job_debug_ring', EJECT ??

*copy pmh$job_debug_ring

  FUNCTION [XDCL, #GATE] pmp$job_debug_ring: ost$ring;

    pmp$job_debug_ring := pmv$job_debug_ring;

  FUNCEND pmp$job_debug_ring;

?? OLDTITLE ??
?? NEWTITLE := 'pmp$purge_instruction_stack', EJECT ??

{ NOTE:
{ The following procedure has been translated into ASSEMBLE code and is now located in the module
{ PMM$JOB_TEMPLATE_TRAP_HANDLER.  The need for the translation arose with the advent of the CYBER 2000
{ processor which needed an instruction stack purge instruction placed in this procedure.  The presence of
{ the instruction will not affect any non-CYBER_2000 processor.
{
{ PROCEDURE [XDCL, #GATE] pmp$purge_instruction_stack;
{
{ This is a routine to be used to insure that a CALLSEG instruction is
{ executed after code modification. (Current use is by the Interactive Debugger).
{
{   #KEYPOINT (osk$entry, 0, pmk$purge_instruction_stack);
{   #KEYPOINT (osk$exit, 0, pmk$purge_instruction_stack);
{
{ PROCEND pmp$purge_instruction_stack;

MODEND pmm$debug_stack_managers_1ff;
