⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 thread.inl

📁 RTEMS (Real-Time Executive for Multiprocessor Systems) is a free open source real-time operating sys
💻 INL
字号:
/*  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.rtems.com/license/LICENSE. * *  $Id: thread.inl,v 1.12.2.2 2006/03/07 20:47:24 joel 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 * */#if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )#define _Thread_Restart_self()  \  {  \     if ( _Thread_Executing->fp_context != NULL ) \       _Context_Restore_fp( &_Thread_Executing->fp_context ); \     \    _CPU_Context_Restart_self( &_Thread_Executing->Registers ); \  }#else#define _Thread_Restart_self()  \  {  \    _CPU_Context_Restart_self( &_Thread_Executing->Registers ); \  }#endif/*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 * */#if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )#define _Thread_Is_allocated_fp( _the_thread ) \        ( (_the_thread) == _Thread_Allocated_fp )#endif/*PAGE * *  _Thread_Deallocate_fp * */#if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )#define _Thread_Deallocate_fp() \        _Thread_Allocated_fp = NULL#endif/*PAGE * *  _Thread_Disable_dispatch * */#define _Thread_Disable_dispatch() \  do { \    _Thread_Dispatch_disable_level += 1; \    RTEMS_COMPILER_MEMORY_BARRIER(); \  } while (0)/*PAGE * *  _Thread_Enable_dispatch * */#if ( CPU_INLINE_ENABLE_DISPATCH == TRUE )#define _Thread_Enable_dispatch()  \  do { \    RTEMS_COMPILER_MEMORY_BARRIER(); \    if ( (--_Thread_Dispatch_disable_level) == 0 ) \       _Thread_Dispatch(); \  } while (0)#endif#if ( CPU_INLINE_ENABLE_DISPATCH == FALSE )void _Thread_Enable_dispatch( void );#endif/*PAGE * *  _Thread_Unnest_dispatch * */#define _Thread_Unnest_dispatch()  \  do { \    RTEMS_COMPILER_MEMORY_BARRIER(); \    _Thread_Dispatch_disable_level -= 1; \  } while (0)/*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 )/* *  _Thread_Get_libc_reent */ #define _Thread_Get_libc_reent() \  (_Thread_libc_reent)/* *  _Thread_Set_libc_reent */ #define _Thread_Set_libc_reent(_libc_reent) \  do { \    _Thread_libc_reent = (_libc_reent); \  } while (0)#endif/* end of include file */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -