From: Jason Wessel Date: Mon, 28 Feb 2011 16:33:19 +0000 (-0500) Subject: Make armv7l headers generic for the arm architecture X-Git-Tag: v0.5.3~8 X-Git-Url: https://git.liburcu.org/?p=urcu.git;a=commitdiff_plain;h=93af08d904c71a00d1ad716cb3ffe6ad342ba97c Make armv7l headers generic for the arm architecture This commit simply moves the files named *armv7l* to *arm* Signed-off-by: Jason Wessel Signed-off-by: Mathieu Desnoyers --- diff --git a/configure.ac b/configure.ac index 02780e7..69ce396 100644 --- a/configure.ac +++ b/configure.ac @@ -52,7 +52,7 @@ case $host_cpu in sparc64) ARCHTYPE="sparc64" ;; alpha*) ARCHTYPE="alpha" ;; ia64) ARCHTYPE="gcc" ;; - armv7l) ARCHTYPE="armv7l" ;; + arm*) ARCHTYPE="arm" ;; *) ARCHTYPE="unknown";; esac diff --git a/urcu/arch_arm.h b/urcu/arch_arm.h new file mode 100644 index 0000000..125066b --- /dev/null +++ b/urcu/arch_arm.h @@ -0,0 +1,56 @@ +#ifndef _URCU_ARCH_ARMV7L_H +#define _URCU_ARCH_ARMV7L_H + +/* + * arch_armv7l.h: trivial definitions for the ARMv7 architecture. + * + * Copyright (c) 2010 Paul E. McKenney, IBM Corporation. + * Copyright (c) 2009 Mathieu Desnoyers + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#define cmm_mb() asm volatile("dmb":::"memory") + +#include +#include + +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; +} + +#ifdef __cplusplus +} +#endif + +#include + +#endif /* _URCU_ARCH_ARMV7L_H */ diff --git a/urcu/arch_armv7l.h b/urcu/arch_armv7l.h deleted file mode 100644 index 125066b..0000000 --- a/urcu/arch_armv7l.h +++ /dev/null @@ -1,56 +0,0 @@ -#ifndef _URCU_ARCH_ARMV7L_H -#define _URCU_ARCH_ARMV7L_H - -/* - * arch_armv7l.h: trivial definitions for the ARMv7 architecture. - * - * Copyright (c) 2010 Paul E. McKenney, IBM Corporation. - * Copyright (c) 2009 Mathieu Desnoyers - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library 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 - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA - */ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#define cmm_mb() asm volatile("dmb":::"memory") - -#include -#include - -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; -} - -#ifdef __cplusplus -} -#endif - -#include - -#endif /* _URCU_ARCH_ARMV7L_H */ diff --git a/urcu/uatomic_arch_arm.h b/urcu/uatomic_arch_arm.h new file mode 100644 index 0000000..b68c818 --- /dev/null +++ b/urcu/uatomic_arch_arm.h @@ -0,0 +1,50 @@ +#ifndef _URCU_ARCH_UATOMIC_ARMV7L_H +#define _URCU_ARCH_UATOMIC_ARMV7L_H + +/* + * Atomics for ARMv7. This approach is usable on kernels back to 2.6.15. + * + * Copyright (c) 1991-1994 by Xerox Corporation. All rights reserved. + * Copyright (c) 1996-1999 by Silicon Graphics. All rights reserved. + * Copyright (c) 1999-2004 Hewlett-Packard Development Company, L.P. + * Copyright (c) 2009 Mathieu Desnoyers + * Copyright (c) 2010 Paul E. McKenney, IBM Corporation + * (Adapted from uatomic_arch_ppc.h) + * + * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED + * OR IMPLIED. ANY USE IS AT YOUR OWN RISK. + * + * Permission is hereby granted to use or copy this program + * for any purpose, provided the above notices are retained on all copies. + * Permission to modify the code and to distribute modified code is granted, + * provided the above notices are retained, and a notice that the code was + * modified is included with the above copyright notice. + * + * Code inspired from libuatomic_ops-1.2, inherited in part from the + * Boehm-Demers-Weiser conservative garbage collector. + */ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* xchg */ +#define uatomic_xchg(addr, v) __sync_lock_test_and_set(addr, v) + +/* cmpxchg */ +#define uatomic_cmpxchg(addr, old, _new) \ + __sync_val_compare_and_swap(addr, old, _new) + +/* uatomic_add_return */ +#define uatomic_add_return(addr, v) __sync_add_and_fetch(addr, v) + +#ifdef __cplusplus +} +#endif + +#include + +#endif /* _URCU_ARCH_UATOMIC_ARMV7L_H */ diff --git a/urcu/uatomic_arch_armv7l.h b/urcu/uatomic_arch_armv7l.h deleted file mode 100644 index b68c818..0000000 --- a/urcu/uatomic_arch_armv7l.h +++ /dev/null @@ -1,50 +0,0 @@ -#ifndef _URCU_ARCH_UATOMIC_ARMV7L_H -#define _URCU_ARCH_UATOMIC_ARMV7L_H - -/* - * Atomics for ARMv7. This approach is usable on kernels back to 2.6.15. - * - * Copyright (c) 1991-1994 by Xerox Corporation. All rights reserved. - * Copyright (c) 1996-1999 by Silicon Graphics. All rights reserved. - * Copyright (c) 1999-2004 Hewlett-Packard Development Company, L.P. - * Copyright (c) 2009 Mathieu Desnoyers - * Copyright (c) 2010 Paul E. McKenney, IBM Corporation - * (Adapted from uatomic_arch_ppc.h) - * - * THIS MATERIAL IS PROVIDED AS IS, WITH ABSOLUTELY NO WARRANTY EXPRESSED - * OR IMPLIED. ANY USE IS AT YOUR OWN RISK. - * - * Permission is hereby granted to use or copy this program - * for any purpose, provided the above notices are retained on all copies. - * Permission to modify the code and to distribute modified code is granted, - * provided the above notices are retained, and a notice that the code was - * modified is included with the above copyright notice. - * - * Code inspired from libuatomic_ops-1.2, inherited in part from the - * Boehm-Demers-Weiser conservative garbage collector. - */ - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -/* xchg */ -#define uatomic_xchg(addr, v) __sync_lock_test_and_set(addr, v) - -/* cmpxchg */ -#define uatomic_cmpxchg(addr, old, _new) \ - __sync_val_compare_and_swap(addr, old, _new) - -/* uatomic_add_return */ -#define uatomic_add_return(addr, v) __sync_add_and_fetch(addr, v) - -#ifdef __cplusplus -} -#endif - -#include - -#endif /* _URCU_ARCH_UATOMIC_ARMV7L_H */