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);
98 __asm__ (
" lduba [%1]1, %0 " 107 __asm__ (
" lduha [%1]1, %0 " 118 __asm__ (
" lda [%1]1, %0 " 125 #define GRLIB_DMA_IS_CACHE_COHERENT CPU_SPARC_HAS_SNOOPING 129 static unsigned char __inline__ grlib_read_uncached8(
unsigned int address)
131 unsigned char tmp = (*(
volatile unsigned char *)(address));
135 static __inline__
unsigned short grlib_read_uncached16(
unsigned int address) {
136 unsigned short tmp = (*(
volatile unsigned short *)(address));
142 unsigned int tmp = (*(
volatile unsigned int *)(address));
146 #define GRLIB_DMA_IS_CACHE_COHERENT 1 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.
This header file provides basic definitions used by the API and the implementation.
#define RTEMS_INLINE_ROUTINE
Gives a hint to the compiler in a function declaration to inline this function.