URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [rtos/] [rtems/] [c/] [src/] [exec/] [score/] [macros/] [rtems/] [score/] [thread.inl] - Rev 173
Compare with Previous | Blame | View Log
/* thread.inl
*
* This file contains the macro implementation of the inlined
* routines from the Thread handler.
*
* COPYRIGHT (c) 1989-1999.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
* found in the file LICENSE in this distribution or at
* http://www.OARcorp.com/rtems/license.html.
*
* $Id: thread.inl,v 1.2 2001-09-27 11:59:34 chris Exp $
*/
#ifndef __THREAD_inl
#define __THREAD_inl
/*PAGE
*
* _Thread_Stop_multitasking
*
*/
#define _Thread_Stop_multitasking() \
_Context_Switch( &_Thread_Executing->Registers, &_Thread_BSP_context );
/*PAGE
*
* _Thread_Is_executing
*
*/
#define _Thread_Is_executing( _the_thread ) \
( (_the_thread) == _Thread_Executing )
/*PAGE
*
* _Thread_Is_heir
*
*/
#define _Thread_Is_heir( _the_thread ) \
( (_the_thread) == _Thread_Heir )
/*PAGE
*
* _Thread_Is_executing_also_the_heir
*
*/
#define _Thread_Is_executing_also_the_heir() \
( _Thread_Executing == _Thread_Heir )
/*PAGE
*
* _Thread_Unblock
*
*/
#define _Thread_Unblock( _the_thread ) \
_Thread_Clear_state( (_the_thread), STATES_BLOCKED );
/*PAGE
*
* _Thread_Restart_self
*
*/
#define _Thread_Restart_self() \
{ \
if ( _Thread_Executing->fp_context != NULL ) \
_Context_Restore_fp( &_Thread_Executing->fp_context ); \
\
_CPU_Context_Restart_self( &_Thread_Executing->Registers ); \
}
/*PAGE
*
* _Thread_Calculate_heir
*
*/
#define _Thread_Calculate_heir() \
{ \
Priority_Control highest; \
\
_Priority_Get_highest( highest ); \
\
_Thread_Heir = (Thread_Control *) _Thread_Ready_chain[ highest ].first; \
}
/*PAGE
*
* _Thread_Is_allocated_fp
*
*/
#define _Thread_Is_allocated_fp( _the_thread ) \
( (_the_thread) == _Thread_Allocated_fp )
/*PAGE
*
* _Thread_Deallocate_fp
*
*/
#define _Thread_Deallocate_fp() \
_Thread_Allocated_fp = NULL
/*PAGE
*
* _Thread_Disable_dispatch
*
*/
#define _Thread_Disable_dispatch() \
_Thread_Dispatch_disable_level += 1
/*PAGE
*
* _Thread_Enable_dispatch
*
*/
#if ( CPU_INLINE_ENABLE_DISPATCH == TRUE )
#define _Thread_Enable_dispatch() \
{ if ( (--_Thread_Dispatch_disable_level) == 0 ) \
_Thread_Dispatch(); \
}
#endif
#if ( CPU_INLINE_ENABLE_DISPATCH == FALSE )
void _Thread_Enable_dispatch( void );
#endif
/*PAGE
*
* _Thread_Unnest_dispatch
*
*/
#define _Thread_Unnest_dispatch() \
_Thread_Dispatch_disable_level -= 1
/*PAGE
*
* _Thread_Is_dispatching_enabled
*
*/
#define _Thread_Is_dispatching_enabled() \
( _Thread_Dispatch_disable_level == 0 )
/*PAGE
*
* _Thread_Is_context_switch_necessary
*
*/
#define _Thread_Is_context_switch_necessary() \
( _Context_Switch_necessary == TRUE )
/*PAGE
*
* _Thread_Dispatch_initialization
*
*/
#define _Thread_Dispatch_initialization() \
_Thread_Dispatch_disable_level = 1
/*PAGE
*
* _Thread_Is_null
*
*/
#define _Thread_Is_null( _the_thread ) \
( (_the_thread) == NULL )
/*
* _Thread_Is_proxy_blocking
*
*/
#define _Thread_Is_proxy_blocking( _code ) \
( (_code) == THREAD_STATUS_PROXY_BLOCKING )
/*
* _Thread_Internal_allocate
*
*/
#define _Thread_Internal_allocate() \
((Thread_Control *) _Objects_Allocate( &_Thread_Internal_information ))
/*
* _Thread_Internal_free
*
*/
#define _Thread_Internal_free( _the_task ) \
_Objects_Free( &_Thread_Internal_information, &(_the_task)->Object )
#endif
/* end of include file */