示例#1
0
文件: coretodset.c 项目: Dipupo/rtems
void _TOD_Set(
  const Timestamp_Control *tod_as_timestamp,
  ISR_lock_Context        *lock_context
)
{
  struct timespec tod_as_timespec;
  uint64_t        tod_as_ticks;
  uint32_t        cpu_count;
  uint32_t        cpu_index;

  _Assert( _API_Mutex_Is_owner( _Once_Mutex ) );

  _Timecounter_Set_clock( tod_as_timestamp, lock_context );

  _Timestamp_To_timespec( tod_as_timestamp, &tod_as_timespec );
  tod_as_ticks = _Watchdog_Ticks_from_timespec( &tod_as_timespec );
  cpu_count = _SMP_Get_processor_count();

  for ( cpu_index = 0 ; cpu_index < cpu_count ; ++cpu_index ) {
    Per_CPU_Control *cpu = _Per_CPU_Get_by_index( cpu_index );

    _Watchdog_Per_CPU_tickle_absolute( cpu, tod_as_ticks );
  }

  _TOD.is_set = true;
}
示例#2
0
bool _RTEMS_Allocator_is_owner( void )
{
  return _API_Mutex_Is_owner( &_RTEMS_Allocator_Mutex );
}