From 1387bda01b089d8e8df06339d9c15d53b3de6725 Mon Sep 17 00:00:00 2001 From: Patrick Benavoli Date: Wed, 31 Aug 2011 11:23:24 +0200 Subject: Min/max value computation; Tuning lock handling BZ: 7466 - Min/max values are now correctly computed. They concern integer and fixed point parameters - tuning mode lock issue solved: created an AutoLock class for safe lock handling - added configuration files for a demo on Ubuntu environment - had AMIXER subsystem plugin compliant for derivation - LPE library: add carriage return on logs - removed obsolete files - some cosmetics Change-Id: Ife7a4799fd48dd4a1ca25dae666c4e453815881e Orig-Change-Id: I72fc5c1ff6abf638b43266a75bc00e21ad412349 Signed-off-by: Patrick Benavoli Reviewed-on: http://android.intel.com:8080/16880 Reviewed-by: Mahe, Erwan Tested-by: Barthes, FabienX Reviewed-by: buildbot Tested-by: buildbot --- parameter/Android.mk | 4 +- parameter/AutoLock.cpp | 41 +++++++++++++++ parameter/AutoLock.h | 44 ++++++++++++++++ parameter/Component.cpp | 2 +- parameter/Component.h | 4 +- parameter/Element.cpp | 2 +- parameter/FixedPointParameterType.cpp | 31 ++++++++++-- parameter/FixedPointParameterType.h | 2 + parameter/IntegerParameterType.cpp | 15 ++++-- parameter/ParameterMgr.cpp | 81 ++++++++++++++---------------- parameter/ParameterType.cpp | 37 +++++--------- parameter/ParameterType.h | 6 +-- parameter/SelectionCriterionDefinition.cpp | 40 --------------- parameter/SelectionCriterionDefinition.h | 43 ---------------- parameter/SystemClass.cpp | 2 + parameter/buildlog.txt | 1 + parameter/parameter | 4 +- remote-processor/Message.cpp | 2 +- 18 files changed, 192 insertions(+), 169 deletions(-) create mode 100644 parameter/AutoLock.cpp create mode 100644 parameter/AutoLock.h delete mode 100644 parameter/SelectionCriterionDefinition.cpp delete mode 100644 parameter/SelectionCriterionDefinition.h create mode 100644 parameter/buildlog.txt diff --git a/parameter/Android.mk b/parameter/Android.mk index 3e430ce..86bdb35 100644 --- a/parameter/Android.mk +++ b/parameter/Android.mk @@ -24,7 +24,6 @@ LOCAL_SRC_FILES:= \ SelectionCriteriaDefinition.cpp \ SelectionCriterionType.cpp \ ElementLibrary.cpp \ - SelectionCriterionDefinition.cpp \ SubsystemElementBuilder.cpp \ SubsystemLibrary.cpp \ SelectionCriterion.cpp \ @@ -83,7 +82,8 @@ LOCAL_SRC_FILES:= \ MappingContext.cpp \ SubsystemObject.cpp \ SubsystemObjectCreator.cpp \ - BaseParameter.cpp + BaseParameter.cpp \ + AutoLock.cpp LOCAL_MODULE:= libparameter diff --git a/parameter/AutoLock.cpp b/parameter/AutoLock.cpp new file mode 100644 index 0000000..d9f4f34 --- /dev/null +++ b/parameter/AutoLock.cpp @@ -0,0 +1,41 @@ +/* + * + * + * INTEL CONFIDENTIAL + * Copyright © 2011 Intel + * Corporation All Rights Reserved. + * + * The source code contained or described herein and all documents related to + * the source code ("Material") are owned by Intel Corporation or its suppliers + * or licensors. Title to the Material remains with Intel Corporation or its + * suppliers and licensors. The Material contains trade secrets and proprietary + * and confidential information of Intel or its suppliers and licensors. The + * Material is protected by worldwide copyright and trade secret laws and + * treaty provisions. No part of the Material may be used, copied, reproduced, + * modified, published, uploaded, posted, transmitted, distributed, or + * disclosed in any way without Intel’s prior express written permission. + * + * No license under any patent, copyright, trade secret or other intellectual + * property right is granted to or conferred upon you by disclosure or delivery + * of the Materials, either expressly, by implication, inducement, estoppel or + * otherwise. Any license under such intellectual property rights must be + * express and approved by Intel in writing. + * + * AUTHOR: Patrick Benavoli (patrickx.benavoli@intel.com) + * CREATED: 2011-06-01 + * UPDATED: 2011-07-27 + * + * + * + */ +#include "AutoLock.h" + +CAutoLock::CAutoLock(pthread_mutex_t* pMutex) : _pMutex(pMutex) +{ + pthread_mutex_lock(_pMutex); +} + +CAutoLock::~CAutoLock() +{ + pthread_mutex_unlock(_pMutex); +} diff --git a/parameter/AutoLock.h b/parameter/AutoLock.h new file mode 100644 index 0000000..4ff0ef4 --- /dev/null +++ b/parameter/AutoLock.h @@ -0,0 +1,44 @@ +/* + * + * + * INTEL CONFIDENTIAL + * Copyright © 2011 Intel + * Corporation All Rights Reserved. + * + * The source code contained or described herein and all documents related to + * the source code ("Material") are owned by Intel Corporation or its suppliers + * or licensors. Title to the Material remains with Intel Corporation or its + * suppliers and licensors. The Material contains trade secrets and proprietary + * and confidential information of Intel or its suppliers and licensors. The + * Material is protected by worldwide copyright and trade secret laws and + * treaty provisions. No part of the Material may be used, copied, reproduced, + * modified, published, uploaded, posted, transmitted, distributed, or + * disclosed in any way without Intel’s prior express written permission. + * + * No license under any patent, copyright, trade secret or other intellectual + * property right is granted to or conferred upon you by disclosure or delivery + * of the Materials, either expressly, by implication, inducement, estoppel or + * otherwise. Any license under such intellectual property rights must be + * express and approved by Intel in writing. + * + * AUTHOR: Patrick Benavoli (patrickx.benavoli@intel.com) + * CREATED: 2011-06-01 + * UPDATED: 2011-07-27 + * + * + * + */ +#pragma once + +#include + +class CAutoLock +{ +public: + CAutoLock(pthread_mutex_t* pMutex); + ~CAutoLock(); + +private: + pthread_mutex_t* _pMutex; +}; + diff --git a/parameter/Component.cpp b/parameter/Component.cpp index 66c9893..318c2ec 100644 --- a/parameter/Component.cpp +++ b/parameter/Component.cpp @@ -32,7 +32,7 @@ #include "ComponentLibrary.h" #include "Mapper.h" -#define base CParameterBlock +#define base CInstanceConfigurableElement CComponent::CComponent(const string& strName, const CTypeElement* pTypeElement) : base(strName, pTypeElement) { diff --git a/parameter/Component.h b/parameter/Component.h index d43e6e8..e868f62 100644 --- a/parameter/Component.h +++ b/parameter/Component.h @@ -30,9 +30,9 @@ */ #pragma once -#include "ParameterBlock.h" +#include "InstanceConfigurableElement.h" -class CComponent : public CParameterBlock +class CComponent : public CInstanceConfigurableElement { public: CComponent(const string& strName, const CTypeElement* pTypeElement); diff --git a/parameter/Element.cpp b/parameter/Element.cpp index 915bc65..50c0774 100644 --- a/parameter/Element.cpp +++ b/parameter/Element.cpp @@ -689,7 +689,7 @@ void CElement::appendTitle(string& strTo, const string& strTitle) while (uiLength--) { - strTo += "─"; + strTo += "="; } strTo += "\n"; } diff --git a/parameter/FixedPointParameterType.cpp b/parameter/FixedPointParameterType.cpp index fb986c5..5b90f13 100644 --- a/parameter/FixedPointParameterType.cpp +++ b/parameter/FixedPointParameterType.cpp @@ -130,7 +130,7 @@ bool CFixedPointParameterType::asInteger(const string& strValue, uint32_t& uiVal if (bValueProvidedAsHexa) { - if (!isEncodable(iData)) { + if (!isEncodable(iData, getUtilSizeInBits())) { // Illegal value provided parameterAccessContext.setError(getOutOfRangeError(strValue, parameterAccessContext.valueSpaceIsRaw(), true)); @@ -149,8 +149,9 @@ bool CFixedPointParameterType::asInteger(const string& strValue, uint32_t& uiVal // Do the conversion iData = (int32_t)(dData * (1UL << _uiFractional) + 0.5F - (double)(dData < 0)); } + // Check integrity - if (!isConsistent(iData, true)) { + if (!isConsistent(iData)) { // Illegal value provided parameterAccessContext.setError(getOutOfRangeError(strValue, parameterAccessContext.valueSpaceIsRaw(), bValueProvidedAsHexa)); @@ -168,7 +169,7 @@ void CFixedPointParameterType::asString(const uint32_t& uiValue, string& strValu int32_t iData = uiValue; // Check consistency - assert(isEncodable(iData)); + assert(isEncodable(iData, getUtilSizeInBits())); // Sign extend signExtend(iData); @@ -207,8 +208,8 @@ uint32_t CFixedPointParameterType::getUtilSizeInBits() const string CFixedPointParameterType::getOutOfRangeError(const string& strValue, bool bRawValueSpace, bool bHexaValue) const { // Min/Max computation - int32_t iMin = ((int32_t)1 << 31) >> (32 - getUtilSizeInBits()); - int32_t iMax = -iMin - 1; + int32_t iMax = (1L << (getUtilSizeInBits() - 1)) - 1; + int32_t iMin = -iMax - 1; ostringstream strStream; @@ -223,7 +224,9 @@ string CFixedPointParameterType::getOutOfRangeError(const string& strValue, bool if (bHexaValue) { + // Format Min strStream << "0x" << hex << uppercase << setw(getSize()*2) << setfill('0') << makeEncodable(iMin); + // Format Max strStream << ", 0x" << hex << uppercase << setw(getSize()*2) << setfill('0') << makeEncodable(iMax); } else { @@ -237,3 +240,21 @@ string CFixedPointParameterType::getOutOfRangeError(const string& strValue, bool return strStream.str(); } + +// Check data is consistent with available range, with respect to its sign +bool CFixedPointParameterType::isConsistent(uint32_t uiData) const +{ + uint32_t uiShift = 32 - getUtilSizeInBits(); + + if (uiShift) { + + // Negative value? + bool bIsValueExpectedNegative = (uiData & (1 << (uiShift - 1))) != 0; + + // Check high bits are clean + return bIsValueExpectedNegative ? !(~uiData >> uiShift) : !(uiData >> uiShift); + } + + return true; +} + diff --git a/parameter/FixedPointParameterType.h b/parameter/FixedPointParameterType.h index 78b0b7e..d4e13d4 100644 --- a/parameter/FixedPointParameterType.h +++ b/parameter/FixedPointParameterType.h @@ -58,6 +58,8 @@ private: uint32_t getUtilSizeInBits() const; // Out of range error string getOutOfRangeError(const string& strValue, bool bRawValueSpace, bool bHexaValue) const; + // Check data is consistent with available range, with respect to its sign + bool isConsistent(uint32_t uiData) const; // Integral part in Q notation uint32_t _uiIntegral; diff --git a/parameter/IntegerParameterType.cpp b/parameter/IntegerParameterType.cpp index 1f20c93..f3e447e 100644 --- a/parameter/IntegerParameterType.cpp +++ b/parameter/IntegerParameterType.cpp @@ -74,21 +74,30 @@ bool CIntegerParameterType::fromXml(const CXmlElement& xmlElement, CXmlSerializi // Size setSize(xmlElement.getAttributeInteger("Size") / 8); + // Size in bits + uint32_t uiUtilSizeInBits = getSize() << 3; + // Min / Max if (_bSigned) { + + // Signed means we have one less util bit + uiUtilSizeInBits--; + if (xmlElement.hasAttribute("Min")) { _uiMin = (uint32_t)xmlElement.getAttributeSignedInteger("Min"); } else { - _uiMin = 1UL << 31; + _uiMin = 1UL << uiUtilSizeInBits; + + signExtend((int32_t&)_uiMin); } if (xmlElement.hasAttribute("Max")) { _uiMax = (uint32_t)xmlElement.getAttributeSignedInteger("Max"); } else { - _uiMax = (1UL << 31) - 1; + _uiMax = (1UL << uiUtilSizeInBits) - 1; } } else { if (xmlElement.hasAttribute("Min")) { @@ -103,7 +112,7 @@ bool CIntegerParameterType::fromXml(const CXmlElement& xmlElement, CXmlSerializi _uiMax = xmlElement.getAttributeInteger("Max"); } else { - _uiMax = (uint32_t)-1; + _uiMax = (uint32_t)((1UL << uiUtilSizeInBits) - 1); } } diff --git a/parameter/ParameterMgr.cpp b/parameter/ParameterMgr.cpp index b27a1b5..87f6662 100644 --- a/parameter/ParameterMgr.cpp +++ b/parameter/ParameterMgr.cpp @@ -39,7 +39,6 @@ #include "KindElementBuilderTemplate.h" #include "ElementBuilderTemplate.h" #include "SelectionCriterionType.h" -#include "SelectionCriterionDefinition.h" #include "SubsystemElementBuilder.h" #include "SelectionCriteria.h" #include "ComponentType.h" @@ -71,6 +70,7 @@ #include "SelectionCriterionRule.h" #include "SimulatedBackSynchronizer.h" #include "HardwareBackSynchronizer.h" +#include "AutoLock.h" #include #include #include @@ -120,7 +120,7 @@ const CParameterMgr::SRemoteCommandParserItem CParameterMgr::gaRemoteCommandPars { "getAutoSync", &CParameterMgr::getAutoSyncCommmandProcess, 0, "", "Show Auto Sync state" }, { "sync", &CParameterMgr::syncCommmandProcess, 0, "", "Synchronize current settings to hardware while in Tuning Mode and Auto Sync off" }, /// Criteria - { "listCriteria", &CParameterMgr::listCriteriaCommmandProcess, 0, "", "List available selection criteria" }, + { "listCriteria", &CParameterMgr::listCriteriaCommmandProcess, 0, "", "List selection criteria" }, /// Domains { "listDomains", &CParameterMgr::listDomainsCommmandProcess, 0, "", "List configurable domains" }, { "createDomain", &CParameterMgr::createDomainCommmandProcess, 1, "", "Create new configurable domain" }, @@ -143,9 +143,9 @@ const CParameterMgr::SRemoteCommandParserItem CParameterMgr::gaRemoteCommandPars { "dumpElement", &CParameterMgr::dumpElementCommmandProcess, 1, "", "Dump structure and content of element at given path" }, { "getElementSize", &CParameterMgr::getElementSizeCommmandProcess, 1, "", "Show size of element at given path" }, { "showProperties", &CParameterMgr::showPropertiesCommmandProcess, 1, "", "Show properties of element at given path" }, - { "getParameter", &CParameterMgr::getParameterCommmandProcess, 1, "", "Get value for parameter at given path" }, + { "getParameter", &CParameterMgr::getParameterCommmandProcess, 1, "", "Get value for parameter at given path" }, { "setParameter", &CParameterMgr::setParameterCommmandProcess, 2, " ", "Set value for parameter at given path" }, - { "listBelongingDomains", &CParameterMgr::listBelongingDomainsCommmandProcess, 1, "", "List domain(s) element at given path is contained in" }, + { "listBelongingDomains", &CParameterMgr::listBelongingDomainsCommmandProcess, 1, "", "List domain(s) element at given path belongs to" }, { "listAssociatedDomains", &CParameterMgr::listAssociatedDomainsCommmandProcess, 1, "", "List domain(s) element at given path is associated to" }, /// Browse { "listAssociatedElements", &CParameterMgr::listAssociatedElementsCommmandProcess, 0, "", "List element sub-trees associated to at least one configurable domain" }, @@ -273,16 +273,41 @@ bool CParameterMgr::load(string& strError) return false; } - // All is loaded, we're ready to observe selection criteria events - getSelectionCriteria()->setObserver(this); + // Back synchronization for areas in parameter blackboard not covered by any domain + CBackSynchronizer* pBackSynchronizer = createBackSynchronizer(strError); + + log("Main blackboard back synchronization"); + + // Back-synchronize + if (!pBackSynchronizer->sync()) { + // Get rid of back synchronizer + delete pBackSynchronizer; - // Load and start Remote processor server if appropriate - if (!handleRemoteProcessingInterface(strError)) { + strError = "Main blackboard back synchronization failed: " + strError; return false; } + // Get rif of back synchronizer + delete pBackSynchronizer; - return true; + // We're done loading the settings and back synchronizing + CConfigurableDomains* pConfigurableDomains = getConfigurableDomains(); + + // We need to ensure all domains are valid + pConfigurableDomains->validate(_pMainParameterBlackboard); + + // Ensure application of currently selected configurations + // Force-apply configurations + if (!pConfigurableDomains->apply(_pMainParameterBlackboard, true, strError)) { + + return false; + } + + // All is loaded, we're ready to observe selection criteria change events + getSelectionCriteria()->setObserver(this); + + // Start remote processor server if appropriate + return handleRemoteProcessingInterface(strError); } bool CParameterMgr::loadFrameworkConfiguration(string& strError) @@ -456,30 +481,7 @@ bool CParameterMgr::loadSettings(string& strError) return false; } - // Back synchronization for areas in parameter blackboard no covered by any domain - CBackSynchronizer* pBackSynchronizer = createBackSynchronizer(strError); - - log("Main blackboard back synchronization"); - - // Back-synchronize - if (!pBackSynchronizer->sync()) { - // Get rif of back synchronizer - delete pBackSynchronizer; - - strError = "Main blackboard back synchronization failed: " + strError; - - return false; - } - // Get rif of back synchronizer - delete pBackSynchronizer; - - // We're done loading the settings - // We need to ensure all domains are valid - pConfigurableDomains->validate(_pMainParameterBlackboard); - - // Ensure application of currently selected configurations - // Force-apply configuration(s) - return pConfigurableDomains->apply(_pMainParameterBlackboard, true, strError); + return true; } // XML parsing @@ -556,7 +558,7 @@ void CParameterMgr::selectionCriterionChanged(const CSelectionCriterion* pSelect CAutoLog autoLog(this, "Selection criterion changed event: " + pSelectionCriterion->getFormattedDescription(false)); // Lock state - pthread_mutex_lock(&_tuningModeMutex); + CAutoLock autoLock(&_tuningModeMutex); if (!_bTuningModeIsOn) { @@ -568,8 +570,6 @@ void CParameterMgr::selectionCriterionChanged(const CSelectionCriterion* pSelect log("Failed to apply configurations!"); } } - // Unlock state - pthread_mutex_unlock(&_tuningModeMutex); } // Command processing @@ -1267,13 +1267,13 @@ bool CParameterMgr::setTuningMode(bool bOn, string& strError) return false; } // Lock state - pthread_mutex_lock(&_tuningModeMutex); + CAutoLock autoLock(&_tuningModeMutex); // Warn domains about exiting tuning mode if (!bOn && _bTuningModeIsOn) { // Ensure application of currently selected configurations - // Force-apply configuration(s) + // Force-apply configurations if (!getConfigurableDomains()->apply(_pMainParameterBlackboard, true, strError)) { return false; @@ -1285,9 +1285,6 @@ bool CParameterMgr::setTuningMode(bool bOn, string& strError) // Store _bTuningModeIsOn = bOn; - // Unlock state - pthread_mutex_unlock(&_tuningModeMutex); - return true; } @@ -1331,7 +1328,7 @@ bool CParameterMgr::setAutoSync(bool bAutoSyncOn, string& strError) if (bAutoSyncOn && !_bAutoSyncOn) { // Ensure application of currently selected configurations - // Force-apply configuration(s) + // Force-apply configurations if (!getConfigurableDomains()->apply(_pMainParameterBlackboard, true, strError)) { return false; diff --git a/parameter/ParameterType.cpp b/parameter/ParameterType.cpp index 53d10e6..0d3dac5 100644 --- a/parameter/ParameterType.cpp +++ b/parameter/ParameterType.cpp @@ -125,21 +125,28 @@ void CParameterType::signExtend(int32_t& iData) const // Check data has no bit set outside available range bool CParameterType::isEncodable(uint32_t uiData) const { - uint32_t uiSizeInBits = _uiSize << 3; - uint32_t uiShift = 32 - uiSizeInBits; + return isEncodable(uiData, _uiSize << 3); +} - if (uiShift) { +// Check data has no bit set outside available range +bool CParameterType::isEncodable(uint32_t uiData, uint32_t uiSizeInBits) const +{ + if (uiSizeInBits == 32) { - // Check high bits are clean - return !(uiData >> uiShift); + return true; } - return true; + // Check high bits are clean + return !(uiData >> uiSizeInBits); } // Remove all bits set outside available range uint32_t CParameterType::makeEncodable(uint32_t uiData) const { + if (_uiSize == sizeof(uint32_t)) { + + return uiData; + } uint32_t uiSizeInBits = _uiSize << 3; uint32_t uiMask = (1 << uiSizeInBits) - 1; @@ -147,21 +154,3 @@ uint32_t CParameterType::makeEncodable(uint32_t uiData) const return uiData & uiMask; } -// Check data is consistent with available range, with respect to its sign -bool CParameterType::isConsistent(uint32_t uiData, bool bSigned) const -{ - uint32_t uiSizeInBits = _uiSize << 3; - uint32_t uiShift = 32 - uiSizeInBits; - - if (uiShift) { - - // Negative value? - bool bIsValueExpectedNegative = bSigned && (uiData & (1 << (uiShift - 1))) != 0; - - // Check high bits are clean - return bIsValueExpectedNegative ? !(~uiData >> uiShift) : !(uiData >> uiShift); - } - - return true; -} - diff --git a/parameter/ParameterType.h b/parameter/ParameterType.h index 88ee0ea..980afba 100644 --- a/parameter/ParameterType.h +++ b/parameter/ParameterType.h @@ -70,12 +70,12 @@ protected: void setSize(uint32_t uiSize); // Sign extension void signExtend(int32_t& iData) const; - // Check data has no bit set outside available range + // Check data has no bit set outside available range (based on byte size) bool isEncodable(uint32_t uiData) const; + // Check data has no bit set outside available range + bool isEncodable(uint32_t uiData, uint32_t uiSizeInBits) const; // Remove all bits set outside available range uint32_t makeEncodable(uint32_t uiData) const; - // Check data is consistent with available range, with respect to its sign - bool isConsistent(uint32_t uiData, bool bSigned) const; private: // Instantiation diff --git a/parameter/SelectionCriterionDefinition.cpp b/parameter/SelectionCriterionDefinition.cpp deleted file mode 100644 index 58c5485..0000000 --- a/parameter/SelectionCriterionDefinition.cpp +++ /dev/null @@ -1,40 +0,0 @@ -/* - * - * - * INTEL CONFIDENTIAL - * Copyright © 2011 Intel - * Corporation All Rights Reserved. - * - * The source code contained or described herein and all documents related to - * the source code ("Material") are owned by Intel Corporation or its suppliers - * or licensors. Title to the Material remains with Intel Corporation or its - * suppliers and licensors. The Material contains trade secrets and proprietary - * and confidential information of Intel or its suppliers and licensors. The - * Material is protected by worldwide copyright and trade secret laws and - * treaty provisions. No part of the Material may be used, copied, reproduced, - * modified, published, uploaded, posted, transmitted, distributed, or - * disclosed in any way without Intel’s prior express written permission. - * - * No license under any patent, copyright, trade secret or other intellectual - * property right is granted to or conferred upon you by disclosure or delivery - * of the Materials, either expressly, by implication, inducement, estoppel or - * otherwise. Any license under such intellectual property rights must be - * express and approved by Intel in writing. - * - * AUTHOR: Patrick Benavoli (patrickx.benavoli@intel.com) - * CREATED: 2011-06-01 - * UPDATED: 2011-07-27 - * - * - * - */ -#include "SelectionCriterionDefinition.h" - -CSelectionCriterionDefinition::CSelectionCriterionDefinition(const string& strName) : CElement(strName) -{ -} - -string CSelectionCriterionDefinition::getKind() const -{ - return "SelectionCriterionDefinition"; -} diff --git a/parameter/SelectionCriterionDefinition.h b/parameter/SelectionCriterionDefinition.h deleted file mode 100644 index 4532010..0000000 --- a/parameter/SelectionCriterionDefinition.h +++ /dev/null @@ -1,43 +0,0 @@ -/* - * - * - * INTEL CONFIDENTIAL - * Copyright © 2011 Intel - * Corporation All Rights Reserved. - * - * The source code contained or described herein and all documents related to - * the source code ("Material") are owned by Intel Corporation or its suppliers - * or licensors. Title to the Material remains with Intel Corporation or its - * suppliers and licensors. The Material contains trade secrets and proprietary - * and confidential information of Intel or its suppliers and licensors. The - * Material is protected by worldwide copyright and trade secret laws and - * treaty provisions. No part of the Material may be used, copied, reproduced, - * modified, published, uploaded, posted, transmitted, distributed, or - * disclosed in any way without Intel’s prior express written permission. - * - * No license under any patent, copyright, trade secret or other intellectual - * property right is granted to or conferred upon you by disclosure or delivery - * of the Materials, either expressly, by implication, inducement, estoppel or - * otherwise. Any license under such intellectual property rights must be - * express and approved by Intel in writing. - * - * AUTHOR: Patrick Benavoli (patrickx.benavoli@intel.com) - * CREATED: 2011-06-01 - * UPDATED: 2011-07-27 - * - * - * - */ -#pragma once - -#include "Element.h" - -class CSelectionCriterionDefinition : public CElement -{ -public: - CSelectionCriterionDefinition(const string& strName); - - virtual string getKind() const; -private: -}; - diff --git a/parameter/SystemClass.cpp b/parameter/SystemClass.cpp index 62b6538..2314c4f 100644 --- a/parameter/SystemClass.cpp +++ b/parameter/SystemClass.cpp @@ -80,6 +80,8 @@ bool CSystemClass::loadSubsystems(string& strError, const vector& astrPl // No plugin found? strError = "No subsystem plugin found"; + + return false; } // Actually load plugins diff --git a/parameter/buildlog.txt b/parameter/buildlog.txt new file mode 100644 index 0000000..df695c2 --- /dev/null +++ b/parameter/buildlog.txt @@ -0,0 +1 @@ +make: *** No rule to make target `mfld_cdk'. Stop. diff --git a/parameter/parameter b/parameter/parameter index 6d8ad82..ae592e2 100755 --- a/parameter/parameter +++ b/parameter/parameter @@ -1,2 +1,2 @@ -#!/bin/sh -./remote-process localhost 5000 $* +#!/system/bin/sh +remote-process localhost 5000 $* diff --git a/remote-processor/Message.cpp b/remote-processor/Message.cpp index 5679501..4454b1c 100644 --- a/remote-processor/Message.cpp +++ b/remote-processor/Message.cpp @@ -236,7 +236,7 @@ bool CMessage::serialize(CSocket* pSocket, bool bOut) // Checksum uint8_t CMessage::computeChecksum() const { - uint8_t uiChecksum = (_ucMsgId & 0xFF) + (_ucMsgId >> 8); + uint8_t uiChecksum = _ucMsgId; uint32_t uiIndex; -- cgit v1.1