RTEMS CPU Kit with SuperCore  4.11.3
Typedefs
interrupts.h File Reference

Intel I386 Interrupt Macros. More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

Interrupt Level Macros
#define i386_disable_interrupts(_level)
 
#define i386_enable_interrupts(_level)
 
#define i386_flash_interrupts(_level)
 
#define i386_get_interrupt_level(_level)
 
#define _CPU_ISR_Disable(_level)   i386_disable_interrupts( _level )
 
#define _CPU_ISR_Enable(_level)   i386_enable_interrupts( _level )
 

Typedefs

typedef void(* rtems_raw_irq_hdl) (void)
 
typedef void(* rtems_raw_irq_enable) (const struct __rtems_raw_irq_connect_data__ *)
 
typedef void(* rtems_raw_irq_disable) (const struct __rtems_raw_irq_connect_data__ *)
 
typedef int(* rtems_raw_irq_is_enabled) (const struct __rtems_raw_irq_connect_data__ *)
 

Detailed Description

Intel I386 Interrupt Macros.

Formerly contained in and extracted from libcpu/i386/cpu.h

Macro Definition Documentation

◆ i386_disable_interrupts

#define i386_disable_interrupts (   _level)
Value:
{ \
__asm__ volatile ( "pushf ; \ cli ; \ pop %0" \
: "=rm" ((_level)) \
); \
}

◆ i386_enable_interrupts

#define i386_enable_interrupts (   _level)
Value:
{ \
__asm__ volatile ( "push %0 ; \ popf" \
: : "rm" ((_level)) : "cc" \
); \
}

◆ i386_flash_interrupts

#define i386_flash_interrupts (   _level)
Value:
{ \
__asm__ volatile ( "push %0 ; \ popf ; \ cli" \
: : "rm" ((_level)) : "cc" \
); \
}

◆ i386_get_interrupt_level

#define i386_get_interrupt_level (   _level)
Value:
do { \
register uint32_t _eflags; \
\
__asm__ volatile ( "pushf ; \ pop %0" \
: "=rm" ((_eflags)) \
); \
\
_level = (_eflags & EFLAGS_INTR_ENABLE) ? 0 : 1; \
} while (0)