MODULE osm$heap_manager_helpers_113;
?? RIGHT := 110 ??

{ PURPOSE:
{   This module exists solely to test the new heap manager and to generate a map
{   of the mainframe wide heaps.

?? NEWTITLE := 'Global Declarations Referenced By This Module', EJECT ??
?? PUSH (LISTEXT := ON) ??
*copyc osd$virtual_address
*copyc ose$undefined_condition
*copyc ost$status
?? POP ??
*copyc osp$generate_heap_map
*copyc osp$set_status_condition
*copyc nav$network_paged_heap
*copyc nav$network_wired_heap
*copyc osv$job_fixed_heap
*copyc osv$mainframe_pageable_heap
*copyc osv$mainframe_wired_cb_heap
*copyc osv$mainframe_wired_heap
?? OLDTITLE ??
?? NEWTITLE := '[xdcl, #gate] OSP$GENERATE_HEAP_MAP_R1', EJECT ??
*copyc osv$job_pageable_heap
  PROCEDURE [XDCL, #GATE] osp$generate_heap_map_r1
    (    heap_segment: ost$segment;
     VAR heap_map: ost$heap_map;
     VAR status: ost$status);

    VAR
      heap_p: ^HEAP ( * );

    status.normal := TRUE;
    heap_p := NIL;
    CASE heap_segment OF {                  segment
    = osc$segnum_mainframe_wired = {           1
      heap_p := osv$mainframe_wired_heap;
    = osc$segnum_mainframe_wired_cb = {       12(16) = 18
      heap_p := osv$mainframe_wired_cb_heap;
    = osc$segnum_mainframe_paged = {           2
      heap_p := osv$mainframe_pageable_heap;
    = osc$segnum_job_fixed_heap = {            3
      heap_p := osv$job_fixed_heap;
    = osc$segnum_task_private_ring_11 = {      7 = network wired heap
      heap_p := nav$network_wired_heap;
    = 15 = {                                  15
      heap_p := nav$network_paged_heap;

    ELSE
    CASEND;

    IF heap_p = NIL THEN
      osp$set_status_condition (ose$undefined_condition, status);
      RETURN; {----->
    ELSE
      osp$generate_heap_map (heap_p, heap_map);
    IFEND;

  PROCEND osp$generate_heap_map_r1;
?? OLDTITLE ??
MODEND osm$heap_manager_helpers_113;
