projects
/
userspace-rcu.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Add MIPS support
[userspace-rcu.git]
/
urcu
/
compiler.h
diff --git
a/urcu/compiler.h
b/urcu/compiler.h
index 08bd9e9f44fa004a744f98d1734a5131bc670428..0c6ece252ca0e8bee2a480ab45588bb8ccd15bcd 100644
(file)
--- a/
urcu/compiler.h
+++ b/
urcu/compiler.h
@@
-24,7
+24,7
@@
#define caa_likely(x) __builtin_expect(!!(x), 1)
#define caa_unlikely(x) __builtin_expect(!!(x), 0)
#define caa_likely(x) __builtin_expect(!!(x), 1)
#define caa_unlikely(x) __builtin_expect(!!(x), 0)
-#define cmm_barrier()
asm volatile
("" : : : "memory")
+#define cmm_barrier()
__asm__ __volatile__
("" : : : "memory")
/*
* Instruct the compiler to perform only a single access to a variable
/*
* Instruct the compiler to perform only a single access to a variable
@@
-38,7
+38,7
@@
* use is to mediate communication between process-level code and irq/NMI
* handlers, all running on the same CPU.
*/
* use is to mediate communication between process-level code and irq/NMI
* handlers, all running on the same CPU.
*/
-#define CMM_ACCESS_ONCE(x) (*(
volatile typeof
(x) *)&(x))
+#define CMM_ACCESS_ONCE(x) (*(
__volatile__ __typeof__
(x) *)&(x))
#ifndef caa_max
#define caa_max(a,b) ((a)>(b)?(a):(b))
#ifndef caa_max
#define caa_max(a,b) ((a)>(b)?(a):(b))
@@
-65,7
+65,7
@@
*/
#define caa_container_of(ptr, type, member) \
({ \
*/
#define caa_container_of(ptr, type, member) \
({ \
- const
typeof(((type *) NULL)->member) * __ptr = (ptr);
\
+ const
__typeof__(((type *) NULL)->member) * __ptr = (ptr);
\
(type *)((char *)__ptr - offsetof(type, member)); \
})
(type *)((char *)__ptr - offsetof(type, member)); \
})
@@
-86,4
+86,9
@@
#define URCU_FORCE_CAST(type, arg) ((type) (arg))
#endif
#define URCU_FORCE_CAST(type, arg) ((type) (arg))
#endif
+#define caa_is_signed_type(type) (((type) (-1)) < 0)
+
+#define caa_cast_long_keep_sign(v) \
+ (caa_is_signed_type(__typeof__(v)) ? (long) (v) : (unsigned long) (v))
+
#endif /* _URCU_COMPILER_H */
#endif /* _URCU_COMPILER_H */
This page took
0.025436 seconds
and
4
git commands to generate.