[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