/* MECHANICALLY GENERATED, DO NOT EDIT!!! */
+#ifndef _INCLUDE_API_H
#define _INCLUDE_API_H
/*
* to redistribute under later versions of GPL might not be available.
*/
+#include <urcu/arch.h>
+
#ifndef __always_inline
#define __always_inline inline
#endif
#define atomic_dec_return(v) (atomic_sub_return(1,v))
/* Atomic operations are already serializing on x86 */
-#define smp_mb__before_atomic_dec() smp_mb()
-#define smp_mb__after_atomic_dec() smp_mb()
-#define smp_mb__before_atomic_inc() smp_mb()
-#define smp_mb__after_atomic_inc() smp_mb()
+#define smp_mb__before_atomic_dec() cmm_smp_mb()
+#define smp_mb__after_atomic_dec() cmm_smp_mb()
+#define smp_mb__before_atomic_inc() cmm_smp_mb()
+#define smp_mb__after_atomic_inc() cmm_smp_mb()
#endif //0 /* duplicate with arch_atomic.h */
#include <sys/param.h>
/* #include "atomic.h" */
-/*
- * Compiler magic.
- */
-#define container_of(ptr, type, member) ({ \
- const typeof( ((type *)0)->member ) *__mptr = (ptr); \
- (type *)( (char *)__mptr - offsetof(type,member) );})
-
/*
* Default machine parameters.
*/
#define LIST_POISON1 ((void *) 0x00100100)
#define LIST_POISON2 ((void *) 0x00200200)
-#define container_of(ptr, type, member) ({ \
- const typeof( ((type *)0)->member ) *__mptr = (ptr); \
- (type *)( (char *)__mptr - offsetof(type,member) );})
-
#if 0
/*
pos = n)
#endif
+
+#endif