diff options
author | Thomas Doerfler <Thomas.Doerfler@embedded-brains.de> | 2009-07-21 08:38:04 +0000 |
---|---|---|
committer | Thomas Doerfler <Thomas.Doerfler@embedded-brains.de> | 2009-07-21 08:38:04 +0000 |
commit | d374492cc69fa8bd041852d868ae379b79c59ba4 (patch) | |
tree | 14fa506e5c9564844d5fa0436ae4d2d456a74dda /c/src/lib/libcpu/powerpc/mpc55xx/include/irq.h | |
parent | Update to binutils-2.19.51-20090721. (diff) | |
download | rtems-d374492cc69fa8bd041852d868ae379b79c59ba4.tar.bz2 |
Update for MPC55XX changes
Diffstat (limited to '')
-rw-r--r-- | c/src/lib/libcpu/powerpc/mpc55xx/include/irq.h | 69 |
1 files changed, 43 insertions, 26 deletions
diff --git a/c/src/lib/libcpu/powerpc/mpc55xx/include/irq.h b/c/src/lib/libcpu/powerpc/mpc55xx/include/irq.h index 90a129c234..6b2be34fe5 100644 --- a/c/src/lib/libcpu/powerpc/mpc55xx/include/irq.h +++ b/c/src/lib/libcpu/powerpc/mpc55xx/include/irq.h @@ -33,57 +33,74 @@ extern "C" { */ /* Basics */ -#define MPC55XX_IRQ_MIN 0 -#define MPC55XX_IRQ_MAX 328 +#define MPC55XX_IRQ_MIN 0U +#define MPC55XX_IRQ_MAX 328U #define MPC55XX_IRQ_BASE MPC55XX_IRQ_MIN -#define MPC55XX_IRQ_NUMBER (MPC55XX_IRQ_MAX + 1) +#define MPC55XX_IRQ_NUMBER (MPC55XX_IRQ_MAX + 1U) /* Software interrupts */ -#define MPC55XX_IRQ_SOFTWARE_MIN 0 -#define MPC55XX_IRQ_SOFTWARE_MAX 7 -#define MPC55XX_IRQ_SOFTWARE_NUMBER (MPC55XX_IRQ_SOFTWARE_MAX + 1) +#define MPC55XX_IRQ_SOFTWARE_MIN 0U +#define MPC55XX_IRQ_SOFTWARE_MAX 7U +#define MPC55XX_IRQ_SOFTWARE_GET_INDEX( v) (v) +#define MPC55XX_IRQ_SOFTWARE_GET_REQUEST( i) (i) +#define MPC55XX_IRQ_SOFTWARE_NUMBER (MPC55XX_IRQ_SOFTWARE_MAX + 1U) /* eDMA interrupts */ -#define MPC55XX_IRQ_EDMA_ERROR_LOW 10 -#define MPC55XX_IRQ_EDMA_ERROR_HIGH 210 -#define MPC55XX_IRQ_EDMA_REQUEST_LOW_MIN 11 -#define MPC55XX_IRQ_EDMA_REQUEST_LOW_MAX 42 -#define MPC55XX_IRQ_EDMA_REQUEST_HIGH_MIN 211 -#define MPC55XX_IRQ_EDMA_REQUEST_HIGH_MAX 242 -#define MPC55XX_IRQ_EDMA_GET_CHANNEL( i) (((i) > MPC55XX_IRQ_EDMA_REQUEST_LOW_MAX) ? ((i) - MPC55XX_IRQ_EDMA_REQUEST_HIGH_MIN + 32) : ((i) - MPC55XX_IRQ_EDMA_REQUEST_LOW_MIN)) -#define MPC55XX_IRQ_EDMA_GET_REQUEST( c) (((c) > 31) ? ((c) + MPC55XX_IRQ_EDMA_REQUEST_HIGH_MIN - 32) : ((c) + MPC55XX_IRQ_EDMA_REQUEST_LOW_MIN)) +#define MPC55XX_IRQ_EDMA_ERROR_LOW 10U +#define MPC55XX_IRQ_EDMA_ERROR_HIGH 210U +#define MPC55XX_IRQ_EDMA_REQUEST_LOW_MIN 11U +#define MPC55XX_IRQ_EDMA_REQUEST_LOW_MAX 42U +#define MPC55XX_IRQ_EDMA_REQUEST_HIGH_MIN 211U +#define MPC55XX_IRQ_EDMA_REQUEST_HIGH_MAX 242U +#define MPC55XX_IRQ_EDMA_GET_CHANNEL( v) (((v) > MPC55XX_IRQ_EDMA_REQUEST_LOW_MAX) ? ((v) + 32U - MPC55XX_IRQ_EDMA_REQUEST_HIGH_MIN) : ((v) - MPC55XX_IRQ_EDMA_REQUEST_LOW_MIN)) +#define MPC55XX_IRQ_EDMA_GET_REQUEST( c) (((c) >= 32U) ? ((c) - 32U + MPC55XX_IRQ_EDMA_REQUEST_HIGH_MIN) : ((c) + MPC55XX_IRQ_EDMA_REQUEST_LOW_MIN)) + +/* SIU external interrupts */ +#define MPC55XX_IRQ_SIU_EXTERNAL_0 46U +#define MPC55XX_IRQ_SIU_EXTERNAL_1 47U +#define MPC55XX_IRQ_SIU_EXTERNAL_2 48U +#define MPC55XX_IRQ_SIU_EXTERNAL_3 49U +#define MPC55XX_IRQ_SIU_EXTERNAL_4_15 50U + +/* eMIOS interrupts */ +#define MPC55XX_IRQ_EMIOS_REQUEST_LOW_MIN 51U +#define MPC55XX_IRQ_EMIOS_REQUEST_LOW_MAX 66U +#define MPC55XX_IRQ_EMIOS_REQUEST_HIGH_MIN 202U +#define MPC55XX_IRQ_EMIOS_REQUEST_HIGH_MAX 209U +#define MPC55XX_IRQ_EMIOS_GET_CHANNEL( v) (((v) > MPC55XX_IRQ_EMIOS_REQUEST_LOW_MAX) ? ((v) + 16U - MPC55XX_IRQ_EMIOS_REQUEST_HIGH_MIN) : ((v) - MPC55XX_IRQ_EMIOS_REQUEST_LOW_MIN)) +#define MPC55XX_IRQ_EMIOS_GET_REQUEST( c) (((c) >= 16U) ? ((c) - 16U + MPC55XX_IRQ_EMIOS_REQUEST_HIGH_MIN) : ((c) + MPC55XX_IRQ_EMIOS_REQUEST_LOW_MIN)) /* Checks */ -#define MPC55XX_IRQ_IS_VALID(i) ((i) >= MPC55XX_IRQ_MIN && (i) <= MPC55XX_IRQ_MAX) -#define MPC55XX_IRQ_IS_SOFTWARE(i) ((i) >= MPC55XX_IRQ_SOFTWARE_MIN && (i) <= MPC55XX_IRQ_SOFTWARE_MAX) +#define MPC55XX_IRQ_IS_VALID(v) ((v) >= MPC55XX_IRQ_MIN && (v) <= MPC55XX_IRQ_MAX) +#define MPC55XX_IRQ_IS_SOFTWARE(v) ((v) >= MPC55XX_IRQ_SOFTWARE_MIN && (v) <= MPC55XX_IRQ_SOFTWARE_MAX) /* * Interrupt controller */ -#define MPC55XX_INTC_INVALID_PRIORITY -1 -#define MPC55XX_INTC_DISABLED_PRIORITY 0 -#define MPC55XX_INTC_MIN_PRIORITY 1 -#define MPC55XX_INTC_MAX_PRIORITY 15 -#define MPC55XX_INTC_DEFAULT_PRIORITY MPC55XX_INTC_MIN_PRIORITY +#define MPC55XX_INTC_MIN_PRIORITY 1U +#define MPC55XX_INTC_MAX_PRIORITY 15U +#define MPC55XX_INTC_DISABLED_PRIORITY 0U +#define MPC55XX_INTC_INVALID_PRIORITY (MPC55XX_INTC_MAX_PRIORITY + 1) +#define MPC55XX_INTC_DEFAULT_PRIORITY (MPC55XX_INTC_MIN_PRIORITY + 1) #define MPC55XX_INTC_IS_VALID_PRIORITY(p) ((p) >= MPC55XX_INTC_DISABLED_PRIORITY && (p) <= MPC55XX_INTC_MAX_PRIORITY) rtems_status_code mpc55xx_interrupt_handler_install( rtems_vector_number vector, - int priority, const char *info, rtems_option options, + unsigned priority, rtems_interrupt_handler handler, void *arg ); -rtems_status_code mpc55xx_intc_get_priority( int i, int *p); +rtems_status_code mpc55xx_intc_get_priority( rtems_vector_number vector, unsigned *priority); -rtems_status_code mpc55xx_intc_set_priority( int i, int p); +rtems_status_code mpc55xx_intc_set_priority( rtems_vector_number vector, unsigned priority); -rtems_status_code mpc55xx_intc_raise_software_irq( int i); +rtems_status_code mpc55xx_intc_raise_software_irq( rtems_vector_number vector); -rtems_status_code mpc55xx_intc_clear_software_irq( int i); +rtems_status_code mpc55xx_intc_clear_software_irq( rtems_vector_number vector); #ifdef __cplusplus }; |