RTEMS CPU Kit with SuperCore  4.11.3
Macros
interrupt.h File Reference

@{ More...

#include <avr/io.h>
Include dependency graph for interrupt.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define __STRINGIFY(x)   #x
 
Global manipulation of the interrupt flag

The global interrupt flag is maintained in the I bit of the status register (SREG).

#define sei()   __asm__ __volatile__ ("sei" ::)
 
#define cli()   __asm__ __volatile__ ("cli" ::)
 
Macros for writing interrupt handler functions
#define __INTR_ATTRS   used
 
#define ISR(vector, ...)
 
#define SIGNAL(vector)
 
#define EMPTY_INTERRUPT(vector)
 
#define ISR_ALIAS(vector, tgt)
 
#define reti()   __asm__ __volatile__ ("reti" ::)
 
#define BADISR_vect   __vector_default
 
ISR attributes
#define ISR_BLOCK
 
#define ISR_NOBLOCK   __attribute__((interrupt))
 
#define ISR_NAKED   __attribute__((naked))
 
#define ISR_ALIASOF(v)   __attribute__((alias(__STRINGIFY(v))))
 

Detailed Description

@{

Macro Definition Documentation

◆ EMPTY_INTERRUPT

#define EMPTY_INTERRUPT (   vector)
Value:
void vector (void) __attribute__ ((signal,naked,__INTR_ATTRS)); \
void vector (void) { __asm__ __volatile__ ("reti" ::); }
register struct Per_CPU_Control *_SPARC_Per_CPU_current __asm__("g6")
The pointer to the current per-CPU control is available via register g6.

◆ ISR

#define ISR (   vector,
  ... 
)
Value:
void vector (void) __attribute__ ((signal,__INTR_ATTRS)) __VA_ARGS__; \
void vector (void)

◆ ISR_ALIAS

#define ISR_ALIAS (   vector,
  tgt 
)
Value:
void vector (void) \
__attribute__((signal, naked, __INTR_ATTRS)); \
void vector (void) { __asm__ volatile ("rjmp " __STRINGIFY(tgt) ::); }
register struct Per_CPU_Control *_SPARC_Per_CPU_current __asm__("g6")
The pointer to the current per-CPU control is available via register g6.

◆ SIGNAL

#define SIGNAL (   vector)
Value:
void vector (void) __attribute__ ((signal, __INTR_ATTRS)); \
void vector (void)