Type ASSEMBLE
Source Lines : 317
Fixes Applied : 0
Most Recent Version : Thursday, December 7, 1978
Last Fix ID : [Unmodified]
Module
DMTASY
Function
DMTASY IS A SUPERVISOR SERVICE ROUTINE MODULE WHICH INITIATES AND TERMINATES ASYNCHRONOUS EXIT REQUESTS FOR TASK PROGRAMS. ASYNCHRONOUS EXIT REQUESTS FOR ASYNCHRONOUS I/O INTERRUPT, EXTERNAL INTERRUPT, AND ALERT EXIT REQUESTS ARE HANDLED BY THIS ROUTINE.
Attributes
REUSABLE
Operation
DMTASY BEGINS BY UNCONDITIONALLY SUSPENDING THE CALLING TASK'S EXECUTION WITH A FREEZE SVC. FOR AN INITIATE EXIT REQUEST, THE APPROPRIATE QUEUE IS SCANNED FOR AN EXISTING SIMILAR REQUEST FOR THE SAME TASK. IF NONE IS FOUND, A SUPERVISOR STATUS QUEUE ELEMENT IS GOTTEN BY A CALL TO DMTQRQ, THE NEW EXIT ELEMENT IS BUILT FROM THE SUPPLIED INFORMATION, AND IT IS QUEUED ON THE APPROPRIATE CHAIN. FOR CLOCK COMPARATOR REQUESTS, THE NEW REQUEST IS QUEUED IN THE APPROPRIATE PLACE IN THE QUEUE. THE EXTERNAL QUEUE IS ORDERED IN THE FOLLOWING WAY: 1. CLOCK COMPARATOR INTERRUPTS IN ASCENDING CLOCK VALUE ORDER. 2. ALL OTHER EXTERNAL REQUESTS. IF THE NEW REQUEST IS NOW THE LOWEST CLOCK REQUEST, ITS CLOCK VALUE IS SET IN THE CLOCK COMPARATOR. IF AN ELEMENT IS FOUND AND A TERMINATE REQUEST IS BEING MADE, THE ELEMENT IS DEQUEUED AND RETURNED TO THE FREEQ. IF THE RETURNED ELEMENT REPRESENTS THE ACTIVE CLOCK COMPARATOR, THE CLOCK COMPARATOR IS SET TO ALL F'S. NOTE: THE EXTERNAL INTERRUPT QUEUE IS MAINTAINED IN THE FOLLOWING ORDER: . CLOCK COMPARATOR REQUESTS IN ASCENDING CLOCK ORDER. THE FIRST CLOCK COMPARATOR ENTRY REPRESENTS THE CLOCK VALUE WHICH HAS BEEN SET (UNLESS NONE HAS BEEN REQUESTED, IN WHICH CASE THE CLOCK COMPARATOR IS FF'S) . ALL OTHER EXTERNAL INTERRUPT REQUESTS IN ANY ORDER. CLOCK COMPARATOR EXIT REQUESTS ARE INITIATED BY THIS ROUTINE. THEY ARE TERMINATED BY EITHER A TERMINATE REQUEST TO THIS ROUTINE OR BY THE OCCURENCE OF THE INTERRUPT.
Calls to Other Routines
DMTQRQ - TO RESERVE AND RELEASE SUP QUEUE ELEMENTS