aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* [Workaround][xmlGenerator] Increase retry on EADDRINUSEKevin Rocard2015-02-181-1/+1
| | | | | | | | | | | | | | | | During host domain generation, a port must be chosen before spawning a servers, producing an error if someone else uses it before the server. This race was workaround by retiring 10 times before failing. This divided the failure probability by 10, but is no longer sufficient. A correct implementation without this race is currently been developed (without socket) but until then change the retry number from 10 to 1000. Signed-off-by: Kevin Rocard <kevin.rocard@intel.com> Tracked-On: https://jira01.devtools.intel.com/browse/IMINAN-17358 Change-Id: Ie80e4508952ef150eb999d9a6fa7e60b61825f35 Reviewed-on: https://android.intel.com:443/319856
* Remove remote process socket connection timeoutKevin Rocard2015-02-182-6/+0
| | | | | | | | | | | | | From time to time, on Buildbot, the PFW generation build step fails due to remote processor socket connection timeout. In order to avoid deconnection when the peer is slow, this patch removes the remote processor socket connection timeout. Change-Id: I56b5b4b846a7489accd56ba3a3224dc1ffc1085e Tracked-On: https://jira01.devtools.intel.com/browse/IMINAN-5511 Signed-off-by: Kevin Rocard <kevinx.rocard@intel.com> Reviewed-on: https://android.intel.com:443/289012
* Cleaned up XML export featurePatrick Benavoli2015-02-182-7/+10
| | | | | | | | | | | | BZ: 209937 This patch solves 1 issue regarding XML export feature: - ParameterMgr.cpp::exportElementToXMLString(): This method was receiving a useless bValidateWithSchema argument. Indeed, elements in memory are necessarily valid (unlike documents coming from external sources). Change-Id: I55bf84c8ff53c37c9fc55e60f7f64e8776a43dc7 Signed-off-by: Patrick Benavoli <patrick.benavoli@intel.com>
* Missing error reporting statement in XML Export featurePatrick Benavoli2015-02-181-1/+2
| | | | | | | | | | | | | BZ: 209937 In case an error is encountered during the XML encoding operation, no error message is created to log the issue. This patch updates XmlStringDocSink.cpp::doProcess() so that the error string is filled in case of errors. Change-Id: Ie93e50f857506b8637b1bb0dd8d411a01f16ec49 Signed-off-by: Patrick Benavoli <patrick.benavoli@intel.com>
* Adding XML format to Criteria export tuning I/FPatrick Benavoli2015-02-1811-46/+126
| | | | | | | | | | | | | | | | | | | | | | | BZ: 209937 The "listCriteria" command returns the list of criteria in a human readable way. However, external tools that require to know this list of criteria have trouble parsing this output. An XML output would solve the issue. Changed "listCriteria" command to accept "XML" as first and only argument. In the end, listCriteria command accepts the 3 following forms: - listCriteria => will list the criteria states and type content in a human readable format - listCriteria csv|CSV => will list the criteria states and type content in a CSV format - listCriteria xml|XML => will list the criteria states and type content in an XML format Removed python binding accordingly. Change-Id: Ib060ec0a5d1ff87ba6c25caf4e0d5839a7927715 Signed-off-by: Patrick Benavoli <patrick.benavoli@intel.com> Signed-off-by: Sebastien Gonzalve <sebastien.gonzalve@intel.com>
* Delete subsystem instances *before* plugin unloadPatrick Benavoli2015-02-182-7/+12
| | | | | | | | | | | | | | | | | | BZ: 208504 Before this patch there was a crash in CElement destructor in Ubuntu upon destuction of parameter framework instance. The crash was caused by the attempt to call unmapped code: The subsystem plugin libraries were getting unloaded before the execution of the subsystem destructors. Note: In Android the issue is not seen since library unload is not implemented. This patch ensures SystemClass destructor destroys the subsystems explicitely unloading the plugins. Change-Id: I19dad262b384bdbd63c7c319a41a5d547d0e75e9 Signed-off-by: Patrick Benavoli <patrick.benavoli@intel.com>
* Coding style correctionPatrick Benavoli2015-02-182-8/+11
| | | | | | | | | | | BZ: 208504 Concerns the handle to remote processor library. In PFW coding style, the variables are named like in english language: The actual nature of the object needs to lie at the end of the name. Change-Id: If41218c3456d07c81a953182488c6ae71e31b6d8 Signed-off-by: Patrick Benavoli <patrick.benavoli@intel.com>
* Removed spurious execution mode on source filesPatrick Benavoli2015-02-188-0/+0
| | | | | | | | | BZ: 208504 Some source files were mistakenly assigned the executable flag. Change-Id: Iad85123c331d2599126ed46f070fe10614f7c360 Signed-off-by: Patrick Benavoli <patrick.benavoli@intel.com>
* Adding a missing const in a get type methodPatrick Benavoli2015-01-292-3/+14
| | | | | | | | | BZ: 208504 CParameterAccessContext::outRawFormatIsHex() was missing the const modifier. Change-Id: I3120a231d2dff8f4274b95cd2d3c8ff0817bf8ac Signed-off-by: Patrick Benavoli <patrick.benavoli@intel.com>
* Move element tree initialisation to load functionGuillaume Denneulin2015-01-292-6/+6
| | | | | | | | | | | | | | | | | | | | BZ: 207091 The parameter platform manager used to initialize the element tree. However, this is too early for plugins, since they need information from the core which have not been initialized yet. This patch delays the initialization of the element tree by adding it to the load() function of the ParameterMgr. Change-Id: I98e0e3a20ac0af2736eddc4c8349911eb1d1a691 Signed-off-by: Guillaume Denneulin <guillaume.denneulin@intel.com> Signed-off-by: Mattijs Korpershoek <mattijsx.korpershoek@intel.com> Reviewed-on: https://android.intel.com/215426 Reviewed-by: De Chivre, Renaud <renaud.de.chivre@intel.com> Reviewed-by: Benavoli, Patrick <patrick.benavoli@intel.com> Reviewed-by: Rocard, KevinX <kevinx.rocard@intel.com> Tested-by: Rocard, KevinX <kevinx.rocard@intel.com>
* Fixing TestPlatform.cpp file coding styleJules Clero2015-01-291-91/+114
| | | | | | | | | | BZ: 213233 TestPlatform.cpp has been edited regarding uncrustify suggestions. Change-Id: Iac75c5923d5bf9836730ca6f21789967a98895e9 Signed-off-by: Jules Clero <jules.clero@intel.com>
* Fix test-platform set criterion by Lexical State BugJules Clero2015-01-291-14/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | BZ: 213233 The setCriterionState command of the Test Platform was setting undesired value when asking for multiple states to an InclusiveCriterion. The method used in setCriterionStateByLexicalSpace was to parse arguments before to get numerical value for each of them with the getNumericalValue method from ISelectionCriterionTypeInterface. Then, different masks were aggregated to set the criterion's state. Regarding the getNumericalValue method behaviour which parses automatically value arguments, this method leads to undesired bytes in the mask which leads to undesired criterion's state. The solution is to aggregate the setCriterionState arguments when more than one arg are used. As getNumericalValue use | to split his first parameter, the code has been modified to use this behaviour. getNumericalValue is now called only one time and the returned mask is directly used to set criterion's state. Change-Id: Ie3a1d79a6f66928a2418f11233ff0d1ef5c3e900 Signed-off-by: Jules Clero <jules.clero@intel.com>
* Merge pull request #38 from dawagner/python-bindingsDavid Wagner2015-01-2925-1238/+2240
|\ | | | | Python bindings and new EDD -> XML generator using these bindings
| * python bindings: add a READMEDavid Wagner2015-01-281-0/+29
| | | | | | | | | | Change-Id: I361ef7ca42fb79f61164f227b8f7893f90332b62 Signed-off-by: David Wagner <david.wagner@intel.com>
| * xmlGenerator: update the READMEDavid Wagner2015-01-281-10/+49
| | | | | | | | | | | | | | Document the new python xml generator and deprecate the old one. Change-Id: I5bf9a8206c82678eda7b29b1fe88cbc0396b1f9d Signed-off-by: David Wagner <david.wagner@intel.com>
| * domainGenerator.py: disable the remote interfaceDavid Wagner2015-01-281-0/+4
| | | | | | | | | | | | | | | | | | | | | | The remote interface sometimes gets in the way of XML generation when the port is already in use. A "retry" mechanism existed in the previous generator but was unreliable. In the new generator, we disable it altogether as we don't need it. Change-Id: I0a1850058b688f5ea09b93959601d3c706d812b6 Signed-off-by: David Wagner <david.wagner@intel.com>
| * ParameterMgr: add a method to forcefully disable the remote interfaceDavid Wagner2015-01-287-0/+82
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In some setup, users might not want to start the remote interface even if the toplevel configuration file allows it. The parameter-framework client can now override the remote interface starting policy. This was, until now, only dictated by the 'TuningAllowed' attribute in the toplevel configuration file and the presence of the libremote-processor library. This method is forwarded to the connectors and the bindings. Change-Id: Ib6dc272dfc7114125fdafd1a58642cde88847752 Signed-off-by: David Wagner <david.wagner@intel.com>
| * domainGenerator.py: pass a logger to the parameter-frameworkDavid Wagner2015-01-281-0/+12
| | | | | | | | | | | | | | | | Take advantage of the setLogger() method that was newly added to the bindings to allow the parameter-framework to log during XML generation. Change-Id: I71a43fae915756a7986a48a840306d454d071f17 Signed-off-by: David Wagner <david.wagner@intel.com>
| * bindings: bind ILogger and setLogger()David Wagner2015-01-284-5/+68
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This will allow users of the parameter-framework bindings to set a logger; without it, the parameter-framework wasn't able to log anything. Some SWIG features and workarounds must be activated in order to: - Support nested classes; - Derive bound classes and allow C++ to call back the user-created objects; - Properly handle exceptions that may be raised upon errors happening on the user side. Change-Id: I955152a4658eff3307ad595f175f2624a3acfa8c Signed-off-by: David Wagner <david.wagner@intel.com>
| * xmlGenerator: new generator using the python bindingsDavid Wagner2015-01-282-0/+326
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This new script (domainGenerator.py) uses both the newly-refactored EddParser.py module as well as the new python bindings to generate XML Settings through the parameter-framework interface. This script can take the following data as input: - the toplevel config file (mandatory) - the 'criteria' file (mandatory) - an initial settings file to be amended (optional) - zero, one, or several 'domain' files (each containing a single domain) - zero, one, or several files in the EDD syntax (aka ".pfw" files) Call the script with the "--help" argument for detailed help. It implements its own derived class of PfwBaseTranslator, calling the parameter-framework python bindings. Any error happening within the binding or below (e.g. the pfw core) is collected and forwarded to the user. Change-Id: Id11123e083ed2a487800e737007a99541949a4bb Signed-off-by: David Wagner <david.wagner@intel.com>
| * xmlGenerator: modularize hostConfig.py for easier reuseDavid Wagner2015-01-281-11/+11
| | | | | | | | | | | | | | | | Instead of calling this script from command line, we will need to use it from another python script/module. Change-Id: Ic3b1f55c0a73c4edff005687327cd19570ab7743 Signed-off-by: David Wagner <david.wagner@intel.com>
| * xmlGenerator: Refactor PFWScriptGeneratorDavid Wagner2015-01-288-1174/+1190
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The existing code is split in two parts: - "EDD"-files parsing; - parameter-framework remote commands generation The first part is mostly kept as-is but the file is renamed to "EddParser.py"; the second part is refactored and an object presenting a "Translator" intreface is passed to the parsed objects in order to generate the remote parameter-framework commands. Later, another class implementing the Translator interface will be implemented using the python bindings. Some dead code is removed in the process. Change-Id: I9725600ce34f36742c7e27ea7aee53892dd799b0 Signed-off-by: David Wagner <david.wagner@intel.com>
| * PFWScriptGenerator: remove incomplete and unused XML output supportDavid Wagner2015-01-281-48/+4
| | | | | | | | | | | | | | | | | | | | | | | | This script is used to generate XML files through the parameter-framework's remote interface. A "direct xml output" support was partially implemented to generate the XML output without the involvement of the parameter-framework. It has never been comletely implemented nor used by anyone, so we'd better remove it. Change-Id: I6ad166306585c55884482ed03934da9f3efc70df Signed-off-by: David Wagner <david.wagner@intel.com>
| * Introduce Python bindingsDavid Wagner2015-01-287-0/+409
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These bindings for the parameter-framework generic connector use "SWIG" to generate: - a C++ file providing a basic bridge between C++ and Python (must be compiled to a shared library named "_PyPfw.so" - the name is important) - a Python module wrapping it inside a Proxy class, re-creating the same classes as the parameter-framework generic connector. See http://www.swig.org for the full SWIG documentation. They are generated and compiled on-the-fly as part of the build process. Change-Id: If7c67f1178dcc9f438cf037246eb77bbd74b689a Signed-off-by: David Wagner <david.wagner@intel.com> Signed-off-by: Sebastien Gonzalve<sebastien.gonzalve@intel.com>
| * Add {get,set}SchemaFolderLocation() to the public Pfw APIDavid Wagner2015-01-286-0/+66
|/ | | | | | | | | | It will allow users to tell the parameter-framework where the Schemas are instead of letting it guess. These methods are also added to both "Platform" and "Full" connectors. Change-Id: I7fe3b2fd2c6dba1d90d36de97e6db7d71b2c686f Signed-off-by: David Wagner <david.wagner@intel.com>
* Merge pull request #37 from dawagner/full-connectorDavid Wagner2015-01-2210-282/+886
|\ | | | | New "ParameterMgr" Connector, as alternative to the ParameterMgrPlatformConnector. This "Full" connector offers all the capabilities of the ParameterMgr.
| * New ParamegerMgr "Full" connectorDavid Wagner2015-01-224-0/+613
| | | | | | | | | | | | | | | | | | | | | | | | | | This is a new connector that implements (almost) all of the parameter-framework capabilities, in contrast to CParameterMgrPlatformConnector which only implements criteria creation, modification, and application and dynamic parameter handling capabilities. It will allow user to programatically do whatever the PFW can do, e.g. create domains and configurations. Change-Id: Ide118aaaae4f84fa7280d2cae470de0c024c0f00 Signed-off-by: David Wagner <david.wagner@intel.com>
| * parameter: sort C++ filenames and remove duplicatesDavid Wagner2015-01-222-185/+112
| | | | | | | | | | | | | | | | | | | | There were duplicates in the CMakeLists.txt; this patch removes them and sorts the filenames so that they are identical in Android.mk and CMakeLists.txt. Please keep the names sorted, using the shell's "sort -u" command. Change-Id: I027676beb4ee19de2341cd65e0e5c077cddb5627 Signed-off-by: David Wagner <david.wagner@intel.com>
| * Make ParameterMgrLogger templateDavid Wagner2015-01-226-29/+24
| | | | | | | | | | | | | | | | This will make it possible to have different kind of ParameterMgr connectors instead of hardcoding ParameterMgrPlatformConnector in ParameterMgrLogger. Change-Id: Ia78d9f56c8cc73321e1956856755a56a3569b517 Signed-off-by: David Wagner <david.wagner@intel.com>
| * ParameterMgr: make serializeElement and importDomainFromFile private methodsDavid Wagner2015-01-221-27/+28
| | | | | | | | | | | | | | | | There is no need for these method to be public as they are only used internaly. Change-Id: I172257211f35de26c11aaef499f7c847d55ced0b Signed-off-by: David Wagner <david.wagner@intel.com>
| * ParameterMgr: enforce Tuning Mode on write access of parametersDavid Wagner2015-01-222-6/+7
| | | | | | | | | | | | | | | | | | | | This applies only to setParameter: this commands should only be available in Tuning Mode. This is enforced by moving the tuning mode check from the remote interface to the internal CParameterMgr::accessParameterValue() method. Additionaly, CParameterMgr::accessValue is made private. Change-Id: I189362a768ce1cd9709b6e5d48cd833f7ca56479 Signed-off-by: David Wagner <david.wagner@intel.com>
| * ParameterMgr: remove some dead codeDavid Wagner2015-01-222-13/+0
| | | | | | | | | | | | | | logStructureContent() wasn't called by anybody. Change-Id: I152b6f1790a545ab302ca90389c78c43a0bb6056 Signed-off-by: David Wagner <david.wagner@intel.com>
| * ParameterMgr: fix some return values typesDavid Wagner2015-01-221-2/+2
| | | | | | | | | | | | | | | | | | Some public methods returned a "CCommandHandler" enum value type, which is intended to be used in the remote tuning methods only. Primitive bools must be used instead. Change-Id: Iac7a565f701c65875b3f1dd0896bf31d7d843d72 Signed-off-by: David Wagner <david.wagner@intel.com>
| * ParameterMgr: Add more tuning methods to the C++ public APIDavid Wagner2015-01-222-20/+100
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | These methods are: - renameDomain - setSequenceAwareness - getSequenceAwareness - renameConfiguration - setElementSequence - setApplicationRule - getApplicationRule - clearApplicationRule The "remote tuning" methods are also modified to use them instead of directly accessing inner objects and the tuning mode checking is moved to the public C++ method when applicable. Change-Id: I9cdd0abbacb76232cd746878dca9ab619e8b6b58 Signed-off-by: David Wagner <david.wagner@intel.com>
* | Merge pull request #36 from dawagner/single-domainDavid Wagner2015-01-2219-336/+721
|\ \ | |/ | | Single domain import/export remote commands
| * New command for importing a single domain from a fileDavid Wagner2015-01-226-16/+193
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The command is used as follows: importDomainWithSettingsXML <file path> [overwrite] It reads the file given as first argument (path must be absolute) and imports the domain found in it. It does not check whether it overlaps with another domain (same elements in two domains). It does, however, check if there is an existing domain with the same name as the one being imported. If so and if the (optional) second argument is "overwrite", it will first delete the existing domain; if not it will refuse to import the new domain. Change-Id: I7aaa225f2f1a296f52dc8a97f55e1ff70c06d567 Signed-off-by: David Wagner <david.wagner@intel.com>
| * New remote command for exporting a single domainDavid Wagner2015-01-223-23/+110
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The command is used as follows: getDomainWithSettingsXML <domain> and outputs the requested domain to the standard output. In that end, the const version of CConfigurableDomains::findConfigurableDomain is made public. This somewhat breaks encapsulation but since the returned domain is const, this has limited impact. Change-Id: I9b854040a5d59913b9b405c8e38d29a3018a6079 Signed-off-by: David Wagner <david.wagner@intel.com>
| * Pass the SystemClass as deserialization context for DomainsDavid Wagner2015-01-223-12/+19
| | | | | | | | | | | | | | | | | | | | This allows diminishing the dependency on the parent element when creating a Domain element from an XML document: the parent was used to get a handle to the system class in order to check the existence of ConfigurableElements included in the Domain. Change-Id: Icba7c3c4db2b9728c0fb7c6840a254de9775f6a4 Signed-off-by: David Wagner <david.wagner@intel.com>
| * Extract and specialize domain import- and export-specific contextsDavid Wagner2015-01-2211-161/+242
| | | | | | | | | | | | | | | | | | | | | | | | Import and Export of ConfigurableDomains have different context needs: e.g. the value representation is only used for export; auto-validation is only meaningful for import whereas the "with settings" context is common to both. We create two new classes, derived from XmlDomainSerializingContext and move most of its content to each class it belongs to. Change-Id: I56589cdb3a8ea417e11d2ed98ccd055d7cdead67 Signed-off-by: David Wagner <david.wagner@intel.com>
| * Schemas: Split ConfigurableDomain from ConfigurableDomainsDavid Wagner2015-01-223-114/+130
| | | | | | | | | | | | | | | | This is done in preparation for future work making it possible to export/import domains in standalone and separate files. Change-Id: I35ae66361d18e2de603cedee6b1701defcc9d357 Signed-off-by: David Wagner <david.wagner@intel.com>
| * Remove const/non-const code duplication in CConfigurableDomainsDavid Wagner2015-01-221-11/+4
| | | | | | | | | | | | | | | | Implement the non-const method of findConfigurableDomain by calling the const version, as described in Effective C++ Item 3. Change-Id: Ib7b58100dc817d02092299923edf2e6c7ce2f117 Signed-off-by: David Wagner <david.wagner@intel.com>
| * Allow more flexibility in overriding CElement::toXmlDavid Wagner2015-01-225-8/+32
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The toXml method has a default implementation that recursively calls toXml on the children and set their "Name" attribute. With this approach, the toplevel element's name isn't set unless its overrided implementation explicitly does so. A first approach for fixing that is to set the XmlElement's name and recursively call toXml on children (without setting their name because it will be done by their toXml method). However, the "CXmlElement" being created may or may not be the object on which the toXml method is called, in which case the name will be set on the wrong XmlElement. Instead, in CElement::toXml, we set the XmlElement's name and call a new virtual method, childrenToXml which only recursively call toXml on children. This gives full flexibility to elements to choose how they want to serialize themselves and how they want to serialize their children. CConfigurableDomain::toXml is modified to take that change into account. Change-Id: Id12a1023e91cb000e55c242c13643b1db7d46871 Signed-off-by: David Wagner <david.wagner@intel.com>
* | Merge pull request #28 from krocard/ctest_configDavid Wagner2015-01-223-0/+43
|\ \ | | | | | | Integrate fix point parameter test in cmake
| * | Integrate fix point parameter test in cmakeKevin Rocard2014-12-103-0/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Cmake can manage test with ctest. Running them when make test is run. Unfortunately the only automatic tests the pfw has (fix point parameter test) are not declared in cmake. Add a test target and declare the fix point parameter test in cmake. Thus a simple make test after the make install will run all tests. Signed-off-by: Kevin Rocard <kevinx.rocard@intel.com>
* | | Merge pull request #30 from krocard/explicit_dependency_on_dlDavid Wagner2015-01-221-1/+2
|\ \ \ | | | | | | | | Link parameter-framework.so with dl
| * | | Link parameter-framework.so with dlKevin Rocard2014-12-051-1/+2
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | The parameter-framework was using dl{open,close,error} but was not requesting to link with dl. This leaded to compilation failure on non implicit dl distributions. Add explict dependency to dl. Signed-off-by: Kevin Rocard <kevinx.rocard@intel.com>
* | | Merge pull request #35 from 01org/fix-test-platform-boolean-gettersDavid Wagner2015-01-221-2/+1
|\ \ \ | |_|/ |/| | test-platform: fix boolean remote getter commands output
| * | test-platform: fix boolean remote getter commands outputDavid Wagner2015-01-021-2/+1
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | Getter commands return a boolean value ("true" or "false") were implemented by a generic method. However, this method returned a "Done" result, which suppresses the normal output and prints "Done" instead. This is fixed by making this method return a "Success" result, which is interpreted as "give the output to the user". In the same time, we remove a useless "cast to void" which is usually a workaround for unused variables. Change-Id: I49115d3b29967fd455ffc0b703dfb4f4d438280e Signed-off-by: David Wagner <david.wagner@intel.com>
* | Release v2.3.0David Wagner2014-12-121-1/+1
|/ | | | | | | It's been a long time we haven't changed this version number. We will start making releases and this one is the first of a series. Signed-off-by: David Wagner <david.wagner@intel.com>
* Merge pull request #26 from 01org/schemas-readme-fixesDavid Wagner2014-11-261-8/+48
|\ | | | | Schemas readme fixes