X-Git-Url: https://git.lttng.org/?p=urcu.git;a=blobdiff_plain;f=tests%2Fapi_x86.h;h=fe00a3599ab9a9e657e9daa6bb91cad8bc4ffac7;hp=4f6e836388ccc2e14693e080a7fcdb12b4b73f40;hb=5481ddb381061bda64aebc039900d21cac6a6caf;hpb=22b63ec43c9cfeac380665f99052b5fe94082c79 diff --git a/tests/api_x86.h b/tests/api_x86.h index 4f6e836..fe00a35 100644 --- a/tests/api_x86.h +++ b/tests/api_x86.h @@ -1,7 +1,10 @@ /* MECHANICALLY GENERATED, DO NOT EDIT!!! */ +#ifndef _INCLUDE_API_H #define _INCLUDE_API_H +#include "../config.h" + /* * common.h: Common Linux kernel-isms. * @@ -309,10 +312,10 @@ __asm__ __volatile__(LOCK_PREFIX "orl %0,%1" \ : : "r" (mask),"m" (*(addr)) : "memory") /* Atomic operations are already serializing on x86 */ -#define smp_mb__before_atomic_dec() barrier() -#define smp_mb__after_atomic_dec() barrier() -#define smp_mb__before_atomic_inc() barrier() -#define smp_mb__after_atomic_inc() barrier() +#define smp_mb__before_atomic_dec() cmm_barrier() +#define smp_mb__after_atomic_dec() cmm_barrier() +#define smp_mb__before_atomic_inc() cmm_barrier() +#define smp_mb__after_atomic_inc() cmm_barrier() #endif //0 @@ -349,13 +352,6 @@ __asm__ __volatile__(LOCK_PREFIX "orl %0,%1" \ #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. */ @@ -521,13 +517,25 @@ static void wait_all_threads(void) } } +#ifndef HAVE_CPU_SET_T +typedef unsigned long cpu_set_t; +# define CPU_ZERO(cpuset) do { *(cpuset) = 0; } while(0) +# define CPU_SET(cpu, cpuset) do { *(cpuset) |= (1UL << (cpu)); } while(0) +#endif + static void run_on(int cpu) { +#if HAVE_SCHED_SETAFFINITY cpu_set_t mask; CPU_ZERO(&mask); CPU_SET(cpu, &mask); +#if SCHED_SETAFFINITY_ARGS == 2 + sched_setaffinity(0, &mask); +#else sched_setaffinity(0, sizeof(mask), &mask); +#endif +#endif /* HAVE_SCHED_SETAFFINITY */ } /* @@ -698,10 +706,6 @@ 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 /* @@ -1393,3 +1397,5 @@ static inline void hlist_move_list(struct hlist_head *old, pos = n) #endif + +#endif