tests: use SPDX identifiers
[urcu.git] / tests / common / api.h
index 14033596885bce51b77df4e5c958eb7434a6428e..3008716606b73182438b4a6bcaac120beafeab50 100644 (file)
@@ -1,35 +1,19 @@
+// SPDX-FileCopyrightText: 2006 Paul E. McKenney, IBM.
+//
+// SPDX-License-Identifier: GPL-2.0-only
+
 #ifndef _INCLUDE_API_H
 #define _INCLUDE_API_H
 
-#define _GNU_SOURCE
-#include "config.h"
-
 /*
  * common.h: Common Linux kernel-isms.
  *
- * 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 of the License only due
- * to code included from the Linux kernel.
- *
- * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 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 <urcu/compiler.h>
 #include <urcu/arch.h>
-#include "cpuset.h"
 
 /*
  * Machine parameters.
 #define ____cacheline_internodealigned_in_smp \
        __attribute__((__aligned__(CAA_CACHE_LINE_SIZE)))
 
-/*
- * api_pthreads.h: API mapping to pthreads environment.
- *
- * 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; either version 2 of the License, or
- * (at your option) any later version.  However, please note that much
- * of the code in this file derives from the Linux kernel, and that such
- * code may not be available except under GPLv2.
- *
- * 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., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Copyright (c) 2006 Paul E. McKenney, IBM.
- */
 
 #include <stdio.h>
 #include <stdlib.h>
@@ -111,7 +74,7 @@ static void spin_unlock(spinlock_t *sp)
 
 typedef pthread_t thread_id_t;
 
-#define NR_THREADS 128
+#define NR_THREADS 4096
 
 #define __THREAD_ID_MAP_EMPTY ((thread_id_t) 0)
 #define __THREAD_ID_MAP_WAITING ((thread_id_t) 1)
@@ -169,7 +132,7 @@ static int smp_thread_id(void)
        id = pthread_getspecific(thread_id_key);
        if (id == NULL)
                return __smp_thread_id();
-       return (long)(id - 1);
+       return ((long) id - 1);
 }
 
 static thread_id_t create_thread(void *(*func)(void *), void *arg)
@@ -232,25 +195,26 @@ static void wait_all_threads(void)
        }
 }
 
+#ifdef HAVE_SCHED_SETAFFINITY
 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 */
 }
+#else
+
+static void run_on(int cpu __attribute__((unused)))
+{}
+#endif /* HAVE_SCHED_SETAFFINITY */
 
 /*
  * timekeeping -- very crude -- should use MONOTONIC...
  */
 
+static inline
 long long get_microseconds(void)
 {
        struct timeval tv;
@@ -268,7 +232,7 @@ long long get_microseconds(void)
        struct { \
                __typeof__(type) v \
                        __attribute__((__aligned__(CAA_CACHE_LINE_SIZE))); \
-       } __per_thread_##name[NR_THREADS];
+       } __per_thread_##name[NR_THREADS]
 #define DECLARE_PER_THREAD(type, name) extern DEFINE_PER_THREAD(type, name)
 
 #define per_thread(name, thread) __per_thread_##name[thread].v
This page took 0.025766 seconds and 4 git commands to generate.