X-Git-Url: https://git.liburcu.org/?p=urcu.git;a=blobdiff_plain;f=tests%2Fapi_ppc.h;h=5c5f6e99fbcb6af47bb3f5f962bd4104d1f194e5;hp=1d9c47e277b86ec87abc8fdc87f37cb15d990b49;hb=06f22bdbb0c4c4d5db42a2e2dc35818aa61415be;hpb=3d7be7ca4e2451381a8fc8a00bd6d7dcbf3b678f diff --git a/tests/api_ppc.h b/tests/api_ppc.h index 1d9c47e..5c5f6e9 100644 --- a/tests/api_ppc.h +++ b/tests/api_ppc.h @@ -1,5 +1,6 @@ /* MECHANICALLY GENERATED, DO NOT EDIT!!! */ +#ifndef _INCLUDE_API_H #define _INCLUDE_API_H /* @@ -25,6 +26,8 @@ * to redistribute under later versions of GPL might not be available. */ +#include + #ifndef __always_inline #define __always_inline inline #endif @@ -73,10 +76,12 @@ #define CONFIG_PPC64 -#define CACHE_LINE_SIZE 128 +/*#define CAA_CACHE_LINE_SIZE 128 */ #define ____cacheline_internodealigned_in_smp \ __attribute__((__aligned__(1 << 7))) +#if 0 /* duplicate with arch_atomic.h */ + /* * Atomic data structure, initialization, and access. */ @@ -102,7 +107,6 @@ typedef struct { volatile int counter; } atomic_t; # define ISYNC_ON_SMP #endif - /* * Atomic exchange * @@ -612,10 +616,12 @@ static __inline__ int atomic_add_unless(atomic_t *v, int a, int u) #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 */ /* * api_pthreads.h: API mapping to pthreads environment. @@ -650,20 +656,13 @@ static __inline__ int atomic_add_unless(atomic_t *v, int a, int u) #include /* #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. */ -#ifndef CACHE_LINE_SIZE -#define CACHE_LINE_SIZE 128 -#endif /* #ifndef CACHE_LINE_SIZE */ +#ifndef CAA_CACHE_LINE_SIZE +/* #define CAA_CACHE_LINE_SIZE 128 */ +#endif /* #ifndef CAA_CACHE_LINE_SIZE */ /* * Exclusive locking primitives. @@ -856,7 +855,7 @@ long long get_microseconds(void) #define DEFINE_PER_THREAD(type, name) \ struct { \ __typeof__(type) v \ - __attribute__((__aligned__(CACHE_LINE_SIZE))); \ + __attribute__((__aligned__(CAA_CACHE_LINE_SIZE))); \ } __per_thread_##name[NR_THREADS]; #define DECLARE_PER_THREAD(type, name) extern DEFINE_PER_THREAD(type, name) @@ -890,7 +889,7 @@ long long get_microseconds(void) #define DEFINE_PER_CPU(type, name) \ struct { \ __typeof__(type) v \ - __attribute__((__aligned__(CACHE_LINE_SIZE))); \ + __attribute__((__aligned__(CAA_CACHE_LINE_SIZE))); \ } __per_cpu_##name[NR_CPUS] #define DECLARE_PER_CPU(type, name) extern DEFINE_PER_CPU(type, name) @@ -1004,9 +1003,7 @@ static void smp_init(void) #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 /* * Simple doubly linked list implementation. @@ -1334,7 +1331,7 @@ static inline void list_splice_tail_init(struct list_head *list, * @member: the name of the list_struct within the struct. */ #define list_entry(ptr, type, member) \ - container_of(ptr, type, member) + caa_container_of(ptr, type, member) /** * list_first_entry - get the first element from a list @@ -1532,6 +1529,8 @@ static inline void list_splice_tail_init(struct list_head *list, &pos->member != (head); \ pos = n, n = list_entry(n->member.prev, typeof(*n), member)) +#endif //0 + /* * Double linked lists with a single pointer list head. * Mostly useful for hash tables where the two pointer list head is @@ -1634,7 +1633,7 @@ static inline void hlist_move_list(struct hlist_head *old, old->first = NULL; } -#define hlist_entry(ptr, type, member) container_of(ptr,type,member) +#define hlist_entry(ptr, type, member) caa_container_of(ptr,type,member) #define hlist_for_each(pos, head) \ for (pos = (head)->first; pos && ({ prefetch(pos->next); 1; }); \ @@ -1695,3 +1694,5 @@ static inline void hlist_move_list(struct hlist_head *old, pos = n) #endif + +#endif