[PATCH 1/5] New atomic API definition based on C11 atomic
Deng Hengyi
wei.a.yang at gmail.com
Mon Jul 8 15:12:53 UTC 2013
在 2013-7-8,上午12:19,Sebastian Huber <sebastian.huber at embedded-brains.de> 写道:
> Hello Wei,
>
> thanks for your patch. It looks good. I have only few issues which should be easy to fix.
>
> On 07/07/13 17:52, WeiY wrote:
>> Signed-off-by: WeiY<wei.a.yang at gmail.com>
>
> What did you sign off? RTEMS has currently no procedure for this as on Linux and various other projects.
>
OK, i will delete sign off
>> ---
>> cpukit/score/include/rtems/score/atomic.h | 465 ++++++++++++++++-------------
>> 1 file changed, 251 insertions(+), 214 deletions(-)
>>
>> diff --git a/cpukit/score/include/rtems/score/atomic.h b/cpukit/score/include/rtems/score/atomic.h
>> index 3b62cb1..3378564 100644
>> --- a/cpukit/score/include/rtems/score/atomic.h
>> +++ b/cpukit/score/include/rtems/score/atomic.h
>> @@ -8,7 +8,7 @@
>> */
>> /*
>> - * COPYRIGHT (c) 2012 Deng Hengyi.
>> + * COPYRIGHT (c) 2013 Deng Hengyi.
>
> You can use 2012-2013.
>
>> *
>> * The license and distribution terms for this file may be
>> * found in the file LICENSE in this distribution or at
>> @@ -32,241 +32,278 @@ extern "C" {
>> /**@{*/
>> /**
>> - * @brief the enumeration Atomic_Memory_barrier specifies the detailed regular
>> - * memory synchronization operations used in the atomic operation API
>> - * definitions.
>> + * @brief Atomically load an atomic type value from object @a object with
>> + * a type of Atomic_Order @a order. The @a order shall not be
>> + * ATOMIC_ORDER_RELEASE.
>
> In RTEMS we use now @param for parameter documentation.
>
> http://wiki.rtems.org/wiki/index.php/Doxygen_Recommendations
>
OK, i will modify them.
>> */
>> -typedef enum {
>> - /** no operation orders memory. */
>> - ATOMIC_RELAXED_BARRIER,
>> - /** a load operation performs an acquire operation on the affected memory
>> - * location. This flag guarantees that the effects of load operation are
>> - * completed before the effects of any later data accesses.
>> - */
>> - ATOMIC_ACQUIRE_BARRIER,
>> - /** a store operation performs a release operation on the affected memory
>> - * location. This flag guarantee that all effects of all previous data
>> - * accesses are completed before the store operation takes place.
>> - */
>> - ATOMIC_RELEASE_BARRIER
>> -} Atomic_Memory_barrier;
>> +RTEMS_INLINE_ROUTINE uint_fast32_t Atomic_Load_uint(
>> + volatile Atomic_Uint *object,
>> + Atomic_Order order
>> +)
>> +{
>> + return _CPU_Atomic_Load_uint(object, order);
>> +}
>
> Please add an empty line between function definitions. Add spaces in the function call, e.g.
>
> _CPU_Atomic_Load_uint( object, order );
>
> In the score the naming convention is
>
> _Package_name_Operation_name()
>
> Here _CPU_atomic is the package and Load_uint is the operation, thus we have
>
> _CPU_atomic_Load_uint()
>
> All score functions must have an '_' underscore as the first character, e.g. _Atomic_Load_uint() instead of Atomic_Load_uint()
OK
>
>> +RTEMS_INLINE_ROUTINE uintptr_t Atomic_Load_ptr(
>> + volatile Atomic_Pointer *object,
>> + Atomic_Order order
>> +)
>> +{
>> + return _CPU_Atomic_Load_ptr(object, order);
>> +}
> [...]
>
> The _Atomic_Fetch_op_flag() functions make no sense (e.g. Atomic_Fetch_add_flag()). Please remove them.
>
OK
> --
> Sebastian Huber, embedded brains GmbH
>
> Address : Dornierstr. 4, D-82178 Puchheim, Germany
> Phone : +49 89 189 47 41-16
> Fax : +49 89 189 47 41-09
> E-Mail : sebastian.huber at embedded-brains.de
> PGP : Public key available on request.
>
> Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
>
> _______________________________________________
> rtems-devel mailing list
> rtems-devel at rtems.org
> http://www.rtems.org/mailman/listinfo/rtems-devel
More information about the devel
mailing list