Cleanup: doc/examples makefile
[urcu.git] / tests / api.h
index 40147b20a6ae8b69eb85365be62553636bf3b4e9..dced0d8d204e15b84252f1f374f7b5027d12490b 100644 (file)
@@ -1,7 +1,7 @@
-
 #ifndef _INCLUDE_API_H
 #define _INCLUDE_API_H
 
+#define _GNU_SOURCE
 #include "../config.h"
 
 /*
@@ -19,7 +19,7 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  *
  * Copyright (c) 2006 Paul E. McKenney, IBM.
  *
  * to redistribute under later versions of GPL might not be available.
  */
 
+#include <urcu/compiler.h>
 #include <urcu/arch.h>
-
-#ifndef __always_inline
-#define __always_inline inline
-#endif
-
-#define BUILD_BUG_ON(condition) ((void)sizeof(char[1 - 2*!!(condition)]))
-#define BUILD_BUG_ON_ZERO(e) (sizeof(char[1 - 2 * !!(e)]) - 1)
-
-#ifdef __ASSEMBLY__
-#  define stringify_in_c(...)   __VA_ARGS__
-#  define ASM_CONST(x)          x
-#else
-/* This version of stringify will deal with commas... */
-#  define __stringify_in_c(...) #__VA_ARGS__
-#  define stringify_in_c(...)   __stringify_in_c(__VA_ARGS__) " "
-#  define __ASM_CONST(x)        x##UL
-#  define ASM_CONST(x)          __ASM_CONST(x)
-#endif
-
-
-/*
- * arch-i386.h: Expose x86 atomic instructions.  80486 and better only.
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, but version 2 only due to inclusion
- * of Linux-kernel code.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
- *
- * Copyright (c) 2006 Paul E. McKenney, IBM.
- *
- * Much code taken from the Linux kernel.  For such code, the option
- * to redistribute under later versions of GPL might not be available.
- */
+#include "cpuset.h"
 
 /*
  * Machine parameters.
  */
 
-/* #define CAA_CACHE_LINE_SIZE 64 */
 #define ____cacheline_internodealigned_in_smp \
        __attribute__((__aligned__(CAA_CACHE_LINE_SIZE)))
 
@@ -96,7 +55,7 @@
  *
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
  *
  * Copyright (c) 2006 Paul E. McKenney, IBM.
  */
 #include <errno.h>
 #include <limits.h>
 #include <sys/types.h>
-#define __USE_GNU
 #include <pthread.h>
-#include <sched.h>
 #include <sys/param.h>
 /* #include "atomic.h" */
 
-/*
- * Default machine parameters.
- */
-
-#ifndef CAA_CACHE_LINE_SIZE
-/* #define CAA_CACHE_LINE_SIZE 128 */
-#endif /* #ifndef CAA_CACHE_LINE_SIZE */
-
 /*
  * Exclusive locking primitives.
  */
@@ -202,13 +151,14 @@ static int __smp_thread_id(void)
        }
        spin_lock(&__thread_id_map_mutex);
        for (i = 0; i < NR_THREADS; i++) {
-               if (__thread_id_map[i] == tid)
+               if (__thread_id_map[i] == tid) {
                        spin_unlock(&__thread_id_map_mutex);
                        return i;
+               }
        }
        spin_unlock(&__thread_id_map_mutex);
-       fprintf(stderr, "smp_thread_id: Rogue thread, id: %d(%#x)\n",
-                       (int)tid, (int)tid);
+       fprintf(stderr, "smp_thread_id: Rogue thread, id: %lu(%#lx)\n",
+                       (unsigned long) tid, (unsigned long) tid);
        exit(-1);
 }
 
@@ -257,8 +207,8 @@ static void *wait_thread(thread_id_t tid)
                        break;
        }
        if (i >= NR_THREADS){
-               fprintf(stderr, "wait_thread: bad tid = %d(%#x)\n",
-                               (int)tid, (int)tid);
+               fprintf(stderr, "wait_thread: bad tid = %lu(%#lx)\n",
+                               (unsigned long)tid, (unsigned long)tid);
                exit(-1);
        }
        if (pthread_join(tid, &vp) != 0) {
@@ -282,12 +232,6 @@ 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
@@ -337,107 +281,8 @@ long long get_microseconds(void)
                        per_thread(name, __i_p_t_i) = v; \
        } while (0)
 
