diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-07-11 11:54:30 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2017-07-12 08:00:13 +0200 |
commit | af207fa9f6ac891b9a61f36bd8382eb89358aeca (patch) | |
tree | 0f6604b9702087b467c48bd747b63f865b43c697 /c/src/lib/libbsp/arm/shared/arm-gic-irq.c | |
parent | Add interrupt server move (diff) | |
download | rtems-af207fa9f6ac891b9a61f36bd8382eb89358aeca.tar.bz2 |
Add interrupt vector set/get affinity
Close #3071.
Diffstat (limited to '')
-rw-r--r-- | c/src/lib/libbsp/arm/shared/arm-gic-irq.c | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/c/src/lib/libbsp/arm/shared/arm-gic-irq.c b/c/src/lib/libbsp/arm/shared/arm-gic-irq.c index 5a4a998bfb..7d36ce0930 100644 --- a/c/src/lib/libbsp/arm/shared/arm-gic-irq.c +++ b/c/src/lib/libbsp/arm/shared/arm-gic-irq.c @@ -153,20 +153,24 @@ rtems_status_code arm_gic_irq_get_priority( return sc; } -rtems_status_code arm_gic_irq_set_affinity( +void bsp_interrupt_set_affinity( rtems_vector_number vector, - uint8_t targets + const Processor_mask *affinity ) { - rtems_status_code sc = RTEMS_SUCCESSFUL; + volatile gic_dist *dist = ARM_GIC_DIST; + uint8_t targets = (uint8_t) _Processor_mask_To_uint32_t(affinity, 0); - if (bsp_interrupt_is_valid_vector(vector)) { - volatile gic_dist *dist = ARM_GIC_DIST; + gic_id_set_targets(dist, vector, targets); +} - gic_id_set_targets(dist, vector, targets); - } else { - sc = RTEMS_INVALID_ID; - } +void bsp_interrupt_get_affinity( + rtems_vector_number vector, + Processor_mask *affinity +) +{ + volatile gic_dist *dist = ARM_GIC_DIST; + uint8_t targets = gic_id_get_targets(dist, vector); - return sc; + _Processor_mask_From_uint32_t(affinity, targets, 0); } |