diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-07-03 11:46:12 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-07-06 15:29:16 +0200 |
commit | 3dfe55ee154b6053e936e7b458206b71aad51caa (patch) | |
tree | b455d560a13cccc855c3259c67f3fafa20f4fb97 /c/src | |
parent | xz: Suppress attribute warnings (diff) | |
download | rtems-3dfe55ee154b6053e936e7b458206b71aad51caa.tar.bz2 |
score: Use <sys/bitset.h> for Processor_mask
Implement the Processor_mask via <sys/bitset.h>. Provide
_Processor_mask_To_uint32_t() to enable its use in device specific
routines, e.g. interrupt affinity register in an interrupt controller.
Update #3059.
Diffstat (limited to 'c/src')
6 files changed, 12 insertions, 8 deletions
diff --git a/c/src/lib/libbsp/powerpc/qoriq/clock/clock-config.c b/c/src/lib/libbsp/powerpc/qoriq/clock/clock-config.c index 17d4bde3cb..42fdfda77c 100644 --- a/c/src/lib/libbsp/powerpc/qoriq/clock/clock-config.c +++ b/c/src/lib/libbsp/powerpc/qoriq/clock/clock-config.c @@ -133,7 +133,10 @@ static void qoriq_clock_cleanup(void) qoriq_clock_handler_install(&old_isr) #define Clock_driver_support_set_interrupt_affinity(online_processors) \ - qoriq_pic_set_affinities(CLOCK_INTERRUPT, online_processors[0]) + qoriq_pic_set_affinities( \ + CLOCK_INTERRUPT, \ + _Processor_mask_To_uint32_t(online_processors, 0) \ + ) #define Clock_driver_support_shutdown_hardware() \ qoriq_clock_cleanup() diff --git a/c/src/lib/libbsp/powerpc/qoriq/startup/bsprestart.c b/c/src/lib/libbsp/powerpc/qoriq/startup/bsprestart.c index 4159050e5d..c85a6b831d 100644 --- a/c/src/lib/libbsp/powerpc/qoriq/startup/bsprestart.c +++ b/c/src/lib/libbsp/powerpc/qoriq/startup/bsprestart.c @@ -99,7 +99,8 @@ static void restart_interrupt(void *arg) static void raise_restart_interrupt(void) { - qoriq.pic.ipidr[RESTART_IPI_INDEX].reg = _SMP_Online_processors[0]; + qoriq.pic.ipidr[RESTART_IPI_INDEX].reg = + _Processor_mask_To_uint32_t(&_SMP_Online_processors, 0); ppc_synchronize_data(); ppc_synchronize_instructions(); } diff --git a/c/src/lib/libbsp/shared/clockdrv_shell.h b/c/src/lib/libbsp/shared/clockdrv_shell.h index 2b90fe6f82..bf741339ae 100644 --- a/c/src/lib/libbsp/shared/clockdrv_shell.h +++ b/c/src/lib/libbsp/shared/clockdrv_shell.h @@ -80,7 +80,7 @@ static void Clock_driver_timecounter_tick( void ) if ( _Per_CPU_Is_boot_processor( cpu ) ) { rtems_timecounter_tick(); - } else if ( _Processor_mask_Is_set( _SMP_Online_processors, cpu_index ) ) { + } else if ( _Processor_mask_Is_set( &_SMP_Online_processors, cpu_index ) ) { _Watchdog_Tick( cpu ); } } @@ -227,7 +227,7 @@ rtems_device_driver Clock_initialize( Clock_driver_support_install_isr( Clock_isr, Old_ticker ); #ifdef RTEMS_SMP - Clock_driver_support_set_interrupt_affinity( _SMP_Online_processors ); + Clock_driver_support_set_interrupt_affinity( &_SMP_Online_processors ); #endif /* diff --git a/c/src/lib/libbsp/sparc/shared/drvmgr/ambapp_bus.c b/c/src/lib/libbsp/sparc/shared/drvmgr/ambapp_bus.c index d17affbf81..c2a63a71eb 100644 --- a/c/src/lib/libbsp/sparc/shared/drvmgr/ambapp_bus.c +++ b/c/src/lib/libbsp/sparc/shared/drvmgr/ambapp_bus.c @@ -59,7 +59,7 @@ void ambapp_dev_info(struct drvmgr_dev *, void (*print)(void *p, char *str), voi int ambapp_int_set_affinity( struct drvmgr_dev *dev, int index, - Processor_mask cpus); + const Processor_mask *cpus); #endif struct drvmgr_bus_ops ambapp_bus_ops = diff --git a/c/src/lib/libbsp/sparc/shared/drvmgr/ambapp_bus_grlib.c b/c/src/lib/libbsp/sparc/shared/drvmgr/ambapp_bus_grlib.c index 5305527346..f61d2a8ab0 100644 --- a/c/src/lib/libbsp/sparc/shared/drvmgr/ambapp_bus_grlib.c +++ b/c/src/lib/libbsp/sparc/shared/drvmgr/ambapp_bus_grlib.c @@ -50,7 +50,7 @@ int ambapp_grlib_int_unmask( int ambapp_grlib_int_set_affinity( struct drvmgr_dev *dev, int irq, - Processor_mask cpus); + const Processor_mask *cpus); #endif int ambapp_grlib_get_params( struct drvmgr_dev *dev, @@ -233,7 +233,7 @@ int ambapp_grlib_int_set_affinity ( struct drvmgr_dev *dev, int irq, - Processor_mask cpus + const Processor_mask *cpus ) { uint32_t cpu_count = rtems_get_processor_count(); diff --git a/c/src/lib/libbsp/sparc/shared/include/drvmgr/ambapp_bus.h b/c/src/lib/libbsp/sparc/shared/include/drvmgr/ambapp_bus.h index e59af066f6..d034aae3a3 100644 --- a/c/src/lib/libbsp/sparc/shared/include/drvmgr/ambapp_bus.h +++ b/c/src/lib/libbsp/sparc/shared/include/drvmgr/ambapp_bus.h @@ -91,7 +91,7 @@ struct ambapp_ops { int (*int_unmask)(struct drvmgr_dev *dev, int index); #ifdef RTEMS_SMP int (*int_set_affinity)(struct drvmgr_dev *dev, int index, - Processor_mask cpus); + const Processor_mask *cpus); #endif int (*get_params) (struct drvmgr_dev *, struct drvmgr_bus_params *); |