-/*
- * CPU traversal primitives.
- */
-
-#ifndef NR_CPUS
-#define NR_CPUS 16
-#endif /* #ifndef NR_CPUS */
-
-#define for_each_possible_cpu(cpu) \
-       for (cpu = 0; cpu < NR_CPUS; cpu++)
-#define for_each_online_cpu(cpu) \
-       for (cpu = 0; cpu < NR_CPUS; cpu++)
-
-/*
- * Per-CPU variables.
- */
-
-#define DEFINE_PER_CPU(type, name) \
-       struct { \
-               __typeof__(type) v \
-                       __attribute__((__aligned__(CAA_CACHE_LINE_SIZE))); \
-       } __per_cpu_##name[NR_CPUS]
-#define DECLARE_PER_CPU(type, name) extern DEFINE_PER_CPU(type, name)
-
 DEFINE_PER_THREAD(int, smp_processor_id);
 
-#define per_cpu(name, thread) __per_cpu_##name[thread].v
-#define __get_cpu_var(name) per_cpu(name, smp_processor_id())
-
-#define init_per_cpu(name, v) \
-       do { \
-               int __i_p_c_i; \
-               for (__i_p_c_i = 0; __i_p_c_i < NR_CPUS; __i_p_c_i++) \
-                       per_cpu(name, __i_p_c_i) = v; \
-       } while (0)
-
-/*
- * CPU state checking (crowbarred).
- */
-
-#define idle_cpu(cpu) 0
-#define in_softirq() 1
-#define hardirq_count() 0
-#define PREEMPT_SHIFT   0
-#define SOFTIRQ_SHIFT   (PREEMPT_SHIFT + PREEMPT_BITS)
-#define HARDIRQ_SHIFT   (SOFTIRQ_SHIFT + SOFTIRQ_BITS)
-#define PREEMPT_BITS    8
-#define SOFTIRQ_BITS    8
-
-/*
- * CPU hotplug.
- */
-
-struct notifier_block {
-       int (*notifier_call)(struct notifier_block *, unsigned long, void *);
-       struct notifier_block *next;
-       int priority;
-};
-
-#define CPU_ONLINE             0x0002 /* CPU (unsigned)v is up */
-#define CPU_UP_PREPARE         0x0003 /* CPU (unsigned)v coming up */
-#define CPU_UP_CANCELED                0x0004 /* CPU (unsigned)v NOT coming up */
-#define CPU_DOWN_PREPARE       0x0005 /* CPU (unsigned)v going down */
-#define CPU_DOWN_FAILED                0x0006 /* CPU (unsigned)v NOT going down */
-#define CPU_DEAD               0x0007 /* CPU (unsigned)v dead */
-#define CPU_DYING              0x0008 /* CPU (unsigned)v not running any task,
-                                       * not handling interrupts, soon dead */
-#define CPU_POST_DEAD          0x0009 /* CPU (unsigned)v dead, cpu_hotplug
-                                       * lock is dropped */
-
-/* Used for CPU hotplug events occuring while tasks are frozen due to a suspend
- * operation in progress
- */
-#define CPU_TASKS_FROZEN       0x0010
-
-#define CPU_ONLINE_FROZEN      (CPU_ONLINE | CPU_TASKS_FROZEN)
-#define CPU_UP_PREPARE_FROZEN  (CPU_UP_PREPARE | CPU_TASKS_FROZEN)
-#define CPU_UP_CANCELED_FROZEN (CPU_UP_CANCELED | CPU_TASKS_FROZEN)
-#define CPU_DOWN_PREPARE_FROZEN        (CPU_DOWN_PREPARE | CPU_TASKS_FROZEN)
-#define CPU_DOWN_FAILED_FROZEN (CPU_DOWN_FAILED | CPU_TASKS_FROZEN)
-#define CPU_DEAD_FROZEN                (CPU_DEAD | CPU_TASKS_FROZEN)
-#define CPU_DYING_FROZEN       (CPU_DYING | CPU_TASKS_FROZEN)
-
-/* Hibernation and suspend events */
-#define PM_HIBERNATION_PREPARE 0x0001 /* Going to hibernate */
-#define PM_POST_HIBERNATION    0x0002 /* Hibernation finished */
-#define PM_SUSPEND_PREPARE     0x0003 /* Going to suspend the system */
-#define PM_POST_SUSPEND                0x0004 /* Suspend finished */
-#define PM_RESTORE_PREPARE     0x0005 /* Going to restore a saved image */
-#define PM_POST_RESTORE                0x0006 /* Restore failed */
-
-#define NOTIFY_DONE            0x0000          /* Don't care */
-#define NOTIFY_OK              0x0001          /* Suits me */
-#define NOTIFY_STOP_MASK       0x8000          /* Don't call further */
-#define NOTIFY_BAD             (NOTIFY_STOP_MASK|0x0002)
-                                               /* Bad/Veto action */
-/*
- * Clean way to return from the notifier and stop further calls.
- */
-#define NOTIFY_STOP            (NOTIFY_OK|NOTIFY_STOP_MASK)
-
 /*
  * Bug checks.
  */
This page took 0.025386 seconds and 4 git commands to generate.