make compatible with new version of libkcompat
[ust.git] / share / kernelcompat.h
index c0f4c9938c47a1959bcd5114036db63519ea1d3c..c03b4086880c8ff2cd9a9f1dde973b4935c350a9 100644 (file)
@@ -1,13 +1,17 @@
 #ifndef KERNELCOMPAT_H
 #define KERNELCOMPAT_H
 
+#include <compiler.h>
 #include <kcompat.h>
 
-#include "compiler.h"
-
 #include <string.h>
 #include <sys/time.h>
 
+/* FIXME: libkcompat must not define arch-specific local ops, as ust *must*
+ * fallback to the normal atomic ops. Fix things so we don't add them and
+ * break things accidentally.
+ */
+
 #define container_of(ptr, type, member) ({                      \
         const typeof( ((type *)0)->member ) *__mptr = (ptr);    \
         (type *)( (char *)__mptr - offsetof(type,member) );})
@@ -41,14 +45,7 @@ static inline long IS_ERR(const void *ptr)
 }
 
 
-/* FIXED SIZE INTEGERS */
-
-//#include <stdint.h>
-
-//typedef uint8_t u8;
-//typedef uint16_t u16;
-//typedef uint32_t u32;
-//typedef uint64_t u64;
+/* Min / Max */
 
 #define min_t(type, x, y) ({                    \
        type __min1 = (x);                      \
@@ -91,93 +88,6 @@ static inline long IS_ERR(const void *ptr)
 #include <stdio.h>
 #define printk(fmt, args...) printf(fmt, ## args)
 
-/* MEMORY BARRIERS */
-
-#define smp_mb__after_atomic_inc() do {} while(0)
-
-/* RCU */
-
-#include "urcu.h"
-#define call_rcu_sched(a,b) b(a); synchronize_rcu()
-#define rcu_barrier_sched() do {} while(0) /* this nop is ok if call_rcu_sched does a synchronize_rcu() */
-#define rcu_read_lock_sched_notrace() rcu_read_lock()
-#define rcu_read_unlock_sched_notrace() rcu_read_unlock()
-
-/* ATOMICITY */
-
-#include <signal.h>
-
-static inline int atomic_dec_and_test(atomic_t *p)
-{
-       (p->counter)--;
-       return !p->counter;
-}
-
-static inline void atomic_set(atomic_t *p, int v)
-{
-       p->counter=v;
-}
-
-static inline void atomic_inc(atomic_t *p)
-{
-       p->counter++;
-}
-
-static int atomic_read(atomic_t *p)
-{
-       return p->counter;
-}
-
-#define atomic_long_t atomic_t
-#define atomic_long_set atomic_set
-#define atomic_long_read atomic_read
-
-//#define __xg(x) ((volatile long *)(x))
-
-#define cmpxchg(ptr, o, n)                                             \
-       ((__typeof__(*(ptr)))__cmpxchg((ptr), (unsigned long)(o),       \
-                                      (unsigned long)(n), sizeof(*(ptr))))
-
-//#define local_cmpxchg cmpxchg
-#define local_cmpxchg(l, o, n) (cmpxchg(&((l)->a.counter), (o), (n)))
-
-#define atomic_long_cmpxchg(v, old, new) (cmpxchg(&((v)->counter), (old), (new)))
-
-
-/* LOCAL OPS */
-
-//typedef int local_t;
-typedef struct
-{
-       atomic_long_t a;
-} local_t;
-
-
-static inline void local_inc(local_t *l)
-{
-       (l->a.counter)++;
-}
-
-static inline void local_set(local_t *l, int v)
-{
-       l->a.counter = v;
-}
-
-static inline void local_add(int v, local_t *l)
-{
-       l->a.counter += v;
-}
-
-static int local_add_return(int v, local_t *l)
-{
-       return l->a.counter += v;
-}
-
-static inline int local_read(local_t *l)
-{
-       return l->a.counter;
-}
-
 
 /* ATTRIBUTES */
 
This page took 0.027175 seconds and 4 git commands to generate.