diff --git a/libs/libc/machine/arch_atomic.c b/libs/libc/machine/arch_atomic.c index 789d8db306e..146b998fba5 100644 --- a/libs/libc/machine/arch_atomic.c +++ b/libs/libc/machine/arch_atomic.c @@ -34,59 +34,60 @@ #define STORE(n, type) \ \ - void __atomic_store_ ## n (volatile void *ptr, \ + void __atomic_store_ ## n (FAR volatile void *ptr, \ type value, \ int memorder) \ { \ irqstate_t irqstate = spin_lock_irqsave(NULL); \ \ - *(type *)ptr = value; \ + *(FAR type *)ptr = value; \ \ spin_unlock_irqrestore(NULL, irqstate); \ } #define LOAD(n, type) \ \ - type __atomic_load_ ## n (const volatile void *ptr, \ + type __atomic_load_ ## n (FAR const volatile void *ptr, \ int memorder) \ { \ irqstate_t irqstate = spin_lock_irqsave(NULL); \ \ - type ret = *(type *)ptr; \ + type ret = *(FAR type *)ptr; \ \ spin_unlock_irqrestore(NULL, irqstate); \ - return ret; \ + return ret; \ } #define EXCHANGE(n, type) \ \ - type __atomic_exchange_ ## n (volatile void *ptr, \ + type __atomic_exchange_ ## n (FAR volatile void *ptr, \ type value, \ int memorder) \ { \ irqstate_t irqstate = spin_lock_irqsave(NULL); \ - type *tmp = (type *)ptr; \ + FAR type *tmp = (FAR type *)ptr; \ \ type ret = *tmp; \ *tmp = value; \ \ spin_unlock_irqrestore(NULL, irqstate); \ - return ret; \ + return ret; \ } #define CMP_EXCHANGE(n, type) \ \ - bool __atomic_compare_exchange_ ## n (volatile void *mem,\ - void *expect, \ - type desired, \ - bool weak, \ - int success, \ - int failure) \ + bool __atomic_compare_exchange_ ## n ( \ + FAR volatile void *mem, \ + FAR void *expect, \ + type desired, \ + bool weak, \ + int success, \ + int failure) \ { \ bool ret = false; \ irqstate_t irqstate = spin_lock_irqsave(NULL); \ - type *tmpmem = (type *)mem; \ - type *tmpexp = (type *)expect; \ + FAR type *tmpmem = (FAR type *)mem; \ + FAR type *tmpexp = (FAR type *)expect; \ \ if (*tmpmem == *tmpexp) \ { \ @@ -99,17 +100,17 @@ } \ \ spin_unlock_irqrestore(NULL, irqstate); \ - return ret; \ + return ret; \ } #define FETCH_ADD(n, type) \ \ - type __atomic_fetch_add_ ## n (volatile void *ptr, \ + type __atomic_fetch_add_ ## n (FAR volatile void *ptr, \ type value, \ int memorder) \ { \ irqstate_t irqstate = spin_lock_irqsave(NULL); \ - type *tmp = (type *)ptr; \ + FAR type *tmp = (FAR type *)ptr; \ type ret = *tmp; \ \ *tmp = *tmp + value; \ @@ -120,12 +121,12 @@ #define FETCH_SUB(n, type) \ \ - type __atomic_fetch_sub_ ## n (volatile void *ptr, \ + type __atomic_fetch_sub_ ## n (FAR volatile void *ptr, \ type value, \ int memorder) \ { \ irqstate_t irqstate = spin_lock_irqsave(NULL); \ - type *tmp = (type *)ptr; \ + FAR type *tmp = (FAR type *)ptr; \ type ret = *tmp; \ \ *tmp = *tmp - value; \ @@ -136,12 +137,12 @@ #define FETCH_AND(n, type) \ \ - type __atomic_fetch_and_ ## n (volatile void *ptr, \ + type __atomic_fetch_and_ ## n (FAR volatile void *ptr, \ type value, \ int memorder) \ { \ irqstate_t irqstate = spin_lock_irqsave(NULL); \ - type *tmp = (type *)ptr; \ + FAR type *tmp = (FAR type *)ptr; \ type ret = *tmp; \ \ *tmp = *tmp & value; \ @@ -152,12 +153,12 @@ #define FETCH_OR(n, type) \ \ - type __atomic_fetch_or_ ## n (volatile void *ptr, \ + type __atomic_fetch_or_ ## n (FAR volatile void *ptr, \ type value, \ int memorder) \ { \ irqstate_t irqstate = spin_lock_irqsave(NULL); \ - type *tmp = (type *)ptr; \ + FAR type *tmp = (FAR type *)ptr; \ type ret = *tmp; \ \ *tmp = *tmp | value; \ @@ -168,12 +169,12 @@ #define FETCH_XOR(n, type) \ \ - type __atomic_fetch_xor_ ## n (volatile void *ptr, \ + type __atomic_fetch_xor_ ## n (FAR volatile void *ptr, \ type value, \ int memorder) \ { \ irqstate_t irqstate = spin_lock_irqsave(NULL); \ - type *tmp = (type *)ptr; \ + FAR type *tmp = (FAR type *)ptr; \ type ret = *tmp; \ \ *tmp = *tmp ^ value; \ @@ -184,11 +185,12 @@ #define SYNC_ADD_FETCH(n, type) \ \ - type __sync_add_and_fetch_ ## n (volatile void *ptr, \ - type value) \ + type __sync_add_and_fetch_ ## n ( \ + FAR volatile void *ptr, \ + type value) \ { \ irqstate_t irqstate = spin_lock_irqsave(NULL); \ - type *tmp = (type *)ptr; \ + FAR type *tmp = (FAR type *)ptr; \ \ *tmp = *tmp + value; \ \ @@ -198,11 +200,12 @@ #define SYNC_SUB_FETCH(n, type) \ \ - type __sync_sub_and_fetch_ ## n (volatile void *ptr, \ - type value) \ + type __sync_sub_and_fetch_ ## n ( \ + FAR volatile void *ptr, \ + type value) \ { \ irqstate_t irqstate = spin_lock_irqsave(NULL); \ - type *tmp = (type *)ptr; \ + FAR type *tmp = (FAR type *)ptr; \ \ *tmp = *tmp - value; \ \ @@ -212,11 +215,12 @@ #define SYNC_OR_FETCH(n, type) \ \ - type __sync_or_and_fetch_ ## n (volatile void *ptr, \ - type value) \ + type __sync_or_and_fetch_ ## n ( \ + FAR volatile void *ptr, \ + type value) \ { \ irqstate_t irqstate = spin_lock_irqsave(NULL); \ - type *tmp = (type *)ptr; \ + FAR type *tmp = (FAR type *)ptr; \ \ *tmp = *tmp | value; \ \ @@ -226,11 +230,12 @@ #define SYNC_AND_FETCH(n, type) \ \ - type __sync_and_and_fetch_ ## n (volatile void *ptr, \ - type value) \ + type __sync_and_and_fetch_ ## n ( \ + FAR volatile void *ptr, \ + type value) \ { \ irqstate_t irqstate = spin_lock_irqsave(NULL); \ - type *tmp = (type *)ptr; \ + FAR type *tmp = (FAR type *)ptr; \ \ *tmp = *tmp & value; \ \ @@ -240,11 +245,12 @@ #define SYNC_XOR_FETCH(n, type) \ \ - type __sync_xor_and_fetch_ ## n (volatile void *ptr, \ - type value) \ + type __sync_xor_and_fetch_ ## n ( \ + FAR volatile void *ptr, \ + type value) \ { \ irqstate_t irqstate = spin_lock_irqsave(NULL); \ - type *tmp = (type *)ptr; \ + FAR type *tmp = (FAR type *)ptr; \ \ *tmp = *tmp ^ value; \ \ @@ -254,11 +260,12 @@ #define SYNC_NAND_FETCH(n, type) \ \ - type __sync_nand_and_fetch_ ## n (volatile void *ptr, \ - type value) \ + type __sync_nand_and_fetch_ ## n ( \ + FAR volatile void *ptr, \ + type value) \ { \ irqstate_t irqstate = spin_lock_irqsave(NULL); \ - type *tmp = (type *)ptr; \ + FAR type *tmp = (FAR type *)ptr; \ \ *tmp = ~(*tmp & value); \ \ @@ -269,13 +276,13 @@ #define SYNC_BOOL_CMP_SWAP(n, type) \ \ bool __sync_bool_compare_and_swap_ ## n ( \ - volatile void *ptr, \ + FAR volatile void *ptr, \ type oldvalue, \ type newvalue) \ { \ bool ret = false; \ irqstate_t irqstate = spin_lock_irqsave(NULL); \ - type *tmp = (type *)ptr; \ + FAR type *tmp = (FAR type *)ptr; \ \ if (*tmp == oldvalue) \ { \ @@ -290,12 +297,12 @@ #define SYNC_VAL_CMP_SWAP(n, type) \ \ type __sync_val_compare_and_swap_ ## n ( \ - volatile void *ptr, \ + FAR volatile void *ptr, \ type oldvalue, \ type newvalue) \ { \ irqstate_t irqstate = spin_lock_irqsave(NULL); \ - type *tmp = (type *)ptr; \ + FAR type *tmp = (FAR type *)ptr; \ type ret = *tmp; \ \ if (*tmp == oldvalue) \