[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