forked from Imagelibrary/rtems
bsps: Move declarations to <bsp/irq-generic.h>
Move declarations of bsp_interrupt_get_affinity() and bsp_interrupt_set_affinity() to <bsp/irq-generic.h>. Canonicalize the <bsp/irq.h> includes. Implement bsp_interrupt_get_affinity() and bsp_interrupt_set_affinity() only if needed (usually RTEMS_SMP). Provide stub implementations for i386 to fix build errors.
This commit is contained in:
@@ -23,14 +23,8 @@
|
|||||||
#ifndef ASM
|
#ifndef ASM
|
||||||
|
|
||||||
#include <rtems.h>
|
#include <rtems.h>
|
||||||
#include <rtems/irq.h>
|
|
||||||
#include <rtems/irq-extension.h>
|
|
||||||
#include <dev/irq/arm-gic-irq.h>
|
#include <dev/irq/arm-gic-irq.h>
|
||||||
|
|
||||||
#if defined(RTEMS_SMP)
|
|
||||||
#include <rtems/score/processormask.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @defgroup raspberrypi_interrupt Interrrupt Support
|
* @defgroup raspberrypi_interrupt Interrrupt Support
|
||||||
*
|
*
|
||||||
@@ -83,27 +77,5 @@
|
|||||||
|
|
||||||
#define BSP_IRQ_COUNT (BCM2835_INTC_TOTAL_IRQ)
|
#define BSP_IRQ_COUNT (BCM2835_INTC_TOTAL_IRQ)
|
||||||
|
|
||||||
#if defined(RTEMS_SMP)
|
|
||||||
static inline rtems_status_code bsp_interrupt_set_affinity(
|
|
||||||
rtems_vector_number vector,
|
|
||||||
const Processor_mask *affinity
|
|
||||||
)
|
|
||||||
{
|
|
||||||
(void) vector;
|
|
||||||
(void) affinity;
|
|
||||||
return RTEMS_UNSATISFIED;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline rtems_status_code bsp_interrupt_get_affinity(
|
|
||||||
rtems_vector_number vector,
|
|
||||||
Processor_mask *affinity
|
|
||||||
)
|
|
||||||
{
|
|
||||||
(void) vector;
|
|
||||||
_Processor_mask_From_index( affinity, 0 );
|
|
||||||
return RTEMS_UNSATISFIED;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* ASM */
|
#endif /* ASM */
|
||||||
#endif /* LIBBSP_ARM_RASPBERRYPI_IRQ_H */
|
#endif /* LIBBSP_ARM_RASPBERRYPI_IRQ_H */
|
||||||
|
|||||||
@@ -22,12 +22,6 @@
|
|||||||
#ifndef ASM
|
#ifndef ASM
|
||||||
|
|
||||||
#include <rtems.h>
|
#include <rtems.h>
|
||||||
#include <rtems/irq.h>
|
|
||||||
#include <rtems/irq-extension.h>
|
|
||||||
|
|
||||||
#if defined(RTEMS_SMP)
|
|
||||||
#include <rtems/score/processormask.h>
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @defgroup raspberrypi_interrupt Interrrupt Support
|
* @defgroup raspberrypi_interrupt Interrrupt Support
|
||||||
@@ -78,27 +72,5 @@
|
|||||||
|
|
||||||
#define BSP_IRQ_COUNT (BCM2835_INTC_TOTAL_IRQ)
|
#define BSP_IRQ_COUNT (BCM2835_INTC_TOTAL_IRQ)
|
||||||
|
|
||||||
#if defined(RTEMS_SMP)
|
|
||||||
static inline rtems_status_code bsp_interrupt_set_affinity(
|
|
||||||
rtems_vector_number vector,
|
|
||||||
const Processor_mask *affinity
|
|
||||||
)
|
|
||||||
{
|
|
||||||
(void) vector;
|
|
||||||
(void) affinity;
|
|
||||||
return RTEMS_UNSATISFIED;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline rtems_status_code bsp_interrupt_get_affinity(
|
|
||||||
rtems_vector_number vector,
|
|
||||||
Processor_mask *affinity
|
|
||||||
)
|
|
||||||
{
|
|
||||||
(void) vector;
|
|
||||||
_Processor_mask_From_index( affinity, 0 );
|
|
||||||
return RTEMS_UNSATISFIED;
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif /* ASM */
|
#endif /* ASM */
|
||||||
#endif /* LIBBSP_ARM_RASPBERRYPI_IRQ_H */
|
#endif /* LIBBSP_ARM_RASPBERRYPI_IRQ_H */
|
||||||
|
|||||||
@@ -19,7 +19,6 @@
|
|||||||
#include <rtems/score/armv4.h>
|
#include <rtems/score/armv4.h>
|
||||||
|
|
||||||
#include <bsp.h>
|
#include <bsp.h>
|
||||||
#include <bsp/irq.h>
|
|
||||||
#include <bsp/irq-generic.h>
|
#include <bsp/irq-generic.h>
|
||||||
#include <bsp/raspberrypi.h>
|
#include <bsp/raspberrypi.h>
|
||||||
#include <bsp/linker-symbols.h>
|
#include <bsp/linker-symbols.h>
|
||||||
@@ -207,6 +206,28 @@ rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
|
|||||||
return RTEMS_SUCCESSFUL;
|
return RTEMS_SUCCESSFUL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(RTEMS_SMP)
|
||||||
|
rtems_status_code bsp_interrupt_get_affinity(
|
||||||
|
rtems_vector_number vector,
|
||||||
|
Processor_mask *affinity
|
||||||
|
)
|
||||||
|
{
|
||||||
|
(void) vector;
|
||||||
|
_Processor_mask_From_index( affinity, 0 );
|
||||||
|
return RTEMS_UNSATISFIED;
|
||||||
|
}
|
||||||
|
|
||||||
|
rtems_status_code bsp_interrupt_set_affinity(
|
||||||
|
rtems_vector_number vector,
|
||||||
|
const Processor_mask *affinity
|
||||||
|
)
|
||||||
|
{
|
||||||
|
(void) vector;
|
||||||
|
(void) affinity;
|
||||||
|
return RTEMS_UNSATISFIED;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
void bsp_interrupt_handler_default(rtems_vector_number vector)
|
void bsp_interrupt_handler_default(rtems_vector_number vector)
|
||||||
{
|
{
|
||||||
printk("spurious interrupt: %" PRIdrtems_vector_number "\n", vector);
|
printk("spurious interrupt: %" PRIdrtems_vector_number "\n", vector);
|
||||||
|
|||||||
@@ -295,6 +295,17 @@ rtems_status_code bsp_interrupt_raise(rtems_vector_number vector)
|
|||||||
return RTEMS_UNSATISFIED;
|
return RTEMS_UNSATISFIED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(RTEMS_SMP)
|
||||||
|
rtems_status_code bsp_interrupt_raise_on(
|
||||||
|
rtems_vector_number vector,
|
||||||
|
uint32_t cpu_index
|
||||||
|
)
|
||||||
|
{
|
||||||
|
bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector));
|
||||||
|
return RTEMS_UNSATISFIED;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
rtems_status_code bsp_interrupt_clear(rtems_vector_number vector)
|
rtems_status_code bsp_interrupt_clear(rtems_vector_number vector)
|
||||||
{
|
{
|
||||||
bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector));
|
bsp_interrupt_assert(bsp_interrupt_is_valid_vector(vector));
|
||||||
@@ -326,6 +337,28 @@ rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
|
|||||||
return RTEMS_SUCCESSFUL;
|
return RTEMS_SUCCESSFUL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(RTEMS_SMP)
|
||||||
|
rtems_status_code bsp_interrupt_get_affinity(
|
||||||
|
rtems_vector_number vector,
|
||||||
|
Processor_mask *affinity
|
||||||
|
)
|
||||||
|
{
|
||||||
|
(void) vector;
|
||||||
|
_Processor_mask_From_index( affinity, 0 );
|
||||||
|
return RTEMS_UNSATISFIED;
|
||||||
|
}
|
||||||
|
|
||||||
|
rtems_status_code bsp_interrupt_set_affinity(
|
||||||
|
rtems_vector_number vector,
|
||||||
|
const Processor_mask *affinity
|
||||||
|
)
|
||||||
|
{
|
||||||
|
(void) vector;
|
||||||
|
(void) affinity;
|
||||||
|
return RTEMS_UNSATISFIED;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
void bsp_interrupt_facility_initialize(void)
|
void bsp_interrupt_facility_initialize(void)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2016 Chris Johns <chrisj@rtems.org>
|
* Copyright (C) 2016 Chris Johns <chrisj@rtems.org>
|
||||||
*
|
*
|
||||||
* Copyright (C) 2008, 2021 embedded brains GmbH & Co. KG
|
* Copyright (C) 2008, 2024 embedded brains GmbH & Co. KG
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
* modification, are permitted provided that the following conditions
|
* modification, are permitted provided that the following conditions
|
||||||
@@ -47,6 +47,7 @@
|
|||||||
|
|
||||||
#include <rtems/irq-extension.h>
|
#include <rtems/irq-extension.h>
|
||||||
#include <rtems/score/assert.h>
|
#include <rtems/score/assert.h>
|
||||||
|
#include <rtems/score/processormask.h>
|
||||||
|
|
||||||
#ifdef RTEMS_SMP
|
#ifdef RTEMS_SMP
|
||||||
#include <rtems/score/atomic.h>
|
#include <rtems/score/atomic.h>
|
||||||
@@ -372,6 +373,55 @@ rtems_status_code bsp_interrupt_raise_on(
|
|||||||
*/
|
*/
|
||||||
rtems_status_code bsp_interrupt_clear( rtems_vector_number vector );
|
rtems_status_code bsp_interrupt_clear( rtems_vector_number vector );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Gets the processor affinity set of the interrupt vector.
|
||||||
|
*
|
||||||
|
* The function may have no implementation in uniprocessor configurations.
|
||||||
|
*
|
||||||
|
* @param vector is the interrupt vector number.
|
||||||
|
*
|
||||||
|
* @param[out] affinity is the pointer to a Processor_mask object. When the
|
||||||
|
* directive call is successful, the processor affinity set of the interrupt
|
||||||
|
* vector will be stored in this object. A set bit in the processor set
|
||||||
|
* means that the corresponding processor is in the processor affinity set of
|
||||||
|
* the interrupt vector, otherwise the bit is cleared.
|
||||||
|
*
|
||||||
|
* @retval ::RTEMS_SUCCESSFUL The requested operation was successful.
|
||||||
|
*
|
||||||
|
* @retval ::RTEMS_UNSATISFIED The request to get the processor affinity of the
|
||||||
|
* interrupt vector has not been satisfied.
|
||||||
|
*/
|
||||||
|
rtems_status_code bsp_interrupt_get_affinity(
|
||||||
|
rtems_vector_number vector,
|
||||||
|
Processor_mask *affinity
|
||||||
|
);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief Sets the processor affinity set of the interrupt vector.
|
||||||
|
*
|
||||||
|
* The function may have no implementation in uniprocessor configurations.
|
||||||
|
*
|
||||||
|
* @param vector is the interrupt vector number. It shall be valid.
|
||||||
|
*
|
||||||
|
* @param affinity is the pointer to a Processor_mask object. The processor set
|
||||||
|
* defines the new processor affinity set of the interrupt vector. A set bit
|
||||||
|
* in the processor set means that the corresponding processor shall be in
|
||||||
|
* the processor affinity set of the interrupt vector, otherwise the bit
|
||||||
|
* shall be cleared.
|
||||||
|
*
|
||||||
|
* @retval ::RTEMS_SUCCESSFUL The requested operation was successful.
|
||||||
|
*
|
||||||
|
* @retval ::RTEMS_INVALID_NUMBER The referenced processor set was not a valid
|
||||||
|
* new processor affinity set for the interrupt vector.
|
||||||
|
*
|
||||||
|
* @retval ::RTEMS_UNSATISFIED The request to set the processor affinity of the
|
||||||
|
* interrupt vector has not been satisfied.
|
||||||
|
*/
|
||||||
|
rtems_status_code bsp_interrupt_set_affinity(
|
||||||
|
rtems_vector_number vector,
|
||||||
|
const Processor_mask *affinity
|
||||||
|
);
|
||||||
|
|
||||||
#if defined(RTEMS_SMP)
|
#if defined(RTEMS_SMP)
|
||||||
/**
|
/**
|
||||||
* @brief Handles a spurious interrupt.
|
* @brief Handles a spurious interrupt.
|
||||||
|
|||||||
@@ -38,7 +38,6 @@
|
|||||||
|
|
||||||
#include <bsp.h>
|
#include <bsp.h>
|
||||||
#include <dev/irq/arm-gic.h>
|
#include <dev/irq/arm-gic.h>
|
||||||
#include <rtems/score/processormask.h>
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
@@ -85,16 +84,6 @@ rtems_status_code arm_gic_irq_get_group(
|
|||||||
gic_group *group
|
gic_group *group
|
||||||
);
|
);
|
||||||
|
|
||||||
rtems_status_code bsp_interrupt_set_affinity(
|
|
||||||
rtems_vector_number vector,
|
|
||||||
const Processor_mask *affinity
|
|
||||||
);
|
|
||||||
|
|
||||||
rtems_status_code bsp_interrupt_get_affinity(
|
|
||||||
rtems_vector_number vector,
|
|
||||||
Processor_mask *affinity
|
|
||||||
);
|
|
||||||
|
|
||||||
void arm_gic_trigger_sgi(rtems_vector_number vector, uint32_t targets);
|
void arm_gic_trigger_sgi(rtems_vector_number vector, uint32_t targets);
|
||||||
|
|
||||||
static inline rtems_status_code arm_gic_irq_generate_software_irq(
|
static inline rtems_status_code arm_gic_irq_generate_software_irq(
|
||||||
|
|||||||
@@ -40,7 +40,7 @@
|
|||||||
#include <bsp.h>
|
#include <bsp.h>
|
||||||
#include <bsp/fatal.h>
|
#include <bsp/fatal.h>
|
||||||
#include <bsp/qoriq.h>
|
#include <bsp/qoriq.h>
|
||||||
#include <bsp/irq.h>
|
#include <bsp/irq-generic.h>
|
||||||
|
|
||||||
static struct timecounter qoriq_clock_tc;
|
static struct timecounter qoriq_clock_tc;
|
||||||
|
|
||||||
|
|||||||
@@ -37,7 +37,6 @@
|
|||||||
#define LIBBSP_POWERPC_QORIQ_IRQ_H
|
#define LIBBSP_POWERPC_QORIQ_IRQ_H
|
||||||
|
|
||||||
#include <bsp.h>
|
#include <bsp.h>
|
||||||
#include <rtems/score/processormask.h>
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
@@ -409,16 +408,6 @@ rtems_status_code qoriq_pic_set_priority(
|
|||||||
int *old_priority
|
int *old_priority
|
||||||
);
|
);
|
||||||
|
|
||||||
rtems_status_code bsp_interrupt_set_affinity(
|
|
||||||
rtems_vector_number vector,
|
|
||||||
const Processor_mask *affinity
|
|
||||||
);
|
|
||||||
|
|
||||||
rtems_status_code bsp_interrupt_get_affinity(
|
|
||||||
rtems_vector_number vector,
|
|
||||||
Processor_mask *affinity
|
|
||||||
);
|
|
||||||
|
|
||||||
rtems_status_code qoriq_pic_msi_allocate(rtems_vector_number *vector);
|
rtems_status_code qoriq_pic_msi_allocate(rtems_vector_number *vector);
|
||||||
|
|
||||||
rtems_status_code qoriq_pic_msi_free(rtems_vector_number vector);
|
rtems_status_code qoriq_pic_msi_free(rtems_vector_number vector);
|
||||||
|
|||||||
@@ -43,7 +43,6 @@
|
|||||||
#include <asm/epapr_hcalls.h>
|
#include <asm/epapr_hcalls.h>
|
||||||
|
|
||||||
#include <bsp.h>
|
#include <bsp.h>
|
||||||
#include <bsp/irq.h>
|
|
||||||
#include <bsp/irq-generic.h>
|
#include <bsp/irq-generic.h>
|
||||||
#include <bsp/vectors.h>
|
#include <bsp/vectors.h>
|
||||||
#include <bsp/utility.h>
|
#include <bsp/utility.h>
|
||||||
|
|||||||
@@ -29,9 +29,6 @@
|
|||||||
#define LIBBSP_POWERPC_T32MPPC_IRQ_H
|
#define LIBBSP_POWERPC_T32MPPC_IRQ_H
|
||||||
|
|
||||||
#include <rtems.h>
|
#include <rtems.h>
|
||||||
#include <rtems/irq.h>
|
|
||||||
#include <rtems/irq-extension.h>
|
|
||||||
#include <rtems/score/processormask.h>
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
@@ -39,26 +36,6 @@ extern "C" {
|
|||||||
|
|
||||||
#define BSP_INTERRUPT_VECTOR_COUNT 1
|
#define BSP_INTERRUPT_VECTOR_COUNT 1
|
||||||
|
|
||||||
static inline rtems_status_code bsp_interrupt_set_affinity(
|
|
||||||
rtems_vector_number vector,
|
|
||||||
const Processor_mask *affinity
|
|
||||||
)
|
|
||||||
{
|
|
||||||
(void) vector;
|
|
||||||
(void) affinity;
|
|
||||||
return RTEMS_SUCCESSFUL;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline rtems_status_code bsp_interrupt_get_affinity(
|
|
||||||
rtems_vector_number vector,
|
|
||||||
Processor_mask *affinity
|
|
||||||
)
|
|
||||||
{
|
|
||||||
(void) vector;
|
|
||||||
_Processor_mask_From_index( affinity, 0 );
|
|
||||||
return RTEMS_SUCCESSFUL;
|
|
||||||
}
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif /* __cplusplus */
|
#endif /* __cplusplus */
|
||||||
|
|||||||
@@ -92,6 +92,28 @@ rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
|
|||||||
return RTEMS_SUCCESSFUL;
|
return RTEMS_SUCCESSFUL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(RTEMS_SMP)
|
||||||
|
rtems_status_code bsp_interrupt_get_affinity(
|
||||||
|
rtems_vector_number vector,
|
||||||
|
Processor_mask *affinity
|
||||||
|
)
|
||||||
|
{
|
||||||
|
(void) vector;
|
||||||
|
_Processor_mask_From_index( affinity, 0 );
|
||||||
|
return RTEMS_UNSATISFIED;
|
||||||
|
}
|
||||||
|
|
||||||
|
rtems_status_code bsp_interrupt_set_affinity(
|
||||||
|
rtems_vector_number vector,
|
||||||
|
const Processor_mask *affinity
|
||||||
|
)
|
||||||
|
{
|
||||||
|
(void) vector;
|
||||||
|
(void) affinity;
|
||||||
|
return RTEMS_UNSATISFIED;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
void bsp_interrupt_facility_initialize(void)
|
void bsp_interrupt_facility_initialize(void)
|
||||||
{
|
{
|
||||||
/* Nothing to do */
|
/* Nothing to do */
|
||||||
|
|||||||
@@ -41,7 +41,7 @@
|
|||||||
|
|
||||||
#include <bsp.h>
|
#include <bsp.h>
|
||||||
#include <amba.h>
|
#include <amba.h>
|
||||||
#include <bsp/irq.h>
|
#include <bsp/irq-generic.h>
|
||||||
#include <bspopts.h>
|
#include <bspopts.h>
|
||||||
#include <bsp/fatal.h>
|
#include <bsp/fatal.h>
|
||||||
#include <rtems/rtems/intr.h>
|
#include <rtems/rtems/intr.h>
|
||||||
|
|||||||
@@ -40,9 +40,6 @@
|
|||||||
#ifndef ASM
|
#ifndef ASM
|
||||||
|
|
||||||
#include <bsp.h>
|
#include <bsp.h>
|
||||||
#include <rtems/irq.h>
|
|
||||||
#include <rtems/irq-extension.h>
|
|
||||||
#include <rtems/score/processormask.h>
|
|
||||||
|
|
||||||
#define RISCV_INTERRUPT_VECTOR_SOFTWARE 0
|
#define RISCV_INTERRUPT_VECTOR_SOFTWARE 0
|
||||||
|
|
||||||
@@ -56,16 +53,6 @@
|
|||||||
|
|
||||||
#define BSP_INTERRUPT_VECTOR_COUNT RISCV_INTERRUPT_VECTOR_EXTERNAL(RISCV_MAXIMUM_EXTERNAL_INTERRUPTS)
|
#define BSP_INTERRUPT_VECTOR_COUNT RISCV_INTERRUPT_VECTOR_EXTERNAL(RISCV_MAXIMUM_EXTERNAL_INTERRUPTS)
|
||||||
|
|
||||||
rtems_status_code bsp_interrupt_set_affinity(
|
|
||||||
rtems_vector_number vector,
|
|
||||||
const Processor_mask *affinity
|
|
||||||
);
|
|
||||||
|
|
||||||
rtems_status_code bsp_interrupt_get_affinity(
|
|
||||||
rtems_vector_number vector,
|
|
||||||
Processor_mask *affinity
|
|
||||||
);
|
|
||||||
|
|
||||||
#endif /* ASM */
|
#endif /* ASM */
|
||||||
|
|
||||||
#endif /* LIBBSP_RISCV_GRISCV_IRQ_H */
|
#endif /* LIBBSP_RISCV_GRISCV_IRQ_H */
|
||||||
|
|||||||
@@ -34,7 +34,6 @@
|
|||||||
* SUCH DAMAGE.
|
* SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <bsp/irq.h>
|
|
||||||
#include <bsp/fatal.h>
|
#include <bsp/fatal.h>
|
||||||
#include <bsp/irq-generic.h>
|
#include <bsp/irq-generic.h>
|
||||||
#include <amba.h>
|
#include <amba.h>
|
||||||
|
|||||||
@@ -42,9 +42,6 @@
|
|||||||
#ifndef ASM
|
#ifndef ASM
|
||||||
|
|
||||||
#include <bsp.h>
|
#include <bsp.h>
|
||||||
#include <rtems/irq.h>
|
|
||||||
#include <rtems/irq-extension.h>
|
|
||||||
#include <rtems/score/processormask.h>
|
|
||||||
|
|
||||||
#define RISCV_INTERRUPT_VECTOR_SOFTWARE 0
|
#define RISCV_INTERRUPT_VECTOR_SOFTWARE 0
|
||||||
|
|
||||||
@@ -60,16 +57,6 @@
|
|||||||
|
|
||||||
#define BSP_INTERRUPT_CUSTOM_VALID_VECTOR
|
#define BSP_INTERRUPT_CUSTOM_VALID_VECTOR
|
||||||
|
|
||||||
rtems_status_code bsp_interrupt_set_affinity(
|
|
||||||
rtems_vector_number vector,
|
|
||||||
const Processor_mask *affinity
|
|
||||||
);
|
|
||||||
|
|
||||||
rtems_status_code bsp_interrupt_get_affinity(
|
|
||||||
rtems_vector_number vector,
|
|
||||||
Processor_mask *affinity
|
|
||||||
);
|
|
||||||
|
|
||||||
#endif /* ASM */
|
#endif /* ASM */
|
||||||
|
|
||||||
#endif /* LIBBSP_GENERIC_RISCV_IRQ_H */
|
#endif /* LIBBSP_GENERIC_RISCV_IRQ_H */
|
||||||
|
|||||||
@@ -42,9 +42,6 @@
|
|||||||
#ifndef ASM
|
#ifndef ASM
|
||||||
|
|
||||||
#include <bsp.h>
|
#include <bsp.h>
|
||||||
#include <rtems/irq.h>
|
|
||||||
#include <rtems/irq-extension.h>
|
|
||||||
#include <rtems/score/processormask.h>
|
|
||||||
|
|
||||||
#define RISCV_INTERRUPT_VECTOR_SOFTWARE 0
|
#define RISCV_INTERRUPT_VECTOR_SOFTWARE 0
|
||||||
|
|
||||||
@@ -60,16 +57,6 @@
|
|||||||
|
|
||||||
#define BSP_INTERRUPT_CUSTOM_VALID_VECTOR
|
#define BSP_INTERRUPT_CUSTOM_VALID_VECTOR
|
||||||
|
|
||||||
rtems_status_code bsp_interrupt_set_affinity(
|
|
||||||
rtems_vector_number vector,
|
|
||||||
const Processor_mask *affinity
|
|
||||||
);
|
|
||||||
|
|
||||||
rtems_status_code bsp_interrupt_get_affinity(
|
|
||||||
rtems_vector_number vector,
|
|
||||||
Processor_mask *affinity
|
|
||||||
);
|
|
||||||
|
|
||||||
#endif /* ASM */
|
#endif /* ASM */
|
||||||
|
|
||||||
#endif /* LIBBSP_GENERIC_RISCV_IRQ_H */
|
#endif /* LIBBSP_GENERIC_RISCV_IRQ_H */
|
||||||
|
|||||||
@@ -36,7 +36,6 @@
|
|||||||
* SUCH DAMAGE.
|
* SUCH DAMAGE.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <bsp/irq.h>
|
|
||||||
#include <bsp/fatal.h>
|
#include <bsp/fatal.h>
|
||||||
#include <bsp/fdt.h>
|
#include <bsp/fdt.h>
|
||||||
#include <bsp/irq-generic.h>
|
#include <bsp/irq-generic.h>
|
||||||
|
|||||||
@@ -36,7 +36,6 @@
|
|||||||
#include <dev/irq/arm-gic.h>
|
#include <dev/irq/arm-gic.h>
|
||||||
#include <dev/irq/arm-gic-arch.h>
|
#include <dev/irq/arm-gic-arch.h>
|
||||||
|
|
||||||
#include <bsp/irq.h>
|
|
||||||
#include <bsp/irq-generic.h>
|
#include <bsp/irq-generic.h>
|
||||||
#include <bsp/start.h>
|
#include <bsp/start.h>
|
||||||
|
|
||||||
@@ -328,6 +327,7 @@ rtems_status_code arm_gic_irq_get_group(
|
|||||||
return sc;
|
return sc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef RTEMS_SMP
|
||||||
rtems_status_code bsp_interrupt_set_affinity(
|
rtems_status_code bsp_interrupt_set_affinity(
|
||||||
rtems_vector_number vector,
|
rtems_vector_number vector,
|
||||||
const Processor_mask *affinity
|
const Processor_mask *affinity
|
||||||
@@ -387,6 +387,7 @@ rtems_status_code bsp_interrupt_get_affinity(
|
|||||||
_Processor_mask_From_uint32_t(affinity, targets, 0);
|
_Processor_mask_From_uint32_t(affinity, targets, 0);
|
||||||
return RTEMS_SUCCESSFUL;
|
return RTEMS_SUCCESSFUL;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
void arm_gic_trigger_sgi(rtems_vector_number vector, uint32_t targets)
|
void arm_gic_trigger_sgi(rtems_vector_number vector, uint32_t targets)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -27,7 +27,6 @@
|
|||||||
|
|
||||||
#include <dev/irq/arm-gicv3.h>
|
#include <dev/irq/arm-gicv3.h>
|
||||||
|
|
||||||
#include <bsp/irq.h>
|
|
||||||
#include <bsp/irq-generic.h>
|
#include <bsp/irq-generic.h>
|
||||||
#include <bsp/start.h>
|
#include <bsp/start.h>
|
||||||
|
|
||||||
@@ -242,6 +241,7 @@ rtems_status_code arm_gic_irq_get_priority(
|
|||||||
return sc;
|
return sc;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef RTEMS_SMP
|
||||||
rtems_status_code bsp_interrupt_set_affinity(
|
rtems_status_code bsp_interrupt_set_affinity(
|
||||||
rtems_vector_number vector,
|
rtems_vector_number vector,
|
||||||
const Processor_mask *affinity
|
const Processor_mask *affinity
|
||||||
@@ -274,6 +274,7 @@ rtems_status_code bsp_interrupt_get_affinity(
|
|||||||
_Processor_mask_From_uint32_t(affinity, targets, 0);
|
_Processor_mask_From_uint32_t(affinity, targets, 0);
|
||||||
return RTEMS_SUCCESSFUL;
|
return RTEMS_SUCCESSFUL;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
void arm_gic_trigger_sgi(rtems_vector_number vector, uint32_t targets)
|
void arm_gic_trigger_sgi(rtems_vector_number vector, uint32_t targets)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -36,7 +36,6 @@
|
|||||||
|
|
||||||
#include <bsp/irq-generic.h>
|
#include <bsp/irq-generic.h>
|
||||||
|
|
||||||
#include <rtems/score/processormask.h>
|
|
||||||
#include <rtems/score/smpimpl.h>
|
#include <rtems/score/smpimpl.h>
|
||||||
|
|
||||||
rtems_status_code rtems_interrupt_set_affinity(
|
rtems_status_code rtems_interrupt_set_affinity(
|
||||||
|
|||||||
@@ -37,31 +37,11 @@
|
|||||||
#ifndef LIBBSP_ERC32_IRQ_CONFIG_H
|
#ifndef LIBBSP_ERC32_IRQ_CONFIG_H
|
||||||
#define LIBBSP_ERC32_IRQ_CONFIG_H
|
#define LIBBSP_ERC32_IRQ_CONFIG_H
|
||||||
|
|
||||||
#include <rtems/score/processormask.h>
|
#include <rtems.h>
|
||||||
|
|
||||||
#define BSP_INTERRUPT_VECTOR_MAX_STD 15 /* Standard IRQ controller */
|
#define BSP_INTERRUPT_VECTOR_MAX_STD 15 /* Standard IRQ controller */
|
||||||
#define BSP_INTERRUPT_VECTOR_COUNT (BSP_INTERRUPT_VECTOR_MAX_STD + 1)
|
#define BSP_INTERRUPT_VECTOR_COUNT (BSP_INTERRUPT_VECTOR_MAX_STD + 1)
|
||||||
|
|
||||||
#define BSP_INTERRUPT_CUSTOM_VALID_VECTOR
|
#define BSP_INTERRUPT_CUSTOM_VALID_VECTOR
|
||||||
|
|
||||||
static inline rtems_status_code bsp_interrupt_set_affinity(
|
|
||||||
rtems_vector_number vector,
|
|
||||||
const Processor_mask *affinity
|
|
||||||
)
|
|
||||||
{
|
|
||||||
(void) vector;
|
|
||||||
(void) affinity;
|
|
||||||
return RTEMS_SUCCESSFUL;
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline rtems_status_code bsp_interrupt_get_affinity(
|
|
||||||
rtems_vector_number vector,
|
|
||||||
Processor_mask *affinity
|
|
||||||
)
|
|
||||||
{
|
|
||||||
(void) vector;
|
|
||||||
_Processor_mask_From_index( affinity, 0 );
|
|
||||||
return RTEMS_SUCCESSFUL;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* LIBBSP_ERC32_IRQ_CONFIG_H */
|
#endif /* LIBBSP_ERC32_IRQ_CONFIG_H */
|
||||||
|
|||||||
@@ -42,9 +42,8 @@
|
|||||||
|
|
||||||
#include <bsp.h>
|
#include <bsp.h>
|
||||||
#include <bsp/fatal.h>
|
#include <bsp/fatal.h>
|
||||||
#include <bsp/irq.h>
|
#include <bsp/irq-generic.h>
|
||||||
#include <bsp/leon3.h>
|
#include <bsp/leon3.h>
|
||||||
#include <rtems/rtems/intr.h>
|
|
||||||
#include <grlib/irqamp.h>
|
#include <grlib/irqamp.h>
|
||||||
#include <rtems/score/profiling.h>
|
#include <rtems/score/profiling.h>
|
||||||
#include <rtems/timecounter.h>
|
#include <rtems/timecounter.h>
|
||||||
|
|||||||
@@ -38,7 +38,6 @@
|
|||||||
#define LIBBSP_LEON3_IRQ_CONFIG_H
|
#define LIBBSP_LEON3_IRQ_CONFIG_H
|
||||||
|
|
||||||
#include <rtems.h>
|
#include <rtems.h>
|
||||||
#include <rtems/score/processormask.h>
|
|
||||||
|
|
||||||
#define BSP_INTERRUPT_VECTOR_MAX_STD 15 /* Standard IRQ controller */
|
#define BSP_INTERRUPT_VECTOR_MAX_STD 15 /* Standard IRQ controller */
|
||||||
#define BSP_INTERRUPT_VECTOR_MAX_EXT 31 /* Extended IRQ controller */
|
#define BSP_INTERRUPT_VECTOR_MAX_EXT 31 /* Extended IRQ controller */
|
||||||
@@ -48,14 +47,4 @@
|
|||||||
/* The check is different depending on IRQ controller, runtime detected */
|
/* The check is different depending on IRQ controller, runtime detected */
|
||||||
#define BSP_INTERRUPT_CUSTOM_VALID_VECTOR
|
#define BSP_INTERRUPT_CUSTOM_VALID_VECTOR
|
||||||
|
|
||||||
rtems_status_code bsp_interrupt_set_affinity(
|
|
||||||
rtems_vector_number vector,
|
|
||||||
const Processor_mask *affinity
|
|
||||||
);
|
|
||||||
|
|
||||||
rtems_status_code bsp_interrupt_get_affinity(
|
|
||||||
rtems_vector_number vector,
|
|
||||||
Processor_mask *affinity
|
|
||||||
);
|
|
||||||
|
|
||||||
#endif /* LIBBSP_LEON3_IRQ_CONFIG_H */
|
#endif /* LIBBSP_LEON3_IRQ_CONFIG_H */
|
||||||
|
|||||||
@@ -40,7 +40,7 @@
|
|||||||
#define __tm27_h
|
#define __tm27_h
|
||||||
|
|
||||||
#include <bsp.h>
|
#include <bsp.h>
|
||||||
#include <bsp/irq.h>
|
#include <bsp/irq-generic.h>
|
||||||
|
|
||||||
#if defined(RTEMS_SMP)
|
#if defined(RTEMS_SMP)
|
||||||
#include <rtems/score/smpimpl.h>
|
#include <rtems/score/smpimpl.h>
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
#include <bsp.h>
|
#include <bsp.h>
|
||||||
#include <bsp/bootcard.h>
|
#include <bsp/bootcard.h>
|
||||||
#include <bsp/fatal.h>
|
#include <bsp/fatal.h>
|
||||||
#include <bsp/irq.h>
|
#include <bsp/irq-generic.h>
|
||||||
#include <bsp/leon3.h>
|
#include <bsp/leon3.h>
|
||||||
#include <rtems/bspIo.h>
|
#include <rtems/bspIo.h>
|
||||||
#include <rtems/sysinit.h>
|
#include <rtems/sysinit.h>
|
||||||
|
|||||||
@@ -38,7 +38,6 @@
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <bsp/irq.h>
|
|
||||||
#include <bsp/irq-generic.h>
|
#include <bsp/irq-generic.h>
|
||||||
#include <bsp/irqimpl.h>
|
#include <bsp/irqimpl.h>
|
||||||
|
|
||||||
|
|||||||
@@ -140,3 +140,25 @@ rtems_status_code bsp_interrupt_vector_disable(rtems_vector_number vector)
|
|||||||
BSP_Cpu_Mask_interrupt(vector, 0);
|
BSP_Cpu_Mask_interrupt(vector, 0);
|
||||||
return RTEMS_SUCCESSFUL;
|
return RTEMS_SUCCESSFUL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if defined(RTEMS_SMP)
|
||||||
|
rtems_status_code bsp_interrupt_get_affinity(
|
||||||
|
rtems_vector_number vector,
|
||||||
|
Processor_mask *affinity
|
||||||
|
)
|
||||||
|
{
|
||||||
|
(void) vector;
|
||||||
|
_Processor_mask_From_index( affinity, 0 );
|
||||||
|
return RTEMS_UNSATISFIED;
|
||||||
|
}
|
||||||
|
|
||||||
|
rtems_status_code bsp_interrupt_set_affinity(
|
||||||
|
rtems_vector_number vector,
|
||||||
|
const Processor_mask *affinity
|
||||||
|
)
|
||||||
|
{
|
||||||
|
(void) vector;
|
||||||
|
(void) affinity;
|
||||||
|
return RTEMS_UNSATISFIED;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user