Project

General

Profile

User story #126

Updated by Ivan Herrero almost 10 years ago

Implement requirement MARTe-EX-F-1.1.12 based on the original MARTe implementation

Note: In order to support fast multi-threading applications it is important for framework developers to guarantee simple atomic operations without having to require to operating system semaphores.

Note: Add 64 bit native support

Note: Use _intrinsic_ in Visual Studio C++ compiler

h1. Source code files modified

* Source/Core/L0Portability/Architecture/x86_cl/AtomicA.h
* Source/Core/L0Portability/Atomic.cpp
* Source/Core/L0Portability/Atomic.h

h1. Architecture & design review

*Date of the review:* 05/06/2015

*Person who did the review:* Andre' Neto

*Version of architecture & design document:* N/A. This is a support class and does not require formal design in UML.

*Result of review:* N/A

*List of non-conformities:* N/A

h1. Code and documentation review

*Date of the review:* 09/06/2015

*Person who did the review:* Ivan Herrero

*Result of review:* FAIL

*List of non-conformities:*

Manual review for Source/Core/L0Portability/Architecture/x86_cl/AtomicA.h
file @brief => It's class oriented, instead functions oriented (it's a template problem that needs to be fixed)
file @details => It's class oriented, instead functions oriented (it's a template problem that needs to be fixed)
method @pre => Wrong syntax for inout parameters, should be "[in,out]" instead of "[in][out]"

Manual review for
Source/Core/L0Portability/Atomic.cpp
file @date => Wrong format
file
@brief => Says "Header file" instead of "Source file" (copy text from last marte_cpp_code_templates.xml version) (it's a template problem that needs to be fixed)
file @details => Says "header" and "declaration" instead of "source" and "definition" (copy text from last marte_cpp_code_templates.xml version) (it's a template problem that needs to be fixed)

Manual review for Source/Core/L0Portability/Atomic.h
file @date => Wrong format
#include "GeneralDefinitions.h" => Should be on "Project header includes" section
class @detail => Tag wrong, must be @details
class @details
=> Should not explain implementation details (AtomicA.h), better explain it on "Inline method definitions" section?
Comment block for method Increment(int32*) => Ending "*/" should be on its own line
method @pre => Wrong syntax for inout parameters, should be "[in,out]" instead of "[in][out]"
@param tag for method methods Add(int32*, int32) and Sub(int32*, int32) => Lacks "[in]"
method parameter attribute "volatile" for methods => position not consistent

Manual review for Source/Core/L0Portability/Architecture/x86_gcc/AtomicA.h
file not found


*Note:* Automatic review with cppcheck OK

Back