47#ifndef _RTEMS_SCORE_INTERRUPTS_H
48#define _RTEMS_SCORE_INTERRUPTS_H
54typedef void (*rtems_raw_irq_hdl) (void);
64#if !defined(I386_DISABLE_INLINE_ISR_DISABLE_ENABLE)
65#define i386_disable_interrupts( _level ) \
67 __asm__ volatile ( "pushf ; \
74#define i386_enable_interrupts( _level ) \
76 __asm__ volatile ( "push %0 ; \
78 : : "rm" ((_level)) : "cc" \
82#define i386_flash_interrupts( _level ) \
84 __asm__ volatile ( "push %0 ; \
87 : : "rm" ((_level)) : "cc" \
91#define i386_get_interrupt_level( _level ) \
95 __asm__ volatile ( "pushf ; \
100 _level = (_eflags & EFLAGS_INTR_ENABLE) ? 0 : 1; \
103uint32_t i386_disable_interrupts(
void );
104void i386_enable_interrupts(uint32_t level);
105void i386_flash_interrupts(uint32_t level);
106void i386_set_interrupt_level(uint32_t new_level);
107uint32_t i386_get_interrupt_level(
void );