forked from Imagelibrary/rtems
arm: Make barrier operations more visible
This commit is contained in:
@@ -285,6 +285,21 @@ typedef struct {
|
|||||||
|
|
||||||
extern uint32_t arm_cpu_mode;
|
extern uint32_t arm_cpu_mode;
|
||||||
|
|
||||||
|
static inline void _ARM_Data_memory_barrier( void )
|
||||||
|
{
|
||||||
|
__asm__ volatile ( "dmb" : : : "memory" );
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void _ARM_Data_synchronization_barrier( void )
|
||||||
|
{
|
||||||
|
__asm__ volatile ( "dsb" : : : "memory" );
|
||||||
|
}
|
||||||
|
|
||||||
|
static inline void _ARM_Instruction_synchronization_barrier( void )
|
||||||
|
{
|
||||||
|
__asm__ volatile ( "isb" : : : "memory" );
|
||||||
|
}
|
||||||
|
|
||||||
static inline uint32_t arm_interrupt_disable( void )
|
static inline uint32_t arm_interrupt_disable( void )
|
||||||
{
|
{
|
||||||
uint32_t level;
|
uint32_t level;
|
||||||
@@ -465,16 +480,6 @@ void _CPU_Context_validate( uintptr_t pattern );
|
|||||||
|
|
||||||
void _CPU_SMP_Send_interrupt( uint32_t target_processor_index );
|
void _CPU_SMP_Send_interrupt( uint32_t target_processor_index );
|
||||||
|
|
||||||
static inline void _ARM_Data_memory_barrier( void )
|
|
||||||
{
|
|
||||||
__asm__ volatile ( "dmb" : : : "memory" );
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void _ARM_Data_synchronization_barrier( void )
|
|
||||||
{
|
|
||||||
__asm__ volatile ( "dsb" : : : "memory" );
|
|
||||||
}
|
|
||||||
|
|
||||||
static inline void _ARM_Send_event( void )
|
static inline void _ARM_Send_event( void )
|
||||||
{
|
{
|
||||||
__asm__ volatile ( "sev" : : : "memory" );
|
__asm__ volatile ( "sev" : : : "memory" );
|
||||||
|
|||||||
Reference in New Issue
Block a user