Page MenuHomeFreeBSD

D22966.id66135.diff
No OneTemporary

D22966.id66135.diff

Index: sys/arm64/include/atomic.h
===================================================================
--- sys/arm64/include/atomic.h
+++ sys/arm64/include/atomic.h
@@ -448,6 +448,34 @@
return (ret);
}
+static __inline uint8_t
+atomic_load_acq_8(volatile uint8_t *p)
+{
+ uint8_t ret;
+
+ __asm __volatile(
+ "ldarb %w0, [%1] \n"
+ : "=&r" (ret)
+ : "r" (p)
+ : "memory");
+
+ return (ret);
+}
+
+static __inline uint16_t
+atomic_load_acq_16(volatile uint16_t *p)
+{
+ uint16_t ret;
+
+ __asm __volatile(
+ "ldarh %w0, [%1] \n"
+ : "=&r" (ret)
+ : "r" (p)
+ : "memory");
+
+ return (ret);
+}
+
static __inline uint32_t
atomic_load_acq_32(volatile uint32_t *p)
{
@@ -476,6 +504,28 @@
return (ret);
}
+static __inline void
+atomic_store_rel_8(volatile uint8_t *p, uint8_t val)
+{
+
+ __asm __volatile(
+ "stlrb %w0, [%1] \n"
+ :
+ : "r" (val), "r" (p)
+ : "memory");
+}
+
+static __inline void
+atomic_store_rel_16(volatile uint16_t *p, uint16_t val)
+{
+
+ __asm __volatile(
+ "stlrh %w0, [%1] \n"
+ :
+ : "r" (val), "r" (p)
+ : "memory");
+}
+
static __inline void
atomic_store_rel_32(volatile uint32_t *p, uint32_t val)
{

File Metadata

Mime Type
text/plain
Expires
Sun, Apr 19, 10:16 AM (6 h, 49 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
31761204
Default Alt Text
D22966.id66135.diff (1 KB)

Event Timeline