Hi,

On 24/02/2020 10:09, Roger Pau Monné wrote:
On Mon, Feb 24, 2020 at 10:02:53AM +0000, Julien Grall wrote:
Hi Roger,

The logic for Arm64 and Arm32 looks good to me. I just have one question
below.

On 24/02/2020 08:43, Roger Pau Monne wrote:
To x86 and Arm. This performs an atomic AND operation against an
atomic_t variable with the provided mask.

Requested-by: Jan Beulich <jbeul...@suse.com>
Signed-off-by: Roger Pau Monné <roger....@citrix.com>
---
   xen/include/asm-arm/arm32/atomic.h | 17 +++++++++++++++++
   xen/include/asm-arm/arm64/atomic.h | 14 ++++++++++++++
   xen/include/asm-x86/atomic.h       |  8 ++++++++
   3 files changed, 39 insertions(+)

diff --git a/xen/include/asm-arm/arm32/atomic.h 
b/xen/include/asm-arm/arm32/atomic.h
index c03eb684cd..4637381bcc 100644
--- a/xen/include/asm-arm/arm32/atomic.h
+++ b/xen/include/asm-arm/arm32/atomic.h
@@ -96,6 +96,23 @@ static inline int atomic_sub_return(int i, atomic_t *v)
        return result;
   }
+static inline void atomic_and(unsigned int m, atomic_t *v)

All the atomic helpers have taken a signed int so far because the counter is
an int. Any reason to diverge from that?

Since this is not an arithmetic operation I felt unsigned int was a
more suitable type to describe a bitmask: it felt weird to pass a
bitmask with type int, because signedness doesn't make sense when
referring to a mask.

At some point I would like to have macro generating all the atomics in on Arm in the same way a Linux (see asm-generic/atomic.h). This is to avoid duplication and make easy to introduce Armv8.1 LSE atomics. So I would like to avoid introducing difference in the prototype unless it is stricly necessary.

Cheers,

--
Julien Grall

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel

Reply via email to