[rtems commit] Using the generic atomic ops to implement UP mode atomic for all architectures . SMP atomic port will be later.

Joel Sherrill joel.sherrill at OARcorp.com
Wed May 1 15:00:30 UTC 2013


On 5/1/2013 9:44 AM, Ralf Corsepius wrote:
> On 05/01/2013 04:23 PM, Gedare Bloom wrote:
>> Module:    rtems
>> Branch:    master
>> Commit:    9b605b28b497f398682a8ffd673f6860340957f8
>> Changeset: http://git.rtems.org/rtems/commit/?id=9b605b28b497f398682a8ffd673f6860340957f8
>>
>> Author:    WeiY <wei.a.yang at gmail.com>
>> Date:      Wed Apr 24 00:34:16 2013 +0800
>>
>> Using the generic atomic ops to implement UP mode atomic for all architectures. SMP atomic port will be later.
>> +++ b/cpukit/score/cpu/arm/rtems/score/cpuatomic.h
>> @@ -0,0 +1,40 @@
>> +/**
>> + * @file  rtems/score/cpuatomic.h
>> + *
>> + * This include file implements the atomic operations for arm and defines
>> + * atomic data types which are used by the atomic operations API file. This
>> + * file should use fixed name cpuatomic.h and should be included in atomic
>> + * operations API file atomic.h. If the architecture works at the UP mode it
>> + * will use a generic atomic ops using disable/enable-IRQ simulated. If the
>> + * the architecture works at SMP mode, most of the parts of implementations
>> + * are imported from FreeBSD kernel.
>> + */
>> +
>> +#ifndef _RTEMS_SCORE_ATOMIC_CPU_H
>> +#define _RTEMS_SCORE_ATOMIC_CPU_H
>> +
>> +#include <rtems/score/genericcpuatomic.h>
>> +
>> +#ifdef __cplusplus
>> +extern "C" {
>> +#endif
>> +
>> +/**
>> + * @defgroup RTEMS atomic implementation
>> + *
>> + */
>> +
>> +/**@{*/
>> +
>> +#if !defined(RTEMS_SMP)
>> +#include <rtems/score/genericatomicops.h>
>> +#else
>> +#endif
>> +
>> +#ifdef __cplusplus
>> +}
>> +#endif
>> +
>> +/**@}*/
>> +#endif
>> +/*  end of include file */
> Would somebody please explain the code above?
>
> The #ifdef __cplusplus as well as the #if !defined(RTEMS_SMP)
> should be completely superflous. If not, they'd indicate bugs elsewhere.
AFAIK The !defined(RTEMS_SMP) just says use the generic uniprocessor
implementation when not SMP. What's the specific issue?

And I also don't see what the issue is with the C++ check. A quick
grep of score shows 122 files or 333 .h files have the C++ guard.
Do you have a rationale for when one should be present or not?
> Ralf
>
>
>
>
>
> _______________________________________________
> rtems-devel mailing list
> rtems-devel at rtems.org
> http://www.rtems.org/mailman/listinfo/rtems-devel


-- 
Joel Sherrill, Ph.D.             Director of Research & Development
joel.sherrill at OARcorp.com        On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
Support Available                (256) 722-9985




More information about the devel mailing list