summaryrefslogtreecommitdiffstats
path: root/bsps/arm/shared
diff options
context:
space:
mode:
Diffstat (limited to 'bsps/arm/shared')
-rw-r--r--bsps/arm/shared/irq/irq-gic.c38
1 files changed, 37 insertions, 1 deletions
diff --git a/bsps/arm/shared/irq/irq-gic.c b/bsps/arm/shared/irq/irq-gic.c
index ea4b6ef06a..6f525b753d 100644
--- a/bsps/arm/shared/irq/irq-gic.c
+++ b/bsps/arm/shared/irq/irq-gic.c
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2013 embedded brains GmbH. All rights reserved.
+ * Copyright (c) 2013, 2019 embedded brains GmbH. All rights reserved.
*
* embedded brains GmbH
* Dornierstr. 4
@@ -157,6 +157,42 @@ rtems_status_code arm_gic_irq_get_priority(
return sc;
}
+rtems_status_code arm_gic_irq_set_group(
+ rtems_vector_number vector,
+ gic_group group
+)
+{
+ rtems_status_code sc = RTEMS_SUCCESSFUL;
+
+ if (bsp_interrupt_is_valid_vector(vector)) {
+ volatile gic_dist *dist = ARM_GIC_DIST;
+
+ gic_id_set_group(dist, vector, group);
+ } else {
+ sc = RTEMS_INVALID_ID;
+ }
+
+ return sc;
+}
+
+rtems_status_code arm_gic_irq_get_group(
+ rtems_vector_number vector,
+ gic_group *group
+)
+{
+ rtems_status_code sc = RTEMS_SUCCESSFUL;
+
+ if (bsp_interrupt_is_valid_vector(vector)) {
+ volatile gic_dist *dist = ARM_GIC_DIST;
+
+ *group = gic_id_get_group(dist, vector);
+ } else {
+ sc = RTEMS_INVALID_ID;
+ }
+
+ return sc;
+}
+
void bsp_interrupt_set_affinity(
rtems_vector_number vector,
const Processor_mask *affinity