
{
{    The purpose of this procedure is to initiate the execution of the
{  specified procedure as a task.
{
{        PMP$EXECUTE_PROCEDURE_AS_TASK (INITIAL_RING, PROCEDURE, PARAMETERS,
{          CRITICAL_FRAME, TASK_ID, TASK_STATUS, STATUS)
{
{  INITIAL_RING: (input) This parameter specifies the initial ring of execution
{        for the procedure.
{
{  PROCEDURE: (input) This parameter specifies the procedure at which execution
{        is to begin.
{
{  PARAMETERS: (input) This parameter specifies the parameters to be passed
{        to the task.
{
{  CRITICAL_FRAME: (input) This parameter specifies the PVA of the most recent
{        entry on the caller's stack that is also required to be present in
{        the callee.  This stack frame will not be removed from the stack
{        until the callee has terminated.
{
{  TASK_ID: (output) This parameter specifies the system supplied
{        identification of the executed task.  This identification can be
{        used in subsequent requests.
{
{  TASK_STATUS: (output) This parameter specifies the status of the
{        asynchronously executed procedure.  It is set to incomplete after
{        the request has been processed and set to complete when the asynchronously
{        executed procedure terminates.  This implies that the lifetime of the task
{        status variable must be the duration of the asynchronously executed
{        procedure.
{
{  STATUS: (output) This parameter specifies the request status.
{       CONDITIONS: pme$no_available_stacks
{
{       IDENTIFIER: 'PM'
{
