Add MAX value definitions to go along with irq_t and irq_mapped_t

This commit is contained in:
Gregory Nutt 2017-03-03 11:48:20 -06:00
parent e1218c4b4b
commit fc5fca5145
2 changed files with 24 additions and 4 deletions

View File

@ -644,10 +644,10 @@ config ARCH_MINIMAL_VECTORTABLE
This table is index by the hardware IRQ number and provides a value
in the range of 0 to CONFIG_ARCH_NUSER_INTERRUPTS that is the new,
mapped index into the vector table. Unused, unmapped interrupts
should be set to (irq_mapped_t)-1. So, for example, if g_irqmap[37]
should be set to IRQMAPPED_MAX. So, for example, if g_irqmap[37]
== 24, then the hardware interrupt vector 37 will be mapped to the
interrupt vector table at index 24. if g_irqmap[42] ==
(irq_mapped_t)-1, then hardware interrupt vector 42 is not used and
IRQMAPPED_MAX, then hardware interrupt vector 42 is not used and
if it occurs will result in an unexpected interrupt crash.
config ARCH_NUSER_INTERRUPTS

View File

@ -52,13 +52,33 @@
* Pre-processor Definitions
****************************************************************************/
#ifndef __ASSEMBLY__
/* IRQ detach is a convenience definition. Detaching an interrupt handler
* is equivalent to setting a NULL interrupt handler.
*/
#ifndef __ASSEMBLY__
# define irq_detach(isr) irq_attach(isr, NULL, NULL)
#endif
/* Maximum/minimum values of IRQ integer types */
# if NR_IRQS <= 256
# define IRQT_MAX UINT8_MAX
# elif NR_IRQS <= 65536
# define IRQT_MAX UINT16_MAX
# else
# define IRQT_MAX UINT32_MAX
# endif
# ifdef CONFIG_ARCH_MINIMAL_VECTORTABLE
# if CONFIG_ARCH_NUSER_INTERRUPTS <= 256
# define IRQMAPPED_MAX UINT8_MAX
# elif CONFIG_ARCH_NUSER_INTERRUPTS <= 65536
# define IRQMAPPED_MAX UINT16_MAX
# else
# define IRQMAPPED_MAX UINT32_MAX
# endif
#endif /* __ASSEMBLY__ */
/****************************************************************************
* Public Types