tile: allocate membarrier system call number
[urcu.git] / urcu / arch / tile.h
index 8ef35da56c0a25e5ea679c10b0695e2bc8ad6706..2787ac75ab8ba8835290cacbfccc6b0c78978748 100644 (file)
@@ -2,9 +2,10 @@
 #define _URCU_ARCH_TILE_H
 
 /*
- * arch_tile.h: trivial definitions for the Tile architecture
+ * arch/tile.h: definitions for tile architecture
  *
- * Copyright (c) 2013 Simon Marchi <simon.marchi@polymtl.ca>
+ * Copyright (c) 2010 Paul E. McKenney, IBM Corporation.
+ * Copyright (c) 2009-2015 Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Lesser General Public
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
-#ifdef __tilegx__
-#include <urcu/arch/gcc.h>
-#else
-#error "URCU has only been tested on the TileGx architecture. For other Tile* architectures, please run the tests first and report the results to the maintainer so that proper support can be added."
+#include <urcu/compiler.h>
+#include <urcu/config.h>
+#include <urcu/syscall-compat.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <stdlib.h>
+#include <sys/time.h>
+
+typedef unsigned long long cycles_t;
+
+static inline cycles_t caa_get_cycles (void)
+{
+       cycles_t thetime;
+       struct timeval tv;
+
+       if (gettimeofday(&tv, NULL) != 0)
+               return 0;
+       thetime = ((cycles_t)tv.tv_sec) * 1000000ULL + ((cycles_t)tv.tv_usec);
+       return (cycles_t)thetime;
+}
+
+/*
+ * Define the membarrier system call number if not yet available in the
+ * system headers. tile implements asm-generic/unistd.h system call
+ * numbers.
+ */
+#ifndef __NR_membarrier
+#define __NR_membarrier                283
 #endif
 
+#ifdef __cplusplus
+}
+#endif
+
+#include <urcu/arch/generic.h>
+
 #endif /* _URCU_ARCH_TILE_H */
This page took 0.035052 seconds and 4 git commands to generate.