sptaskyielded.c
1.29 KB
/**************************************************************************
* *
* Copyright (C) 1994, Silicon Graphics, Inc. *
* *
* These coded instructions, statements, and computer programs contain *
* unpublished proprietary information of Silicon Graphics, Inc., and *
* are protected by Federal copyright law. They may not be disclosed *
* to third parties or copied or duplicated in any form, in whole or *
* in part, without the prior written consent of Silicon Graphics, Inc. *
* *
*************************************************************************/
#include <sptask.h>
#include "osint.h"
#include "rcp.h"
/*
* Check to see if a recently-done task has yielded.
*/
OSYieldResult
osSpTaskYielded(OSTask *tp)
{
u32 status;
OSYieldResult result;
status = __osSpGetStatus();
result = (status & SP_STATUS_YIELDED) ?
(OSYieldResult)OS_TASK_YIELDED : (OSYieldResult)0;
if (status & SP_STATUS_YIELD) {
tp->t.flags |= result;
tp->t.flags &= ~OS_TASK_DP_WAIT;
}
return (result);
}