RTEMS 6.1-rc7
Loading...
Searching...
No Matches
Macros | Functions
irq.c File Reference

Interrupt implementation. More...

#include <sys/param.h>
#include <sys/bitset.h>
#include <rtems.h>
#include <libcpu/powerpc-utility.h>
#include <asm/epapr_hcalls.h>
#include <bsp.h>
#include <bsp/irq-generic.h>
#include <bsp/vectors.h>
#include <bsp/utility.h>
#include <bsp/qoriq.h>
#include <rtems/score/processormaskimpl.h>

Macros

#define SPURIOUS   0xffff
 
#define VPR_MSK   BSP_BBIT32(0)
 
#define VPR_A   BSP_BBIT32(1)
 
#define VPR_P   BSP_BBIT32(8)
 
#define VPR_S   BSP_BBIT32(9)
 
#define VPR_PRIORITY(val)   BSP_BFLD32(val, 12, 15)
 
#define VPR_PRIORITY_GET(reg)   BSP_BFLD32GET(reg, 12, 15)
 
#define VPR_PRIORITY_SET(reg, val)   BSP_BFLD32SET(reg, val, 12, 15)
 
#define VPR_VECTOR(val)   BSP_BFLD32(val, 16, 31)
 
#define VPR_VECTOR_GET(reg)   BSP_BFLD32GET(reg, 16, 31)
 
#define VPR_VECTOR_SET(reg, val)   BSP_BFLD32SET(reg, val, 16, 31)
 
#define GCR_RST   BSP_BBIT32(0)
 
#define GCR_M   BSP_BBIT32(2)
 
#define SRC_CFG_IDX(i)   ((i) - QORIQ_IRQ_EXT_BASE)
 

Functions

rtems_status_code bsp_interrupt_get_priority (rtems_vector_number vector, uint32_t *priority)
 Gets the priority of the interrupt vector.
 
rtems_status_code bsp_interrupt_set_priority (rtems_vector_number vector, uint32_t priority)
 Sets the priority of the interrupt vector.
 
rtems_status_code qoriq_pic_set_sense_and_polarity (rtems_vector_number vector, qoriq_eirq_sense_and_polarity new_sense_and_polarity, qoriq_eirq_sense_and_polarity *old_sense_and_polarity)
 Change polarity and sense settings of external interrupts.
 
rtems_status_code bsp_interrupt_set_affinity (rtems_vector_number vector, const Processor_mask *affinity)
 Sets the processor affinity set of the interrupt vector.
 
rtems_status_code bsp_interrupt_get_affinity (rtems_vector_number vector, Processor_mask *affinity)
 Gets the processor affinity set of the interrupt vector.
 
rtems_status_code bsp_interrupt_get_attributes (rtems_vector_number vector, rtems_interrupt_attributes *attributes)
 Gets the attributes of the interrupt vector.
 
rtems_status_code bsp_interrupt_is_pending (rtems_vector_number vector, bool *pending)
 Checks if the interrupt is pending.
 
rtems_status_code bsp_interrupt_raise (rtems_vector_number vector)
 Causes the interrupt vector.
 
rtems_status_code bsp_interrupt_clear (rtems_vector_number vector)
 Clears the interrupt vector.
 
rtems_status_code bsp_interrupt_vector_is_enabled (rtems_vector_number vector, bool *enabled)
 Checks if the interrupt is enabled.
 
rtems_status_code bsp_interrupt_vector_enable (rtems_vector_number vector)
 Enables the interrupt vector.
 
rtems_status_code bsp_interrupt_vector_disable (rtems_vector_number vector)
 Disables the interrupt vector.
 
void bsp_interrupt_dispatch (uintptr_t exception_number)
 
void bsp_interrupt_facility_initialize (void)
 BSP specific initialization.
 
typedef __BITSET_DEFINE (pic_msi_bitset, QORIQ_IRQ_MSI_COUNT)
 
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_map (rtems_vector_number vector, uint64_t *addr, uint32_t *data)
 

Detailed Description

Interrupt implementation.