28#ifndef _RTEMS_SCORE_INTERRUPTS_H
29#define _RTEMS_SCORE_INTERRUPTS_H
35typedef void (*rtems_raw_irq_hdl) (void);
45#if !defined(I386_DISABLE_INLINE_ISR_DISABLE_ENABLE)
46#define i386_disable_interrupts( _level ) \
48 __asm__ volatile ( "pushf ; \
55#define i386_enable_interrupts( _level ) \
57 __asm__ volatile ( "push %0 ; \
59 : : "rm" ((_level)) : "cc" \
63#define i386_flash_interrupts( _level ) \
65 __asm__ volatile ( "push %0 ; \
68 : : "rm" ((_level)) : "cc" \
72#define i386_get_interrupt_level( _level ) \
76 __asm__ volatile ( "pushf ; \
81 _level = (_eflags & EFLAGS_INTR_ENABLE) ? 0 : 1; \
84uint32_t i386_disable_interrupts(
void );
85void i386_enable_interrupts(uint32_t level);
86void i386_flash_interrupts(uint32_t level);
87void i386_set_interrupt_level(uint32_t new_level);
88uint32_t i386_get_interrupt_level(
void );