Type ASSEMBLE
Source Lines : 2,181
Fixes Applied : 1
Most Recent Version : Tuesday, December 12, 1978
Last Fix ID : [R11833DS]
Module
DMSFRE (FREE AND FRET)
Function
MANAGEMENT OF FREE STORAGE.
Attributes
NUCLEUS RESIDENT, RE-ENTRANT
Operation
DMSFREB -- ALLOCATES OR RELEASES A BLOCK OF STORAGE DEPENDING UPON THE CODE IN NUCON LOCATION 'CODE203'. THE EXACT METHOD OF OPERATION IS DESCRIBED IN THE PLM, IN THE SECTION ON FREE STORAGE MANAGEMENT. DMSFREES -- THE SIZE IS LOADED FROM THE PLIST, AND A DMSFREE MACRO IS EXECUTED. UPON RETURN, THE ADDRESS OF THE ALLOCATED BLOCK IS STORED INTO THE PLIST. DMSFRETS -- THE SIZE AND ADDRESS OF THE BLOCK TO BE RELEASED ARE LOADED FROM THE PLIST, AND A DMSFRET MACRO IS EXECUTED. DMSFREEX -- A DMSFREE MACRO IS EXECUTED. DMSFRETX -- A DMSFRET MACRO IS EXECUTED. DMSFRES -- THE FOLLOWING SERVICE ROUTINES ARE EXECUTED: CKON: TURN ON FLAG WHICH CAUSES 'CHECK' TO BE EXECUTED WITH EACH CALL TO DMSFRE. CKOFF: TURN OFF THIS FLAG. INIT1: FIRST DMSFRE INITIALIZATION ROUTINE. THIS ROUTINE INITIALIZES FREE STORAGE IN A TEMPORARY WAY, SO THAT THE SYSTEM DISK CAN BE LOGGED IN. INIT2: SECOND DMSFRE INITIALIZATION ROUTINE. THIS ROUTINE IS CALLED AFTER THE SIZE OF VIRTUAL MEMORY IS KNOWN, TO PREPARE STORAGE FOR THE USUAL ACTIVITY IN FREE STORAGE ALLOCATION. ANY HIGH-CORE POINTERS ARE CLEARED, THE 'FREETAB' FREE STORAGE TABLE IS ALLOCATED (THIS TABLE CONTAINS ONE BYTE FOR EACH PAGE OF VIRTUAL MEMORY, WHICH INDICATES THE USE OF THAT PAGE), ALL STORAGE KEYS ARE INITIALIZED, AND THE CHAINS ARE CLEANED UP. CHECKS: CAUSE ALL CHAINS TO BE CHECKED FOR VALIDITY. UREC: RECOVERY ROUTINE CALLED BY DMSABN. ALL USER FREE STORAGE BLOCKS ARE RELEASED. CALOC: COMPUTATION ROUTINE CALLED BY DMSABN. THIS ROUTINE COMPUTES THE SIZE OF ALLOCATED STORAGE.
Calls to Other Routines
DMSERR -- TO TYPE OUT ERROR MESSAGES