diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2023-10-28 13:01:17 +0200 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2023-10-28 13:04:43 +0200 |
commit | fc47cd4ec8314c3df45a6cedc2d633bd52bca01e (patch) | |
tree | 7e6db17e857aeb3002bf1f72c5138f58783c6eb8 /i386 | |
parent | 11f470d2203e2bd0362657e46f8b5c78d1ec9e55 (diff) | |
download | gnumach-fc47cd4ec8314c3df45a6cedc2d633bd52bca01e.tar.gz gnumach-fc47cd4ec8314c3df45a6cedc2d633bd52bca01e.tar.bz2 gnumach-fc47cd4ec8314c3df45a6cedc2d633bd52bca01e.zip |
64bit: Fix types in lock.h
simple locks use natural_t, and indexes for bt/bts/btr have to be 32bit.
Diffstat (limited to 'i386')
-rw-r--r-- | i386/i386/lock.h | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/i386/i386/lock.h b/i386/i386/lock.h index 56370440..b325ae0d 100644 --- a/i386/i386/lock.h +++ b/i386/i386/lock.h @@ -45,10 +45,10 @@ */ #define _simple_lock_xchg_(lock, new_val) \ - ({ int _old_val_; \ - asm volatile("xchgl %0, %2" \ +({ natural_t _old_val_; \ + asm volatile("xchg %0, %2" \ : "=r" (_old_val_) \ - : "0" (new_val), "m" (*(lock)) : "memory" \ + : "0" ((natural_t)(new_val)), "m" (*(lock)) : "memory" \ ); \ _old_val_; \ }) @@ -62,7 +62,7 @@ #define _simple_lock(l) \ ({ \ while(_simple_lock_xchg_(l, 1)) \ - while (*(volatile int *)&(l)->lock_data) \ + while (*(volatile natural_t *)&(l)->lock_data) \ cpu_pause(); \ 0; \ }) @@ -85,7 +85,7 @@ btsl %0, %1 \n\ jb 0b" \ : \ - : "r" (bit), "m" (*(volatile int *)(l)) : "memory"); \ + : "r" ((int)(bit)), "m" (*(volatile int *)(l)) : "memory"); \ 0; \ }) @@ -94,7 +94,7 @@ asm volatile(" lock \n\ btrl %0, %1" \ : \ - : "r" (bit), "m" (*(volatile int *)(l)) : "memory"); \ + : "r" ((int)(bit)), "m" (*(volatile int *)(l)) : "memory"); \ 0; \ }) @@ -108,7 +108,7 @@ asm volatile(" lock \n\ btsl %0, %1" \ : \ - : "r" (bit), "m" (*(l)) ); \ + : "r" ((int)(bit)), "m" (*(l)) ); \ 0; \ }) @@ -117,7 +117,7 @@ asm volatile(" lock \n\ btrl %0, %1" \ : \ - : "r" (bit), "m" (*(l)) ); \ + : "r" ((int)(bit)), "m" (*(l)) ); \ 0; \ }) |