dapl: aarch64 support for linux
PATCH 1/1 dapl: aarch64 support for linux
Add atomic ops to fix builds for aarch64 Linux.
Signed-off-by Mark Salter <[email protected]>
--- dapl/udapl/linux/dapl_osd.h | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-)
dapl/udapl/linux/dapl_osd.h +10 -1
@@ -50,7 +50,8 @@#endif /* __linux__ */ #if !defined (__i386__) && !defined (__ia64__) && !defined(__x86_64__) && \ - !defined(__PPC__) && !defined(__PPC64__) && !defined(__s390x__) + !defined(__PPC__) && !defined(__PPC64__) && !defined(__s390x__) && \ + !defined(__aarch64__)#error UNDEFINED ARCH#endif
@@ -214,6 +215,8 @@ dapl_os_atomic_inc ( : "=&r" (tmp), "+m" (v) : "b" (v) : "cc"); +#elif defined(__aarch64__) +__atomic_fetch_add (v,1 , __ATOMIC_ACQ_REL);#else /* !__ia64__ */ __asm__ __volatile__ ( "lock;" "incl %0"
@@ -258,6 +261,8 @@ dapl_os_atomic_dec ( : "=&r" (tmp), "+m" (v) : "b" (v) : "cc"); +#elif defined(__aarch64__) +__atomic_fetch_add (v,-1 , __ATOMIC_ACQ_REL);#else /* !__ia64__ */ __asm__ __volatile__ ( "lock;" "decl %0"
@@ -322,6 +327,10 @@ dapl_os_atomic_assign ( : "=&r" (current_value), "=m" (*v) : "r" (v), "r" (match_value), "r" (new_value), "m" (*v) : "cc", "memory"); +#elif defined(__aarch64__) + current_value = match_value; +__atomic_compare_exchange_n (v, ¤t_value, new_value,1 , + __ATOMIC_ACQ_REL, __ATOMIC_RELAXED);#else __asm__ __volatile__ ( "lock; cmpxchgl %1, %2"
Signature · 6 lines
1.9.3 -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
A message that is not in the archive (sent off-list or not yet received): 1431543933-27781-1-git-send-email-msalter-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org
Davis, Arlin R
Acked-byAcked-by Arlin Davis <[email protected]>
Quoted 60 lines
-----Original Message-----
From: Mark Salter [mailto:[email protected]]
Sent: Wednesday, May 13, 2015 12:06 PM
To: Davis, Arlin R
Cc: [email protected]; Mark Salter
Subject: [PATCH] dapl: aarch64 support for linuxAdd atomic ops to fix builds for aarch64 Linux.
Signed-off-by Mark Salter <[email protected]>--- dapl/udapl/linux/dapl_osd.h | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-)dapl/udapl/linux/dapl_osd.h index renamed from dapl/udapl/linux/dapl_osd.h +0
-010f71b0..2b255d0 100644
dapl/udapl/linux/dapl_osd.h +2
-1@@ -50,7 +50,8 @@#endif /* __linux__ */ #if !defined (__i386__) && !defined (__ia64__) && !defined(__x86_64__) && \ - !defined (__PPC__) && !defined (__PPC64__) && !defined (__s390x__) + !defined (__PPC__) && !defined (__PPC64__) && !defined (__s390x__) && \ + !defined(__aarch64__)#error UNDEFINED ARCH#endif
dapl/udapl/linux/dapl_osd.h +8
-1@@ -214,6 +215,8 @@ dapl_os_atomic_inc ( : "=&r" (tmp), "+m" (v) : "b" (v) : "cc"); +#elif defined(__aarch64__) +__atomic_fetch_add (v,1 , __ATOMIC_ACQ_REL);#else /* !__ia64__ */ __asm__ __volatile__ ( "lock;" "incl %0"@@ -258,6 +261,8 @@ dapl_os_atomic_dec ( : "=&r" (tmp), "+m" (v) : "b" (v) : "cc"); +#elif defined(__aarch64__) +__atomic_fetch_add (v,-1 , __ATOMIC_ACQ_REL);#else /* !__ia64__ */ __asm__ __volatile__ ( "lock;" "decl %0"@@ -322,6 +327,10 @@ dapl_os_atomic_assign ( : "=&r" (current_value), "=m" (*v) : "r" (v), "r" (match_value), "r" (new_value), "m" (*v) : "cc", "memory"); +#elif defined(__aarch64__) + current_value = match_value; +__atomic_compare_exchange_n (v, ¤t_value, new_value,1 , + __ATOMIC_ACQ_REL, __ATOMIC_RELAXED);#else __asm__ __volatile__ ( "lock; cmpxchgl %1, %2" --
Quoted 1 line
1.9.3
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html