summaryrefslogtreecommitdiffstats
path: root/bsps/riscv
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2022-11-09 16:08:08 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2022-11-10 08:55:38 +0100
commit47d156d706d63c52e6f2a5a6c978752606380139 (patch)
tree7acac5dee8adc8d62df1034a12b1bed020740de4 /bsps/riscv
parentbsps/riscv: bsp_interrupt_raise_on() (diff)
downloadrtems-47d156d706d63c52e6f2a5a6c978752606380139.tar.bz2
bsps/riscv: bsp_interrupt_get/set_affinity()
Provide bsp_interrupt_get_affinity() and bsp_interrupt_set_affinity() only if RTEMS_SMP is enabled. Replace fatal error with a status code.
Diffstat (limited to 'bsps/riscv')
-rw-r--r--bsps/riscv/riscv/irq/irq.c19
1 files changed, 6 insertions, 13 deletions
diff --git a/bsps/riscv/riscv/irq/irq.c b/bsps/riscv/riscv/irq/irq.c
index e414711ef6..c538447cb2 100644
--- a/bsps/riscv/riscv/irq/irq.c
+++ b/bsps/riscv/riscv/irq/irq.c
@@ -567,6 +567,7 @@ rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
return RTEMS_SUCCESSFUL;
}
+#ifdef RTEMS_SMP
rtems_status_code bsp_interrupt_set_affinity(
rtems_vector_number vector,
const Processor_mask *affinity
@@ -595,7 +596,7 @@ rtems_status_code bsp_interrupt_set_affinity(
return RTEMS_SUCCESSFUL;
}
- bsp_fatal(RISCV_FATAL_INVALID_INTERRUPT_AFFINITY);
+ return RTEMS_INVALID_NUMBER;
}
return RTEMS_UNSATISFIED;
@@ -606,8 +607,6 @@ rtems_status_code bsp_interrupt_get_affinity(
Processor_mask *affinity
)
{
- _Processor_mask_Zero(affinity);
-
if (RISCV_INTERRUPT_VECTOR_IS_EXTERNAL(vector)) {
uint32_t interrupt_index;
volatile uint32_t *enable;
@@ -616,7 +615,6 @@ rtems_status_code bsp_interrupt_get_affinity(
enable = riscv_plic_irq_to_cpu[interrupt_index - 1];
if (enable != NULL) {
-#ifdef RTEMS_SMP
uint32_t cpu_max;
uint32_t cpu_index;
@@ -632,18 +630,13 @@ rtems_status_code bsp_interrupt_get_affinity(
break;
}
}
-#else
- Per_CPU_Control *cpu;
-
- cpu = _Per_CPU_Get_by_index(0);
-
- if (enable == cpu->cpu_per_cpu.plic_m_ie)
- _Processor_mask_Set(affinity, 0);
-#endif
} else {
_Processor_mask_Assign(affinity, _SMP_Get_online_processors());
}
+
+ return RTEMS_SUCCESSFUL;
}
- return RTEMS_SUCCESSFUL;
+ return RTEMS_UNSATISFIED;
}
+#endif