[lttng-dev] [PATCH] liburcu: Support for NIOS2 architecture
Mathieu Desnoyers
mathieu.desnoyers at efficios.com
Tue Feb 9 13:35:09 EST 2016
----- On Feb 9, 2016, at 1:31 PM, Marek Vasut marex at denx.de wrote:
> On Tuesday, February 09, 2016 at 07:22:38 PM, Mathieu Desnoyers wrote:
>> ----- On Feb 9, 2016, at 11:55 AM, Marek Vasut marex at denx.de wrote:
>> > Add support for the Altera NIOS2 CPU archirecture. The atomic operations
>> > are handled by the GCC. The memory barriers on this systems are entirely
>> > trivial too, since the CPU does not support SMP at all.
>> >
>> > Signed-off-by: Marek Vasut <marex at denx.de>
>> > ---
>> > LICENSE | 1 +
>> > README.md | 1 +
>> > configure.ac | 1 +
>> > urcu/arch/nios2.h | 40 ++++++++++++++++++++++++++++++++++++++++
>> > urcu/uatomic/nios2.h | 32 ++++++++++++++++++++++++++++++++
>> > 5 files changed, 75 insertions(+)
>> > create mode 100644 urcu/arch/nios2.h
>> > create mode 100644 urcu/uatomic/nios2.h
>> >
>> > diff --git a/LICENSE b/LICENSE
>> > index 3147094..a06fdcc 100644
>> > --- a/LICENSE
>> > +++ b/LICENSE
>> > @@ -45,6 +45,7 @@ compiler.h
>> > arch/s390.h
>> > uatomic/alpha.h
>> > uatomic/mips.h
>> > +uatomic/nios2.h
>> > uatomic/s390.h
>> > system.h
>> >
>> > diff --git a/README.md b/README.md
>> > index f6b290f..6fe9c1e 100644
>> > --- a/README.md
>> > +++ b/README.md
>> >
>> > @@ -43,6 +43,7 @@ Currently, the following architectures are supported:
>> > - S390, S390x
>> > - ARM 32/64
>> > - MIPS
>> >
>> > + - NIOS2
>> >
>> > - Alpha
>> > - ia64
>> > - Sparcv9 32/64
>> >
>> > diff --git a/configure.ac b/configure.ac
>> > index 39a7777..71a7d71 100644
>> > --- a/configure.ac
>> > +++ b/configure.ac
>> > @@ -124,6 +124,7 @@ AS_CASE([$host_cpu],
>> >
>> > [arm*], [ARCHTYPE="arm"],
>> > [aarch64], [ARCHTYPE="aarch64"],
>> > [mips*], [ARCHTYPE="mips"],
>> >
>> > + [nios2*], [ARCHTYPE="nios2"],
>> >
>> > [tile*], [ARCHTYPE="tile"],
>> > [hppa*], [ARCHTYPE="hppa"],
>> > [ARCHTYPE="unknown"]
>> >
>> > diff --git a/urcu/arch/nios2.h b/urcu/arch/nios2.h
>> > new file mode 100644
>> > index 0000000..030d1bc
>> > --- /dev/null
>> > +++ b/urcu/arch/nios2.h
>> > @@ -0,0 +1,40 @@
>> > +#ifndef _URCU_ARCH_NIOS2_H
>> > +#define _URCU_ARCH_NIOS2_H
>> > +
>> > +/*
>> > + * arch_mips.h: trivial definitions for the NIOS2 architecture.
>>
>> mips -> nops2
>
> Oops :-) Now it's clear where I started. Fixed, nice catch.
of course, I meant "nios2" here (not nops2). It's a nice typo though ;)
Thanks,
Mathieu
>
>> > + *
>> > + * Copyright (c) 2016 Marek Vasut <marex at denx.de>
>> > + *
>> > + * 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 <urcu/compiler.h>
>> > +#include <urcu/config.h>
>> > +#include <urcu/syscall-compat.h>
>> > +
>> > +#ifdef __cplusplus
>> > +extern "C" {
>> > +#endif
>> > +
>> > +#define cmm_mb() __asm__ __volatile__ ("":::"memory")
>>
>> please change for:
>>
>> #define cmm_mb() cmm_barrier()
>>
>> to re-use the cmm_barrier macro from urcu/compiler.h
>
> Nice!
>
>> The rest looks good, can you prepare an updated patch ?
>
> Done, thanks!
--
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com
More information about the lttng-dev
mailing list