Changeset 7fdf48a in rtems


Ignore:
Timestamp:
Apr 28, 2019, 12:29:21 PM (6 months ago)
Author:
Sebastian Huber <sebastian.huber@…>
Branches:
master
Children:
3b2481f
Parents:
65870044
git-author:
Sebastian Huber <sebastian.huber@…> (04/28/19 12:29:21)
git-committer:
Sebastian Huber <sebastian.huber@…> (05/20/19 06:49:39)
Message:

score: Add _SMP_Othercast_action()

Files:
4 edited

Legend:

Unmodified
Added
Removed
  • bsps/arm/shared/clock/clock-a9mpcore.c

    r65870044 r7fdf48a  
    103103static void a9mpcore_clock_secondary_action(void *arg)
    104104{
    105   if (!_Per_CPU_Is_boot_processor(_Per_CPU_Get())) {
    106     volatile a9mpcore_gt *gt = A9MPCORE_GT;
    107     a9mpcore_clock_init_data *init_data = arg;
     105  volatile a9mpcore_gt *gt = A9MPCORE_GT;
     106  a9mpcore_clock_init_data *init_data = arg;
    108107
    109     a9mpcore_clock_gt_init(gt, init_data->cmpval, init_data->interval);
    110     bsp_interrupt_vector_enable(A9MPCORE_IRQ_GT);
    111   }
     108  a9mpcore_clock_gt_init(gt, init_data->cmpval, init_data->interval);
     109  bsp_interrupt_vector_enable(A9MPCORE_IRQ_GT);
    112110}
    113111#endif
     
    125123  };
    126124
    127   _SMP_Broadcast_action(a9mpcore_clock_secondary_action, &init_data);
     125  _SMP_Othercast_action(a9mpcore_clock_secondary_action, &init_data);
    128126
    129127  if (cmpval - a9mpcore_clock_get_counter(gt) >= interval) {
  • bsps/arm/shared/clock/clock-generic-timer.c

    r65870044 r7fdf48a  
    123123static void arm_gt_clock_secondary_action(void *arg)
    124124{
    125   if (!_Per_CPU_Is_boot_processor(_Per_CPU_Get())) {
    126     uint64_t *cval;
    127 
    128     cval = arg;
    129     arm_gt_clock_gt_init(*cval);
    130     bsp_interrupt_vector_enable(arm_gt_clock_instance.irq);
    131   }
     125  uint64_t *cval;
     126
     127  cval = arg;
     128  arm_gt_clock_gt_init(*cval);
     129  bsp_interrupt_vector_enable(arm_gt_clock_instance.irq);
    132130}
    133131#endif
  • cpukit/include/rtems/score/smpimpl.h

    r65870044 r7fdf48a  
    285285);
    286286
     287/**
     288 * @brief Initiates an SMP multicast action to the set of all online
     289 * processors excluding the current processor.
     290 *
     291 * Simply calls _SMP_Multicast_action() with _SMP_Get_online_processors() as
     292 * the target processor set excluding the current processor.
     293 *
     294 * @param handler The multicast action handler.
     295 * @param arg The multicast action argument.
     296 */
     297void _SMP_Othercast_action(
     298  SMP_Action_handler  handler,
     299  void               *arg
     300);
     301
    287302#endif /* defined( RTEMS_SMP ) */
    288303
  • cpukit/score/src/smpmulticastaction.c

    r65870044 r7fdf48a  
    259259  _SMP_Multicast_action( _SMP_Get_online_processors(), handler, arg );
    260260}
     261
     262void _SMP_Othercast_action(
     263  SMP_Action_handler  handler,
     264  void               *arg
     265)
     266{
     267  Processor_mask targets;
     268
     269  _Processor_mask_Assign( &targets, _SMP_Get_online_processors() );
     270  _Processor_mask_Clear( &targets, _SMP_Get_current_processor() );
     271  _SMP_Multicast_action( &targets, handler, arg );
     272}
Note: See TracChangeset for help on using the changeset viewer.