Type ASSEMBLE
Source Lines : 248
Fixes Applied : 0
Most Recent Version : Thursday, December 7, 1978
Last Fix ID : [Unmodified]
Module
DMTAKE
Function
THE DMTAKE MODULE CONTAINS THE SUPR SERVICE WHICH SUPPLIES TASK PROGRAMS WITH THE RECEIVER INTERFACE TO GIVE REQUESTS ISSUED BY OTHER TASKS. A SINGLE CALL TO DMTAKE FIRST RESPONDS TO THE PREVIOUSLY SUPPLIED GIVE REQUEST, AND THEN SUPPLIES A NEW GIVE REQUEST TO THE TASK FOR ITS PROCESSING.
Attributes
REUSABLE, NON-INTERRUPTABLE
Operation
DMTAKE BEGINS PROCESSING BY SUSPENDING THE CALLING TASK'S EXECUTION BY THE FREEZE SVC FUNCTION. THE GIVE REQUEST QUEUE IS SCANNED FOR AN ELEMENT REFLECTING A PENDING RESPONSE TO A PREVIOUSLY RECEIVED GIVE REQUEST. IF SUCH AN ELEMENT IS FOUND, THE RESPONSE BUFFER SUPPLIED BY THE CALLER IS MOVED TO THE SENDER'S RESPONSE BUFFER, AND THE SENDER'S GIVE TABLE IS POSTED WITH THE CODE SUPPLIED BY THE RESPONDING TASK. THE GIVE REQUEST QUEUE IS THEN SCANNED AGAIN FOR AN ELEMENT REFLECTING A PREVIOUSLY UNACCEPTED GIVE REQUEST ADDRESSED TO THE CALLING TASK. IF SUCH AN ELEMENT IS FOUND, THE REQUEST BUFFER SUPPLIED BY THE TASK ISSUING THE GIVE REQUEST IS MOVED TO THE DMTAKE CALLER'S REQUEST BUFFER. THE RETURN CODE IS SET ACCORDING TO THE CONDITIONS WHICH OCCURED DURING THE DMTAKE REQUEST PROCESSING, AND CONTROL IS RETURNED TO THE DISPATCHER.
Calls to Other Routines
DMTQRQ - TO RESERVE AND RELEASE SUP QUEUE ELEMENTS DMTPST - TO POST RESPONSE COMPLETION