diff --git a/libs/libc/machine/arch_atomic.c b/libs/libc/machine/arch_atomic.c index 87d68008d5e..12ff71f4b46 100644 --- a/libs/libc/machine/arch_atomic.c +++ b/libs/libc/machine/arch_atomic.c @@ -31,12 +31,6 @@ #include #include -/**************************************************************************** - * Private Data - ****************************************************************************/ - -static spinlock_t g_atomic_lock = SP_UNLOCKED; - /**************************************************************************** * Pre-processor Definitions ****************************************************************************/ @@ -46,11 +40,11 @@ static spinlock_t g_atomic_lock = SP_UNLOCKED; void weak_function CONCATENATE(fn, n)(FAR volatile void *ptr, \ type value, int memorder) \ { \ - irqstate_t irqstate = spin_lock_irqsave_notrace(&g_atomic_lock); \ + irqstate_t irqstate = up_irq_save(); \ \ *(FAR type *)ptr = value; \ \ - spin_unlock_irqrestore_notrace(&g_atomic_lock, irqstate); \ + up_irq_restore(irqstate); \ } #define LOAD(fn, n, type) \ @@ -58,11 +52,11 @@ static spinlock_t g_atomic_lock = SP_UNLOCKED; type weak_function CONCATENATE(fn, n)(FAR const volatile void *ptr, \ int memorder) \ { \ - irqstate_t irqstate = spin_lock_irqsave_notrace(&g_atomic_lock); \ + irqstate_t irqstate = up_irq_save(); \ \ type ret = *(FAR type *)ptr; \ \ - spin_unlock_irqrestore_notrace(&g_atomic_lock, irqstate); \ + up_irq_restore(irqstate); \ return ret; \ } @@ -71,13 +65,13 @@ static spinlock_t g_atomic_lock = SP_UNLOCKED; type weak_function CONCATENATE(fn, n)(FAR volatile void *ptr, \ type value, int memorder) \ { \ - irqstate_t irqstate = spin_lock_irqsave_notrace(&g_atomic_lock); \ + irqstate_t irqstate = up_irq_save(); \ FAR type *tmp = (FAR type *)ptr; \ \ type ret = *tmp; \ *tmp = value; \ \ - spin_unlock_irqrestore_notrace(&g_atomic_lock, irqstate); \ + up_irq_restore(irqstate); \ return ret; \ } @@ -89,7 +83,7 @@ static spinlock_t g_atomic_lock = SP_UNLOCKED; int success, int failure) \ { \ bool ret = false; \ - irqstate_t irqstate = spin_lock_irqsave_notrace(&g_atomic_lock); \ + irqstate_t irqstate = up_irq_save(); \ FAR type *tmpmem = (FAR type *)mem; \ FAR type *tmpexp = (FAR type *)expect; \ \ @@ -103,7 +97,7 @@ static spinlock_t g_atomic_lock = SP_UNLOCKED; *tmpexp = *tmpmem; \ } \ \ - spin_unlock_irqrestore_notrace(&g_atomic_lock, irqstate); \ + up_irq_restore(irqstate); \ return ret; \ } @@ -112,13 +106,13 @@ static spinlock_t g_atomic_lock = SP_UNLOCKED; type weak_function CONCATENATE(fn, n)(FAR volatile void *ptr, \ int memorder) \ { \ - irqstate_t irqstate = spin_lock_irqsave_notrace(&g_atomic_lock); \ + irqstate_t irqstate = up_irq_save(); \ FAR type *tmp = (FAR type *)ptr; \ type ret = *tmp; \ \ *(FAR type *)ptr = 1; \ \ - spin_unlock_irqrestore_notrace(&g_atomic_lock, irqstate); \ + up_irq_restore(irqstate); \ return ret; \ } @@ -127,13 +121,13 @@ static spinlock_t g_atomic_lock = SP_UNLOCKED; type weak_function CONCATENATE(fn, n)(FAR volatile void *ptr, \ type value, int memorder) \ { \ - irqstate_t irqstate = spin_lock_irqsave_notrace(&g_atomic_lock); \ + irqstate_t irqstate = up_irq_save(); \ FAR type *tmp = (FAR type *)ptr; \ type ret = *tmp; \ \ *tmp = *tmp + value; \ \ - spin_unlock_irqrestore_notrace(&g_atomic_lock, irqstate); \ + up_irq_restore(irqstate); \ return ret; \ } @@ -142,13 +136,13 @@ static spinlock_t g_atomic_lock = SP_UNLOCKED; type weak_function CONCATENATE(fn, n)(FAR volatile void *ptr, \ type value, int memorder) \ { \ - irqstate_t irqstate = spin_lock_irqsave_notrace(&g_atomic_lock); \ + irqstate_t irqstate = up_irq_save(); \ FAR type *tmp = (FAR type *)ptr; \ type ret = *tmp; \ \ *tmp = *tmp - value; \ \ - spin_unlock_irqrestore_notrace(&g_atomic_lock, irqstate); \ + up_irq_restore(irqstate); \ return ret; \ } @@ -157,13 +151,13 @@ static spinlock_t g_atomic_lock = SP_UNLOCKED; type weak_function CONCATENATE(fn, n)(FAR volatile void *ptr, \ type value, int memorder) \ { \ - irqstate_t irqstate = spin_lock_irqsave_notrace(&g_atomic_lock); \ + irqstate_t irqstate = up_irq_save(); \ FAR type *tmp = (FAR type *)ptr; \ type ret = *tmp; \ \ *tmp = *tmp & value; \ \ - spin_unlock_irqrestore_notrace(&g_atomic_lock, irqstate); \ + up_irq_restore(irqstate); \ return ret; \ } @@ -172,13 +166,13 @@ static spinlock_t g_atomic_lock = SP_UNLOCKED; type weak_function CONCATENATE(fn, n)(FAR volatile void *ptr, \ type value, int memorder) \ { \ - irqstate_t irqstate = spin_lock_irqsave_notrace(&g_atomic_lock); \ + irqstate_t irqstate = up_irq_save(); \ FAR type *tmp = (FAR type *)ptr; \ type ret = *tmp; \ \ *tmp = *tmp | value; \ \ - spin_unlock_irqrestore_notrace(&g_atomic_lock, irqstate); \ + up_irq_restore(irqstate); \ return ret; \ } @@ -187,13 +181,13 @@ static spinlock_t g_atomic_lock = SP_UNLOCKED; type weak_function CONCATENATE(fn, n)(FAR volatile void *ptr, \ type value, int memorder) \ { \ - irqstate_t irqstate = spin_lock_irqsave_notrace(&g_atomic_lock); \ + irqstate_t irqstate = up_irq_save(); \ FAR type *tmp = (FAR type *)ptr; \ type ret = *tmp; \ \ *tmp = *tmp ^ value; \ \ - spin_unlock_irqrestore_notrace(&g_atomic_lock, irqstate); \ + up_irq_restore(irqstate); \ return ret; \ } @@ -202,12 +196,12 @@ static spinlock_t g_atomic_lock = SP_UNLOCKED; type weak_function CONCATENATE(fn, n)(FAR volatile void *ptr, \ type value) \ { \ - irqstate_t irqstate = spin_lock_irqsave_notrace(&g_atomic_lock); \ + irqstate_t irqstate = up_irq_save(); \ FAR type *tmp = (FAR type *)ptr; \ \ *tmp = *tmp + value; \ \ - spin_unlock_irqrestore_notrace(&g_atomic_lock, irqstate); \ + up_irq_restore(irqstate); \ return *tmp; \ } @@ -216,12 +210,12 @@ static spinlock_t g_atomic_lock = SP_UNLOCKED; type weak_function CONCATENATE(fn, n)(FAR volatile void *ptr, \ type value) \ { \ - irqstate_t irqstate = spin_lock_irqsave_notrace(&g_atomic_lock); \ + irqstate_t irqstate = up_irq_save(); \ FAR type *tmp = (FAR type *)ptr; \ \ *tmp = *tmp - value; \ \ - spin_unlock_irqrestore_notrace(&g_atomic_lock, irqstate); \ + up_irq_restore(irqstate); \ return *tmp; \ } @@ -230,12 +224,12 @@ static spinlock_t g_atomic_lock = SP_UNLOCKED; type weak_function CONCATENATE(fn, n)(FAR volatile void *ptr, \ type value) \ { \ - irqstate_t irqstate = spin_lock_irqsave_notrace(&g_atomic_lock); \ + irqstate_t irqstate = up_irq_save(); \ FAR type *tmp = (FAR type *)ptr; \ \ *tmp = *tmp | value; \ \ - spin_unlock_irqrestore_notrace(&g_atomic_lock, irqstate); \ + up_irq_restore(irqstate); \ return *tmp; \ } @@ -244,12 +238,12 @@ static spinlock_t g_atomic_lock = SP_UNLOCKED; type weak_function CONCATENATE(fn, n)(FAR volatile void *ptr, \ type value) \ { \ - irqstate_t irqstate = spin_lock_irqsave_notrace(&g_atomic_lock); \ + irqstate_t irqstate = up_irq_save(); \ FAR type *tmp = (FAR type *)ptr; \ \ *tmp = *tmp & value; \ \ - spin_unlock_irqrestore_notrace(&g_atomic_lock, irqstate); \ + up_irq_restore(irqstate); \ return *tmp; \ } @@ -258,12 +252,12 @@ static spinlock_t g_atomic_lock = SP_UNLOCKED; type weak_function CONCATENATE(fn, n)(FAR volatile void *ptr, \ type value) \ { \ - irqstate_t irqstate = spin_lock_irqsave_notrace(&g_atomic_lock); \ + irqstate_t irqstate = up_irq_save(); \ FAR type *tmp = (FAR type *)ptr; \ \ *tmp = *tmp ^ value; \ \ - spin_unlock_irqrestore_notrace(&g_atomic_lock, irqstate); \ + up_irq_restore(irqstate); \ return *tmp; \ } @@ -272,12 +266,12 @@ static spinlock_t g_atomic_lock = SP_UNLOCKED; type weak_function CONCATENATE(fn, n)(FAR volatile void *ptr, \ type value) \ { \ - irqstate_t irqstate = spin_lock_irqsave_notrace(&g_atomic_lock); \ + irqstate_t irqstate = up_irq_save(); \ FAR type *tmp = (FAR type *)ptr; \ \ *tmp = ~(*tmp & value); \ \ - spin_unlock_irqrestore_notrace(&g_atomic_lock, irqstate); \ + up_irq_restore(irqstate); \ return *tmp; \ } @@ -288,7 +282,7 @@ static spinlock_t g_atomic_lock = SP_UNLOCKED; type newvalue) \ { \ bool ret = false; \ - irqstate_t irqstate = spin_lock_irqsave_notrace(&g_atomic_lock); \ + irqstate_t irqstate = up_irq_save(); \ FAR type *tmp = (FAR type *)ptr; \ \ if (*tmp == oldvalue) \ @@ -297,7 +291,7 @@ static spinlock_t g_atomic_lock = SP_UNLOCKED; *tmp = newvalue; \ } \ \ - spin_unlock_irqrestore_notrace(&g_atomic_lock, irqstate); \ + up_irq_restore(irqstate); \ return ret; \ } @@ -307,7 +301,7 @@ static spinlock_t g_atomic_lock = SP_UNLOCKED; type oldvalue, \ type newvalue) \ { \ - irqstate_t irqstate = spin_lock_irqsave_notrace(&g_atomic_lock); \ + irqstate_t irqstate = up_irq_save(); \ FAR type *tmp = (FAR type *)ptr; \ type ret = *tmp; \ \ @@ -316,7 +310,7 @@ static spinlock_t g_atomic_lock = SP_UNLOCKED; *tmp = newvalue; \ } \ \ - spin_unlock_irqrestore_notrace(&g_atomic_lock, irqstate); \ + up_irq_restore(irqstate); \ return ret; \ }