19#if (((__RTEMS_MAJOR__ << 16) | (__RTEMS_MINOR__ << 8) | __RTEMS_REVISION__) >= 0x040b63)
24#define SPIN_DECLARE(lock) RTEMS_INTERRUPT_LOCK_MEMBER(lock)
25#define SPIN_INIT(lock, name) rtems_interrupt_lock_initialize(lock, name)
26#define SPIN_LOCK(lock, level) rtems_interrupt_lock_acquire_isr(lock, &level)
27#define SPIN_LOCK_IRQ(lock, level) rtems_interrupt_lock_acquire(lock, &level)
28#define SPIN_UNLOCK(lock, level) rtems_interrupt_lock_release_isr(lock, &level)
29#define SPIN_UNLOCK_IRQ(lock, level) rtems_interrupt_lock_release(lock, &level)
30#define SPIN_IRQFLAGS(k) rtems_interrupt_lock_context k
31#define SPIN_ISR_IRQFLAGS(k) SPIN_IRQFLAGS(k)
32#define SPIN_FREE(lock) rtems_interrupt_lock_destroy(lock)
35#define IRQ_LOCAL_DECLARE(_level) rtems_interrupt_level _level
36#define IRQ_LOCAL_DISABLE(_level) rtems_interrupt_local_disable(_level)
37#define IRQ_LOCAL_ENABLE(_level) rtems_interrupt_local_enable(_level)
42#error SMP mode not compatible with these interrupt lock primitives
46#define SPIN_DECLARE(name)
47#define SPIN_INIT(lock, name)
48#define SPIN_LOCK(lock, level)
49#define SPIN_LOCK_IRQ(lock, level) rtems_interrupt_disable(level)
50#define SPIN_UNLOCK(lock, level)
51#define SPIN_UNLOCK_IRQ(lock, level) rtems_interrupt_enable(level)
52#define SPIN_IRQFLAGS(k) rtems_interrupt_level k
53#define SPIN_ISR_IRQFLAGS(k)
54#define SPIN_FREE(lock)
57#define IRQ_LOCAL_DECLARE(_level) rtems_interrupt_level _level
58#define IRQ_LOCAL_DISABLE(_level) rtems_interrupt_disable(_level)
59#define IRQ_LOCAL_ENABLE(_level) rtems_interrupt_enable(_level)
67#if (((__RTEMS_MAJOR__ << 16) | (__RTEMS_MINOR__ << 8) | __RTEMS_REVISION__) >= 0x050000)
88 return calloc(nelem, elsize);
135#define GRLIB_DMA_IS_CACHE_COHERENT CPU_SPARC_HAS_SNOOPING
139static unsigned char __inline__ grlib_read_uncached8(
unsigned int address)
141 unsigned char tmp = (*(
volatile unsigned char *)(address));
145static __inline__
unsigned short grlib_read_uncached16(
unsigned int address) {
146 unsigned short tmp = (*(
volatile unsigned short *)(address));
152 unsigned int tmp = (*(
volatile unsigned int *)(address));
156#define GRLIB_DMA_IS_CACHE_COHERENT 1
#define RTEMS_INLINE_ROUTINE
Definition: basedefs.h:66
register struct Per_CPU_Control *_SPARC_Per_CPU_current __asm__("g6")
The pointer to the current per-CPU control is available via register g6.
void * rtems_malloc(size_t size) RTEMS_MALLOCLIKE RTEMS_ALLOC_SIZE(1) RTEMS_WARN_UNUSED_RESULT
Allocates a memory area of the specified size from the heap.
void * rtems_calloc(size_t nelem, size_t elsize) RTEMS_MALLOCLIKE RTEMS_ALLOC_SIZE_2(1
Allocates a memory area for the specified count of elements from the heap.
unsigned size
Definition: tte.h:1