From 1ff2b808f479dab106545cc90cfb37e84bab204a Mon Sep 17 00:00:00 2001 From: Jens Bocklage Date: Mon, 27 Apr 2015 16:41:01 +0200 Subject: Unified all line endings to UNIX style. Signed-off-by: Alexander Wenzel --- MPL.txt | 748 ++++++++++----------- ReleaseNotes.txt | 874 ++++++++++++------------- include/dlt/dlt.h | 94 +-- include/dlt/dlt_client.h | 286 ++++----- include/dlt/dlt_common_api.h | 434 ++++++------- include/dlt/dlt_protocol.h | 372 +++++------ include/dlt/dlt_types.h | 80 +-- src/daemon/dlt-daemon.h | 414 ++++++------ src/daemon/dlt-daemon_cfg.h | 226 +++---- src/daemon/dlt_daemon_common.h | 756 +++++++++++----------- src/daemon/dlt_daemon_common_cfg.h | 238 +++---- src/examples/dlt-example-non-verbose-1.xml | 998 ++++++++++++++--------------- src/examples/dlt-example-non-verbose.xml | 850 ++++++++++++------------ src/lib/dlt_client_cfg.h | 156 ++--- src/lib/dlt_filetransfer.c | 2 +- src/lib/dlt_user_cfg.h | 298 ++++----- src/shared/dlt_common_cfg.h | 222 +++---- src/shared/dlt_user_shared.h | 458 ++++++------- src/shared/dlt_user_shared_cfg.h | 206 +++--- systemd/dlt-dbus.service.cmake | 64 +- systemd/dlt-system.service.cmake | 64 +- 21 files changed, 3920 insertions(+), 3920 deletions(-) diff --git a/MPL.txt b/MPL.txt index bac71fc..52d1351 100755 --- a/MPL.txt +++ b/MPL.txt @@ -1,374 +1,374 @@ -Mozilla Public License Version 2.0 -================================== - -1. Definitions --------------- - -1.1. "Contributor" - means each individual or legal entity that creates, contributes to - the creation of, or owns Covered Software. - -1.2. "Contributor Version" - means the combination of the Contributions of others (if any) used - by a Contributor and that particular Contributor's Contribution. - -1.3. "Contribution" - means Covered Software of a particular Contributor. - -1.4. "Covered Software" - means Source Code Form to which the initial Contributor has attached - the notice in Exhibit A, the Executable Form of such Source Code - Form, and Modifications of such Source Code Form, in each case - including portions thereof. - -1.5. "Incompatible With Secondary Licenses" - means - - (a) that the initial Contributor has attached the notice described - in Exhibit B to the Covered Software; or - - (b) that the Covered Software was made available under the terms of - version 1.1 or earlier of the License, but not also under the - terms of a Secondary License. - -1.6. "Executable Form" - means any form of the work other than Source Code Form. - -1.7. "Larger Work" - means a work that combines Covered Software with other material, in - a separate file or files, that is not Covered Software. - -1.8. "License" - means this document. - -1.9. "Licensable" - means having the right to grant, to the maximum extent possible, - whether at the time of the initial grant or subsequently, any and - all of the rights conveyed by this License. - -1.10. "Modifications" - means any of the following: - - (a) any file in Source Code Form that results from an addition to, - deletion from, or modification of the contents of Covered - Software; or - - (b) any new file in Source Code Form that contains any Covered - Software. - -1.11. "Patent Claims" of a Contributor - means any patent claim(s), including without limitation, method, - process, and apparatus claims, in any patent Licensable by such - Contributor that would be infringed, but for the grant of the - License, by the making, using, selling, offering for sale, having - made, import, or transfer of either its Contributions or its - Contributor Version. - -1.12. "Secondary License" - means either the GNU General Public License, Version 2.0, the GNU - Lesser General Public License, Version 2.1, the GNU Affero General - Public License, Version 3.0, or any later versions of those - licenses. - -1.13. "Source Code Form" - means the form of the work preferred for making modifications. - -1.14. "You" (or "Your") - means an individual or a legal entity exercising rights under this - License. For legal entities, "You" includes any entity that - controls, is controlled by, or is under common control with You. For - purposes of this definition, "control" means (a) the power, direct - or indirect, to cause the direction or management of such entity, - whether by contract or otherwise, or (b) ownership of more than - fifty percent (50%) of the outstanding shares or beneficial - ownership of such entity. - -2. License Grants and Conditions --------------------------------- - -2.1. Grants - -Each Contributor hereby grants You a world-wide, royalty-free, -non-exclusive license: - -(a) under intellectual property rights (other than patent or trademark) - Licensable by such Contributor to use, reproduce, make available, - modify, display, perform, distribute, and otherwise exploit its - Contributions, either on an unmodified basis, with Modifications, or - as part of a Larger Work; and - -(b) under Patent Claims of such Contributor to make, use, sell, offer - for sale, have made, import, and otherwise transfer either its - Contributions or its Contributor Version. - -2.2. Effective Date - -The licenses granted in Section 2.1 with respect to any Contribution -become effective for each Contribution on the date the Contributor first -distributes such Contribution. - -2.3. Limitations on Grant Scope - -The licenses granted in this Section 2 are the only rights granted under -this License. No additional rights or licenses will be implied from the -distribution or licensing of Covered Software under this License. -Notwithstanding Section 2.1(b) above, no patent license is granted by a -Contributor: - -(a) for any code that a Contributor has removed from Covered Software; - or - -(b) for infringements caused by: (i) Your and any other third party's - modifications of Covered Software, or (ii) the combination of its - Contributions with other software (except as part of its Contributor - Version); or - -(c) under Patent Claims infringed by Covered Software in the absence of - its Contributions. - -This License does not grant any rights in the trademarks, service marks, -or logos of any Contributor (except as may be necessary to comply with -the notice requirements in Section 3.4). - -2.4. Subsequent Licenses - -No Contributor makes additional grants as a result of Your choice to -distribute the Covered Software under a subsequent version of this -License (see Section 10.2) or under the terms of a Secondary License (if -permitted under the terms of Section 3.3). - -2.5. Representation - -Each Contributor represents that the Contributor believes its -Contributions are its original creation(s) or it has sufficient rights -to grant the rights to its Contributions conveyed by this License. - -2.6. Fair Use - -This License is not intended to limit any rights You have under -applicable copyright doctrines of fair use, fair dealing, or other -equivalents. - -2.7. Conditions - -Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted -in Section 2.1. - -3. Responsibilities -------------------- - -3.1. Distribution of Source Form - -All distribution of Covered Software in Source Code Form, including any -Modifications that You create or to which You contribute, must be under -the terms of this License. You must inform recipients that the Source -Code Form of the Covered Software is governed by the terms of this -License, and how they can obtain a copy of this License. You may not -attempt to alter or restrict the recipients' rights in the Source Code -Form. - -3.2. Distribution of Executable Form - -If You distribute Covered Software in Executable Form then: - -(a) such Covered Software must also be made available in Source Code - Form, as described in Section 3.1, and You must inform recipients of - the Executable Form how they can obtain a copy of such Source Code - Form by reasonable means in a timely manner, at a charge no more - than the cost of distribution to the recipient; and - -(b) You may distribute such Executable Form under the terms of this - License, or sublicense it under different terms, provided that the - license for the Executable Form does not attempt to limit or alter - the recipients' rights in the Source Code Form under this License. - -3.3. Distribution of a Larger Work - -You may create and distribute a Larger Work under terms of Your choice, -provided that You also comply with the requirements of this License for -the Covered Software. If the Larger Work is a combination of Covered -Software with a work governed by one or more Secondary Licenses, and the -Covered Software is not Incompatible With Secondary Licenses, this -License permits You to additionally distribute such Covered Software -under the terms of such Secondary License(s), so that the recipient of -the Larger Work may, at their option, further distribute the Covered -Software under the terms of either this License or such Secondary -License(s). - -3.4. Notices - -You may not remove or alter the substance of any license notices -(including copyright notices, patent notices, disclaimers of warranty, -or limitations of liability) contained within the Source Code Form of -the Covered Software, except that You may alter any license notices to -the extent required to remedy known factual inaccuracies. - -3.5. Application of Additional Terms - -You may choose to offer, and to charge a fee for, warranty, support, -indemnity or liability obligations to one or more recipients of Covered -Software. However, You may do so only on Your own behalf, and not on -behalf of any Contributor. You must make it absolutely clear that any -such warranty, support, indemnity, or liability obligation is offered by -You alone, and You hereby agree to indemnify every Contributor for any -liability incurred by such Contributor as a result of warranty, support, -indemnity or liability terms You offer. You may include additional -disclaimers of warranty and limitations of liability specific to any -jurisdiction. - -4. Inability to Comply Due to Statute or Regulation ---------------------------------------------------- - -If it is impossible for You to comply with any of the terms of this -License with respect to some or all of the Covered Software due to -statute, judicial order, or regulation then You must: (a) comply with -the terms of this License to the maximum extent possible; and (b) -describe the limitations and the code they affect. Such description must -be placed in a text file included with all distributions of the Covered -Software under this License. Except to the extent prohibited by statute -or regulation, such description must be sufficiently detailed for a -recipient of ordinary skill to be able to understand it. - -5. Termination --------------- - -5.1. The rights granted under this License will terminate automatically -if You fail to comply with any of its terms. However, if You become -compliant, then the rights granted under this License from a particular -Contributor are reinstated (a) provisionally, unless and until such -Contributor explicitly and finally terminates Your grants, and (b) on an -ongoing basis, if such Contributor fails to notify You of the -non-compliance by some reasonable means prior to 60 days after You have -come back into compliance. Moreover, Your grants from a particular -Contributor are reinstated on an ongoing basis if such Contributor -notifies You of the non-compliance by some reasonable means, this is the -first time You have received notice of non-compliance with this License -from such Contributor, and You become compliant prior to 30 days after -Your receipt of the notice. - -5.2. If You initiate litigation against any entity by asserting a patent -infringement claim (excluding declaratory judgment actions, -counter-claims, and cross-claims) alleging that a Contributor Version -directly or indirectly infringes any patent, then the rights granted to -You by any and all Contributors for the Covered Software under Section -2.1 of this License shall terminate. - -5.3. In the event of termination under Sections 5.1 or 5.2 above, all -end user license agreements (excluding distributors and resellers) which -have been validly granted by You or Your distributors under this License -prior to termination shall survive termination. - -************************************************************************ -* * -* 6. Disclaimer of Warranty * -* ------------------------- * -* * -* Covered Software is provided under this License on an "as is" * -* basis, without warranty of any kind, either expressed, implied, or * -* statutory, including, without limitation, warranties that the * -* Covered Software is free of defects, merchantable, fit for a * -* particular purpose or non-infringing. The entire risk as to the * -* quality and performance of the Covered Software is with You. * -* Should any Covered Software prove defective in any respect, You * -* (not any Contributor) assume the cost of any necessary servicing, * -* repair, or correction. This disclaimer of warranty constitutes an * -* essential part of this License. No use of any Covered Software is * -* authorized under this License except under this disclaimer. * -* * -************************************************************************ - -************************************************************************ -* * -* 7. Limitation of Liability * -* -------------------------- * -* * -* Under no circumstances and under no legal theory, whether tort * -* (including negligence), contract, or otherwise, shall any * -* Contributor, or anyone who distributes Covered Software as * -* permitted above, be liable to You for any direct, indirect, * -* special, incidental, or consequential damages of any character * -* including, without limitation, damages for lost profits, loss of * -* goodwill, work stoppage, computer failure or malfunction, or any * -* and all other commercial damages or losses, even if such party * -* shall have been informed of the possibility of such damages. This * -* limitation of liability shall not apply to liability for death or * -* personal injury resulting from such party's negligence to the * -* extent applicable law prohibits such limitation. Some * -* jurisdictions do not allow the exclusion or limitation of * -* incidental or consequential damages, so this exclusion and * -* limitation may not apply to You. * -* * -************************************************************************ - -8. Litigation -------------- - -Any litigation relating to this License may be brought only in the -courts of a jurisdiction where the defendant maintains its principal -place of business and such litigation shall be governed by laws of that -jurisdiction, without reference to its conflict-of-law provisions. -Nothing in this Section shall prevent a party's ability to bring -cross-claims or counter-claims. - -9. Miscellaneous ----------------- - -This License represents the complete agreement concerning the subject -matter hereof. If any provision of this License is held to be -unenforceable, such provision shall be reformed only to the extent -necessary to make it enforceable. Any law or regulation which provides -that the language of a contract shall be construed against the drafter -shall not be used to construe this License against a Contributor. - -10. Versions of the License ---------------------------- - -10.1. New Versions - -Mozilla Foundation is the license steward. Except as provided in Section -10.3, no one other than the license steward has the right to modify or -publish new versions of this License. Each version will be given a -distinguishing version number. - -10.2. Effect of New Versions - -You may distribute the Covered Software under the terms of the version -of the License under which You originally received the Covered Software, -or under the terms of any subsequent version published by the license -steward. - -10.3. Modified Versions - -If you create software not governed by this License, and you want to -create a new license for such software, you may create and use a -modified version of this License if you rename the license and remove -any references to the name of the license steward (except to note that -such modified license differs from this License). - -10.4. Distributing Source Code Form that is Incompatible With Secondary -Licenses - -If You choose to distribute Source Code Form that is Incompatible With -Secondary Licenses under the terms of this version of the License, the -notice described in Exhibit B of this License must be attached. - -Exhibit A - Source Code Form License Notice -------------------------------------------- - - This Source Code Form is subject to the terms of the Mozilla Public - License, v. 2.0. If a copy of the MPL was not distributed with this - file, You can obtain one at http://mozilla.org/MPL/2.0/. - -If it is not possible or desirable to put the notice in a particular -file, then You may include the notice in a location (such as a LICENSE -file in a relevant directory) where a recipient would be likely to look -for such a notice. - -You may add additional accurate notices of copyright ownership. - -Exhibit B - "Incompatible With Secondary Licenses" Notice ---------------------------------------------------------- - - This Source Code Form is "Incompatible With Secondary Licenses", as - defined by the Mozilla Public License, v. 2.0. - +Mozilla Public License Version 2.0 +================================== + +1. Definitions +-------------- + +1.1. "Contributor" + means each individual or legal entity that creates, contributes to + the creation of, or owns Covered Software. + +1.2. "Contributor Version" + means the combination of the Contributions of others (if any) used + by a Contributor and that particular Contributor's Contribution. + +1.3. "Contribution" + means Covered Software of a particular Contributor. + +1.4. "Covered Software" + means Source Code Form to which the initial Contributor has attached + the notice in Exhibit A, the Executable Form of such Source Code + Form, and Modifications of such Source Code Form, in each case + including portions thereof. + +1.5. "Incompatible With Secondary Licenses" + means + + (a) that the initial Contributor has attached the notice described + in Exhibit B to the Covered Software; or + + (b) that the Covered Software was made available under the terms of + version 1.1 or earlier of the License, but not also under the + terms of a Secondary License. + +1.6. "Executable Form" + means any form of the work other than Source Code Form. + +1.7. "Larger Work" + means a work that combines Covered Software with other material, in + a separate file or files, that is not Covered Software. + +1.8. "License" + means this document. + +1.9. "Licensable" + means having the right to grant, to the maximum extent possible, + whether at the time of the initial grant or subsequently, any and + all of the rights conveyed by this License. + +1.10. "Modifications" + means any of the following: + + (a) any file in Source Code Form that results from an addition to, + deletion from, or modification of the contents of Covered + Software; or + + (b) any new file in Source Code Form that contains any Covered + Software. + +1.11. "Patent Claims" of a Contributor + means any patent claim(s), including without limitation, method, + process, and apparatus claims, in any patent Licensable by such + Contributor that would be infringed, but for the grant of the + License, by the making, using, selling, offering for sale, having + made, import, or transfer of either its Contributions or its + Contributor Version. + +1.12. "Secondary License" + means either the GNU General Public License, Version 2.0, the GNU + Lesser General Public License, Version 2.1, the GNU Affero General + Public License, Version 3.0, or any later versions of those + licenses. + +1.13. "Source Code Form" + means the form of the work preferred for making modifications. + +1.14. "You" (or "Your") + means an individual or a legal entity exercising rights under this + License. For legal entities, "You" includes any entity that + controls, is controlled by, or is under common control with You. For + purposes of this definition, "control" means (a) the power, direct + or indirect, to cause the direction or management of such entity, + whether by contract or otherwise, or (b) ownership of more than + fifty percent (50%) of the outstanding shares or beneficial + ownership of such entity. + +2. License Grants and Conditions +-------------------------------- + +2.1. Grants + +Each Contributor hereby grants You a world-wide, royalty-free, +non-exclusive license: + +(a) under intellectual property rights (other than patent or trademark) + Licensable by such Contributor to use, reproduce, make available, + modify, display, perform, distribute, and otherwise exploit its + Contributions, either on an unmodified basis, with Modifications, or + as part of a Larger Work; and + +(b) under Patent Claims of such Contributor to make, use, sell, offer + for sale, have made, import, and otherwise transfer either its + Contributions or its Contributor Version. + +2.2. Effective Date + +The licenses granted in Section 2.1 with respect to any Contribution +become effective for each Contribution on the date the Contributor first +distributes such Contribution. + +2.3. Limitations on Grant Scope + +The licenses granted in this Section 2 are the only rights granted under +this License. No additional rights or licenses will be implied from the +distribution or licensing of Covered Software under this License. +Notwithstanding Section 2.1(b) above, no patent license is granted by a +Contributor: + +(a) for any code that a Contributor has removed from Covered Software; + or + +(b) for infringements caused by: (i) Your and any other third party's + modifications of Covered Software, or (ii) the combination of its + Contributions with other software (except as part of its Contributor + Version); or + +(c) under Patent Claims infringed by Covered Software in the absence of + its Contributions. + +This License does not grant any rights in the trademarks, service marks, +or logos of any Contributor (except as may be necessary to comply with +the notice requirements in Section 3.4). + +2.4. Subsequent Licenses + +No Contributor makes additional grants as a result of Your choice to +distribute the Covered Software under a subsequent version of this +License (see Section 10.2) or under the terms of a Secondary License (if +permitted under the terms of Section 3.3). + +2.5. Representation + +Each Contributor represents that the Contributor believes its +Contributions are its original creation(s) or it has sufficient rights +to grant the rights to its Contributions conveyed by this License. + +2.6. Fair Use + +This License is not intended to limit any rights You have under +applicable copyright doctrines of fair use, fair dealing, or other +equivalents. + +2.7. Conditions + +Sections 3.1, 3.2, 3.3, and 3.4 are conditions of the licenses granted +in Section 2.1. + +3. Responsibilities +------------------- + +3.1. Distribution of Source Form + +All distribution of Covered Software in Source Code Form, including any +Modifications that You create or to which You contribute, must be under +the terms of this License. You must inform recipients that the Source +Code Form of the Covered Software is governed by the terms of this +License, and how they can obtain a copy of this License. You may not +attempt to alter or restrict the recipients' rights in the Source Code +Form. + +3.2. Distribution of Executable Form + +If You distribute Covered Software in Executable Form then: + +(a) such Covered Software must also be made available in Source Code + Form, as described in Section 3.1, and You must inform recipients of + the Executable Form how they can obtain a copy of such Source Code + Form by reasonable means in a timely manner, at a charge no more + than the cost of distribution to the recipient; and + +(b) You may distribute such Executable Form under the terms of this + License, or sublicense it under different terms, provided that the + license for the Executable Form does not attempt to limit or alter + the recipients' rights in the Source Code Form under this License. + +3.3. Distribution of a Larger Work + +You may create and distribute a Larger Work under terms of Your choice, +provided that You also comply with the requirements of this License for +the Covered Software. If the Larger Work is a combination of Covered +Software with a work governed by one or more Secondary Licenses, and the +Covered Software is not Incompatible With Secondary Licenses, this +License permits You to additionally distribute such Covered Software +under the terms of such Secondary License(s), so that the recipient of +the Larger Work may, at their option, further distribute the Covered +Software under the terms of either this License or such Secondary +License(s). + +3.4. Notices + +You may not remove or alter the substance of any license notices +(including copyright notices, patent notices, disclaimers of warranty, +or limitations of liability) contained within the Source Code Form of +the Covered Software, except that You may alter any license notices to +the extent required to remedy known factual inaccuracies. + +3.5. Application of Additional Terms + +You may choose to offer, and to charge a fee for, warranty, support, +indemnity or liability obligations to one or more recipients of Covered +Software. However, You may do so only on Your own behalf, and not on +behalf of any Contributor. You must make it absolutely clear that any +such warranty, support, indemnity, or liability obligation is offered by +You alone, and You hereby agree to indemnify every Contributor for any +liability incurred by such Contributor as a result of warranty, support, +indemnity or liability terms You offer. You may include additional +disclaimers of warranty and limitations of liability specific to any +jurisdiction. + +4. Inability to Comply Due to Statute or Regulation +--------------------------------------------------- + +If it is impossible for You to comply with any of the terms of this +License with respect to some or all of the Covered Software due to +statute, judicial order, or regulation then You must: (a) comply with +the terms of this License to the maximum extent possible; and (b) +describe the limitations and the code they affect. Such description must +be placed in a text file included with all distributions of the Covered +Software under this License. Except to the extent prohibited by statute +or regulation, such description must be sufficiently detailed for a +recipient of ordinary skill to be able to understand it. + +5. Termination +-------------- + +5.1. The rights granted under this License will terminate automatically +if You fail to comply with any of its terms. However, if You become +compliant, then the rights granted under this License from a particular +Contributor are reinstated (a) provisionally, unless and until such +Contributor explicitly and finally terminates Your grants, and (b) on an +ongoing basis, if such Contributor fails to notify You of the +non-compliance by some reasonable means prior to 60 days after You have +come back into compliance. Moreover, Your grants from a particular +Contributor are reinstated on an ongoing basis if such Contributor +notifies You of the non-compliance by some reasonable means, this is the +first time You have received notice of non-compliance with this License +from such Contributor, and You become compliant prior to 30 days after +Your receipt of the notice. + +5.2. If You initiate litigation against any entity by asserting a patent +infringement claim (excluding declaratory judgment actions, +counter-claims, and cross-claims) alleging that a Contributor Version +directly or indirectly infringes any patent, then the rights granted to +You by any and all Contributors for the Covered Software under Section +2.1 of this License shall terminate. + +5.3. In the event of termination under Sections 5.1 or 5.2 above, all +end user license agreements (excluding distributors and resellers) which +have been validly granted by You or Your distributors under this License +prior to termination shall survive termination. + +************************************************************************ +* * +* 6. Disclaimer of Warranty * +* ------------------------- * +* * +* Covered Software is provided under this License on an "as is" * +* basis, without warranty of any kind, either expressed, implied, or * +* statutory, including, without limitation, warranties that the * +* Covered Software is free of defects, merchantable, fit for a * +* particular purpose or non-infringing. The entire risk as to the * +* quality and performance of the Covered Software is with You. * +* Should any Covered Software prove defective in any respect, You * +* (not any Contributor) assume the cost of any necessary servicing, * +* repair, or correction. This disclaimer of warranty constitutes an * +* essential part of this License. No use of any Covered Software is * +* authorized under this License except under this disclaimer. * +* * +************************************************************************ + +************************************************************************ +* * +* 7. Limitation of Liability * +* -------------------------- * +* * +* Under no circumstances and under no legal theory, whether tort * +* (including negligence), contract, or otherwise, shall any * +* Contributor, or anyone who distributes Covered Software as * +* permitted above, be liable to You for any direct, indirect, * +* special, incidental, or consequential damages of any character * +* including, without limitation, damages for lost profits, loss of * +* goodwill, work stoppage, computer failure or malfunction, or any * +* and all other commercial damages or losses, even if such party * +* shall have been informed of the possibility of such damages. This * +* limitation of liability shall not apply to liability for death or * +* personal injury resulting from such party's negligence to the * +* extent applicable law prohibits such limitation. Some * +* jurisdictions do not allow the exclusion or limitation of * +* incidental or consequential damages, so this exclusion and * +* limitation may not apply to You. * +* * +************************************************************************ + +8. Litigation +------------- + +Any litigation relating to this License may be brought only in the +courts of a jurisdiction where the defendant maintains its principal +place of business and such litigation shall be governed by laws of that +jurisdiction, without reference to its conflict-of-law provisions. +Nothing in this Section shall prevent a party's ability to bring +cross-claims or counter-claims. + +9. Miscellaneous +---------------- + +This License represents the complete agreement concerning the subject +matter hereof. If any provision of this License is held to be +unenforceable, such provision shall be reformed only to the extent +necessary to make it enforceable. Any law or regulation which provides +that the language of a contract shall be construed against the drafter +shall not be used to construe this License against a Contributor. + +10. Versions of the License +--------------------------- + +10.1. New Versions + +Mozilla Foundation is the license steward. Except as provided in Section +10.3, no one other than the license steward has the right to modify or +publish new versions of this License. Each version will be given a +distinguishing version number. + +10.2. Effect of New Versions + +You may distribute the Covered Software under the terms of the version +of the License under which You originally received the Covered Software, +or under the terms of any subsequent version published by the license +steward. + +10.3. Modified Versions + +If you create software not governed by this License, and you want to +create a new license for such software, you may create and use a +modified version of this License if you rename the license and remove +any references to the name of the license steward (except to note that +such modified license differs from this License). + +10.4. Distributing Source Code Form that is Incompatible With Secondary +Licenses + +If You choose to distribute Source Code Form that is Incompatible With +Secondary Licenses under the terms of this version of the License, the +notice described in Exhibit B of this License must be attached. + +Exhibit A - Source Code Form License Notice +------------------------------------------- + + This Source Code Form is subject to the terms of the Mozilla Public + License, v. 2.0. If a copy of the MPL was not distributed with this + file, You can obtain one at http://mozilla.org/MPL/2.0/. + +If it is not possible or desirable to put the notice in a particular +file, then You may include the notice in a location (such as a LICENSE +file in a relevant directory) where a recipient would be likely to look +for such a notice. + +You may add additional accurate notices of copyright ownership. + +Exhibit B - "Incompatible With Secondary Licenses" Notice +--------------------------------------------------------- + + This Source Code Form is "Incompatible With Secondary Licenses", as + defined by the Mozilla Public License, v. 2.0. + diff --git a/ReleaseNotes.txt b/ReleaseNotes.txt index dd5bade..4319eac 100755 --- a/ReleaseNotes.txt +++ b/ReleaseNotes.txt @@ -1,437 +1,437 @@ -Diagnostic Log and Trace - Release Notes -========================================= -Alexander Wenzel - -Version -------- -2.11.0 STABLE - -Changes -------- - -2.11.0 - * New macros for Format of Hex and Binary. - * Enable dbus trace when adaptor starts up. - * Added configuration of dbus filter. - * Fixed segmented messages arguments to standard. - * First implementation of DLT DBus adapter. - * DLT_CSTRING implementation non verbose mode. - * Added new examples which can be manually build against DLt library. - * Send ECU Id if enabled and added library API to change. - * Send timestamp can be disabled by new API. - * Send session/process id by default and add configuration API. - * Send extended header in non verbose mode by default and add new API to change setting. - * Make daemon buffer size configurable - -2.10.0 - - * Bug 184 - /tmp/dltpipes directory does not exist before dlt-daemon is started, logging disabled - * Updated authors information. - * Fixed missing variable declaration when systemd not enabled. - * Fixed: all possible malloc, sprintf and strcpy problems - * Fixed: Creation of dltpipes directory is too late. - * Cygwin port: cygwin patch, signal handling patch and cppcheck and install lib dll to correct location on Windows. - * Fixed compiler warnings with 32Bit gcc compiler. - * Fixed: Fixed offline trace and new send functions issues - * Fixed: Bug 172 - DLT system crashes because of wrong journald adaptor implementation - * DLT Common API Wrapper. - * Removed dlt_free from example and test applications, already called from exit handler. - * Fixed missing dlt_receiver_remove in dlt_daemon_process_user_xxx functions. - * Use LIB_SUFFIX as lib installation path. - * Fixed serial port not working anymore. - * Added log output of created socket/port In init phase 2 - socket creation - * Defined return value for dlt_message_read(). - * Cleanup of send return values.Further cleanup of send restructure. - * Moved daemon client functions to new source file. - * Centralised send function to client.Introduced connection state to dlt daemon. - * Removed check of double registration of contexts in user library, already checked by daemon. - * When using DLT in console mode on a 64-bit machine, timestamps are corrupted due to an address of a 32-bit value being cast to a 64-bit pointer. - * Bug 3 - Cmake does not check for zlib for dlt-daemon compilation. - * Added new control message timezone. - * Fixed deadlock after wrong merge.. - * Fix potential buffer overflow in offline trace. - * Fix deadlock in dlt_user_log_reattach_to_daemon(void). - * Fixed possible crash when runtime configurations files are corrupted. - * Environement variables added to configure internal logging in library. - * Reduce Timeout between filetransfer packets. - * Close socket when send fails. - * Replace threads by timing fds for ecu version, timing packets and watchdog. - * Added conntection info and unregister context control messages. - * Configurable Timeout on send. - * Added further checks to dlt_buffer. - * atexit handler fix. - * Add threadnames to libdlt threads. - * Security fix on DLT pipes. - * Reduce usage of SEM_LOCK in application library and reset pointers. - * Fix: Systemd Journal Adapter provides corrupted output. - * Fix: Install Example service file only when example enabled - -2.9.1 - - * Implementation of command line tool dlt-control. - * Fix file transfer bug. - * Bug 44 - Don't print "Buffer full" message from DLT daemon for each trace. - * Yocto fix in build builds. - * Fixed: security issue in dlt-system-shell regarding strncpy. - * Fixed: Security Issue by Command Injection in DLT System. - * systemd/CMakeLists: Remove SYSTEMD_CONFIGURATIONS_FILES_DIR existance check. - * Bug 85 - Include of dlt.h leads to compiler warning. - * Bug 84 - Adding utf8 support to dlt-daemon, dlt-viewer. Modified patch, originally provided by Stefan Vacek. - * systemd journal support added. - * spec file does not package man files when cmake is run with -DWITH_DOC=OFF - * added length check for paths of files to be transferred - * Semaphores and Pointer passing insteasd by value and otehr coverity issue fixes - * Fixed several issues in DLT filetransfer. - * added creation date and a simple hash on the file name for to improve the uniqueness of getFileSerialNumber - * modified filetransfer to be more robust in restarting transfers - * Remove dangling DLT_SEM_FREE from dlt_user_queue_resend - * Unifed ECU version sending functions - * Refinements due to problems reported by static code analysis - * Spec file does no more package man files when cmake is run with -DWITH_DOC=OFF - * Made the APID strings in dlt-test-multi-process counting from 00-99 - * Added creation date and a simple hash on the file name for to improve the uniqueness of getFileSerialNumber - * File Transfer: improved robustness in case of restarted ECU/dlt-system with interrupted transfers - -2.9.0 - - * Changed documentation and man pages into asciidoc format. - * Increased buffer sizes for DLT user library and DLT daemon - * [GDLT-120]: truncated and Segmented network tracing - * [GDLT-137]: Automatically try resending of user buffer after FIFO full - * [GSWD-85]: Added authors file - -2.8.0 - - * [GDLT-115]: Encapsulate user macros - * Fix register app and register context was not stored in buffer when FIFO is full. Other controll messages still not saved in buffer. - * Create new fifo only when same application registers with different pid.' - * Do not register appliction again, if already registered. - * Fixed filetransfer not checking buffer fill level. - -2.7.0 - - * [GDLT-24] Fixing compiler warnings - * [GDLT-94] Optional sending periodic software version messages. See man pages for more informations - * [GENDLT-26] Check for description length sanity - * [GENDLT-24] Crash on invalid injection message fixed - * [GDLT-93] Add -Wextra flags for compilation Fixed all the warnings that - * [GDLT-90] Optional: systemd watchdog concept in dlt-system and dlt-daemon - * [GDLT-67] Re-implemented dlt-system. Read full commit message for more information - -2.6.2 - - * [GDLT-89] Fixed daemon doesn't sent the persistent log level - * [GDLT-88] Fixed wrong initalization order using offline trace function - -2.6.1 - - * Add _GNU_SOURCE Definition to be able to use O_CLOEXEC - * Added important SEM_FREE in the daemon and closing fd in the filetransfer - * [GDLT-3] Fixed missing semaphore around dlt_buffer_push3 - * [GDLT-86] Fixed dlt_free uses absolute file path /tmp and not DLT_USER_DEFINE define - * [D4099] Check for duplicate file handles, and clean them up if found - * [GDLT-85] Pipes opened multiple times for the same application pid fixed - * [GDLT-82] Child process inherits file descriptors openend by their parent fixed - * [GDLT-84] Instead of calling the injection callback, store a pointer to it and the required parameter data fixed - * [GDLT-70] Check for malloc failures and return errors where applicable - * [GDLT-47] Avoid discarding old contexts if no new memory can be allocate - * [GDLT-69] Fixed bug in dlt-test-multi-process shares context between threads - -2.6.0 - - * [GDLT-75] Use old style directory check on startup - * [GENDLT-21] Move mcnt from DltContextData to DltContext - * [GENDLT-15] Fixes to previous integrations from review - * [GENDLT-15] Safe re-allocations for databuffer - * [GENDLT-15] use the correct TEXTBUFSIZE - * [GENDLT-15] Optimize usege of strlen. Improved log level handling - * [GENDLT-15] Avoid buffer overrun with snprintf() - * [GENDLT-15] Check return value of dlt_user_log_write_start(_id) correctly - * [GENDLT-15] Reduce the number of applications if allocation fails - * [GENDLT-15] Make dlt_user_log_write_start inline - * [GENDLT-15] Improve errore checking in dlt_user_log_write_start_id - * [GENDLT-15] Use databussersize to avoid reallocations - * [GENDLT-15] Rename buffer size constant to avoid confusion - * [GENDLT-15] Better error handling when writing to FIFO - * [GENDLT-15] Remove duplicate msg initialization. - * [GENDLT-15] Optimize away multiple uses of strlen for one check - * [GDLT-4] Improve queue handling, allow for other messages while transferring a large file - * [GDLT-4] Limit maximum file queue to 256 files - * [GDLT-4] First working version of inotify for file transfer - * [GDLT-2] First test for filetransfer change - * [GDLT-2] Change to gzip wrapper format. Change file signature creation to account for file size, as inode number maybe duplicate when deleting and creating new files - * [GDLT-2] Fix bug while reading the options - * [GDLT-2] Allow for enabling/disabling compression for the separate directories - * [GDLT-2] Check if the file is already compressed - * [GDLT-2] Link with libz, fix a typo - * [GDLT-2] zlib based compression for dlt-system - * Cleaned some warnings generated from removing stale old code - -2.5.2 - - * Change to Mozilla Public License Version 2.0 - -2.5.1 - - * Fixed bug with comparinson between signed and unsigned integer and protection for a buffer overflow. - * Modified library for new test cases to corrupt data - related to the bug fix for testing signed and unsigned integer - * [GENDLT-20] Fixed bug to use old cmake version for copy file - * Replaced dlt-test-filetransfer-image.png with an own created image - * [GENDLT-21] Fixed bug: Message Counter (MCNT) should be increased but is always 0 - -2.5.0 - - * [GDLT-53] Man pages installation included - * .cproject and .project file for Eclipse included - * Update of doxygen documentation and generation - * Rework of root CMake project file, e.g. structure and compile options - * [GENDLT-16] Create variable in dlt-system.conf to configure the timeout of the filetransfer - * [GDLT-37] Extend automated test tools for parallel process/threads tests - * [GSW-138] API Extension to resend the log messages in the user buffer - * [GDLT-36] Prefixing of dlt_version.h fixed - * [GDLT-31] Tracefile content stored different under Ubuntu 64 bit version compared to Ubuntu/Win 32 Bit version fixed - * [GDLT-35] Compile warnings fixed - * [GSW-137] Wrong include gives error on compailing against dlt fixed - -2.4.2 - - * Added dynamic increasable ringbuffers to user lib and daemon. - * dlt-system filetransfer now recovers when file is deleted during filetransfer. - * Added check of file size when starting and deleting files during filetransfer - * Added chekc of shm buffer availability when push to shm - * Create abstraction of shm buffer management. - * Fixed buffer overflow problem in buffer library. - * Disabled share memory by default - disabled completely shared memory if not enabled. - -2.4.1 - - * Added dynamic increasable ringbuffers to user lib and dlt-daemon. - * Created abstraction of shm buffer management. - * dlt-system filetransfer now recovers when file is deleted during filetransfer. - * Added check of file size when starting and deleting files during filetransfer. - * Added check of shm buffer availability when push to shm. - -2.4.1 - - * Added internal logging facility to stdout, syslog or local file, configurable in configuration file. - * Added deamonise and signal handlers to dlt-system. - * Added manual pages. - * Added new API dlt_check_library_version() function. - * Fifo or SHM mode can be changed by compiler switch. - * Replaced SHM implementation. - * Fixed shared memory problem in DLT library during startup, if application is started before daemon. - * Fixed syslog adapter in dlt-system. - * Reverted API changes in dlt_register_app() function. - * DLT user library does not set the stack size of the receiver thread anymore. - -2.4.0 - - * New config files /etc/dlt.conf and /etc/dlt-system.conf must be adapted to the needs - * New DLT user lib API dlt_get_log_state() to get DLT client state - * New DLT user lib API to manage flow control (needed for bulk data logging) - * New DLT user lib API dlt_set_log_mode() to enable/disable internal/external trace - * New application dlt-system (filtransfer, proc file system logger,syslog udp adapter included) - * [GSW-66] File transfer over DLT. - * [GSW-43] Performance improvement for bulk data over DLT. - * [GSW-61] Replace command line parameter by configuration file - * [GSW-13] Support for keep-alive messages as configuration parameter - * [GSW-60] Extended offline DLT Trace memory handling. - * Removed filter implementation - -2.3.0 - - * [GSW-16] Systemd configuration for syslog to DLT dapater - * [GSW-62] DLT Library version check - * [GSW-28] Directory where persistent data is stored is not configurable - * [GSW-59] Statically allocated large array - * Added init script for Ubuntu - * Optional adding of gprof compile flags - * sprintf with float64 fails on ARM platform; disabled this function on QRM platform. - -2.2.0 - - * Moved build process completely to cmake - * Added commandline parameter -u to set ring buffer size - * Reduced cpu consumption needed by applications using DLT library - * Increased default ringbuffer size to 10024 bytes - * Changed delay in receiver routine to 100ms - -2.1.0 - - * DLT Viewer (QT) - * New dlt viewer (QT-based) implementated - * Moved to seperate project, see extra Release Notes for DLT Viewer (QT) - * DLT Viewer (WX) - Deprecated - * Old dlt viewer (WX) is removed now from package generation - * Moved to seperate project - * Removed filtering of messages during writing to a file - * DLT library: - * Functions dlt_file_read_raw() and dlt_file_read_header_raw() added - * Added support for raw messages in nonverbose mode - * Injection tables are now dynamically allocated - * Contexts are now dynamically allocated - * Added seperate file for platform float types (dlt_float_types.h) - and used this types. - Attention: This file must be adapted to each target platform. - * Removed signal handlers from dlt_user.c; SIGPIPE signal is ignored; atexit() handler still exists - * Function dlt_forward_msg() added - * DLT daemon: - * Small optimization in get_log_info() for one searched application with one searched context, - which is existing in the context table of the dlt daemon - * Optional syncing to serial header added - * Support for keep-alive messages, realized as seperate thread - * General: - * Combined dlt-test-user-multi and dlt-test-many to dlt-test-stress - * Extended dlt-test-client - * Added stress test3 to dlt-test-stress - * Added help to dlt-test-stress, printed if no test was selected - * Added dlt-test-internal - * Removed plugin support from dlt_receive and dlt_convert - * Extended documentation - * dlt viewer (wx): Fixed minor bug, it's possible now to compile the dlt viewer (wx) again under mingw under Windows - * DLT test programs: Fixed minor bug in dlt-test-user, test3f: Wrong counter was used - * Removed DLT_LOG calls in injection functions due to problems (application hangs) - -2.0.5 - - * DLT viewer: - * The default log level is now shown, if already known - * Renamed Filter->New.. to Filter->Delete all filter - * Enhanced performance - * DLT library: - * On crash or termination of application using the DLT library, - the registered context and application IDs are removed properly - (and are deregistered from DLT daemon) - * dlt_register_context_ll_ts() and Macro therefore added - * dlt_message_payload() has now additional type DLT_OUTPUT_ASCII_LIMITED - * dlt_message_header_flags() added - * DLT daemon: - * Support for dlt_register_context_ll_ts() added - * Enhanced support for get_log_info (all modes, 1 app all contexts, 1 app 1 context, all apps all contexts) - * Added -r option, for automatic sending context information to dlt client; if no client connection is available, - this information is stored in history buffer in dlt daemon - * Several internal performance optimizations: - * dlt_daemon_context_find(), dlt_daemon_application_find(): Now O(log n) instead O(n) - * Several functions optimized - * Unnecessary functions removed - * General: - * Moved definition of struct DltUser from dlt_user_private.h to dlt_user.h - * dlt.h includes now dlt_common.h - * Extended dlt-test-user and dlt-test-client applications - * DLT daemon/DLT library: Fixed bug in Filter Delete - * DLT daemon: Fixed bug in dlt daemon which leads to a crash, when starting/stoping application, then sending - new log level to context of this (now not running) application. - * DLT daemon: Fixed bug in unregister application - * DLT daemon: Fixed bug in reattach to daemon - * DLT library: Fixed bug in send function - * DLT viewer: Fixed bug in set default log level - -2.0.4 - - * License has changed from ADRLPD to ADRLRM - * DLT viewer: - * Support for non-verbose mode (as FIBEX plugin) - * DLT library: - * Support for non-verbose mode (as FIBEX plugin) - * dlt_message_print_* functions added - * Semaphore calls added to enable multi-threading - * Changed injection interface from direct usage to callback - * Requested log level and trace status is set immediately - in dlt_set_application_ll_ts_limit() - * Implemented receiver thread in DLT library - (used for setting of log level/trace status and for injection handling) - * Added signal-handler and atexit-handler for cleanup (calls dlt_free()) - * General: - * Added implementation of clientlib and testclient for Windows - * Both adaptors sends now log messages with log level DLT_LOG_INFO - * Multi-threading example in src/tests/dlt-test-user-multi added - * DLT viewer: Right mouse button for loading plugin descriptions (MOST-/Fibex-XML File) - is now working (also in Windows) - * DLT library: Fixed bug in dlt_print_mixed_string() - * DLT library: Fixed bug in dlt_daemon_contexts_get_next_con_id() - * DLT daemon: dlt_daemon_process_user_message_unregister_application() also removes now - all corresponding contexts - * DLT daemon: Added security check to dlt_daemon_control_get_log_info() in order to avoid crash - which occured under special circumstances - * DLT daemon: Register app now opens the connection to the DLT library, - unregister app closes the connection (was before in register context) - * Added -lrt to package config file - * Resolved dependency from dlt_client.h to dlt_common.h -> dlt_common.h is now public - -2.0.3 - - * DLT viewer: - * Reduced load if idle - * Modified behaviour of settings in dlt-viewer - * Always open tmpfile in dlt-viewer if nothing other is specified - * File->Clear added - * DLT daemon: - * Added several checks within code - * DLT library: - * Added several checks within code - * Enhanced local print modes: - a environment variable now can be used to control local print mode: - Variable: DLT_LOCAL_PRINT_MODE - Values : "AUTOMATIC" (local print only, if dlt-daemon connection is not - available at startup of program using DLT library) - "FORCE_ON" (always do local print) - "FORCE_OFF" (never do local print) - * A client library for writing console client applications (Linux) is now available. - dlt-receiver and dlt-test-client uses this new library code - * General: - * Added seperate file for DltMostMessageHeader type - * Added seperate file for DLT protocol values - * Relaxed checks for passing trace messages to plugin handler - * Tested and improved MOST plugin - * Support for float (32 Bit) and double (64 Bit) values - * Code fragments for winclientlib and wintestclient added - * DLT library: Fixed bug in DLT_IMPORT_CONTEXT - * DLT library: Fixed bug in dlt_plugin_print() and dlt_most_payload() - * DLT daemon and library: Fixed bug in handling of description strings - * DLT viewer: Fixed bug in RMB Click for loading plugin description - * General: Fixed parsing and printing of MOST messages - * Several small bugs fixed - -2.0.2 - - * DLT viewer: - * Showing timestamp - * Compiles now with MS Visual C++ - * Support for loading multiple descriptions - of plugins is now possible (*) - * Plugin description can be loaded individually - by Right-mouse-button (*) - * DLT daemon: - * Overflow message is now stored in history buffer, - if necessary - * DLT library: - * Ring-buffer for injection messages implemented - * History Buffer for Startup + Overflow implemented - * Setting of maximum logged log level/trace status for - application triggered by application is now possible - * Optional local output of Log message is now possible - * General: - * Support for ARTIS Box implemented (all, without GUI) - * Support for timestamp in standardheader extras added - * Support for ECU ID in standardheader extras added; - this value can be overwritten by the DLT daemon - * DLT viewer: - * Store and load application and context description fixed - * Fixed crash on termination of Windows version - * DLT console utilities: - * Fixed printing of filter ids - * General: - * Big Endian/Little Endian support tested and fixed - * Fixed writing and reading of locally created dlt files - * Several smaller bugs fixed - -2.0.1 - - * Full support for serial connection between DLT daemon and DLT Viewer - * Several small bugs fixed in DLT Viewer - -2.0.0 - - * Initial Release of new DLT daemon Version 2 including the new DLT Client DLT Viewer - * Initial Release - +Diagnostic Log and Trace - Release Notes +========================================= +Alexander Wenzel + +Version +------- +2.11.0 STABLE + +Changes +------- + +2.11.0 + * New macros for Format of Hex and Binary. + * Enable dbus trace when adaptor starts up. + * Added configuration of dbus filter. + * Fixed segmented messages arguments to standard. + * First implementation of DLT DBus adapter. + * DLT_CSTRING implementation non verbose mode. + * Added new examples which can be manually build against DLt library. + * Send ECU Id if enabled and added library API to change. + * Send timestamp can be disabled by new API. + * Send session/process id by default and add configuration API. + * Send extended header in non verbose mode by default and add new API to change setting. + * Make daemon buffer size configurable + +2.10.0 + + * Bug 184 - /tmp/dltpipes directory does not exist before dlt-daemon is started, logging disabled + * Updated authors information. + * Fixed missing variable declaration when systemd not enabled. + * Fixed: all possible malloc, sprintf and strcpy problems + * Fixed: Creation of dltpipes directory is too late. + * Cygwin port: cygwin patch, signal handling patch and cppcheck and install lib dll to correct location on Windows. + * Fixed compiler warnings with 32Bit gcc compiler. + * Fixed: Fixed offline trace and new send functions issues + * Fixed: Bug 172 - DLT system crashes because of wrong journald adaptor implementation + * DLT Common API Wrapper. + * Removed dlt_free from example and test applications, already called from exit handler. + * Fixed missing dlt_receiver_remove in dlt_daemon_process_user_xxx functions. + * Use LIB_SUFFIX as lib installation path. + * Fixed serial port not working anymore. + * Added log output of created socket/port In init phase 2 - socket creation + * Defined return value for dlt_message_read(). + * Cleanup of send return values.Further cleanup of send restructure. + * Moved daemon client functions to new source file. + * Centralised send function to client.Introduced connection state to dlt daemon. + * Removed check of double registration of contexts in user library, already checked by daemon. + * When using DLT in console mode on a 64-bit machine, timestamps are corrupted due to an address of a 32-bit value being cast to a 64-bit pointer. + * Bug 3 - Cmake does not check for zlib for dlt-daemon compilation. + * Added new control message timezone. + * Fixed deadlock after wrong merge.. + * Fix potential buffer overflow in offline trace. + * Fix deadlock in dlt_user_log_reattach_to_daemon(void). + * Fixed possible crash when runtime configurations files are corrupted. + * Environement variables added to configure internal logging in library. + * Reduce Timeout between filetransfer packets. + * Close socket when send fails. + * Replace threads by timing fds for ecu version, timing packets and watchdog. + * Added conntection info and unregister context control messages. + * Configurable Timeout on send. + * Added further checks to dlt_buffer. + * atexit handler fix. + * Add threadnames to libdlt threads. + * Security fix on DLT pipes. + * Reduce usage of SEM_LOCK in application library and reset pointers. + * Fix: Systemd Journal Adapter provides corrupted output. + * Fix: Install Example service file only when example enabled + +2.9.1 + + * Implementation of command line tool dlt-control. + * Fix file transfer bug. + * Bug 44 - Don't print "Buffer full" message from DLT daemon for each trace. + * Yocto fix in build builds. + * Fixed: security issue in dlt-system-shell regarding strncpy. + * Fixed: Security Issue by Command Injection in DLT System. + * systemd/CMakeLists: Remove SYSTEMD_CONFIGURATIONS_FILES_DIR existance check. + * Bug 85 - Include of dlt.h leads to compiler warning. + * Bug 84 - Adding utf8 support to dlt-daemon, dlt-viewer. Modified patch, originally provided by Stefan Vacek. + * systemd journal support added. + * spec file does not package man files when cmake is run with -DWITH_DOC=OFF + * added length check for paths of files to be transferred + * Semaphores and Pointer passing insteasd by value and otehr coverity issue fixes + * Fixed several issues in DLT filetransfer. + * added creation date and a simple hash on the file name for to improve the uniqueness of getFileSerialNumber + * modified filetransfer to be more robust in restarting transfers + * Remove dangling DLT_SEM_FREE from dlt_user_queue_resend + * Unifed ECU version sending functions + * Refinements due to problems reported by static code analysis + * Spec file does no more package man files when cmake is run with -DWITH_DOC=OFF + * Made the APID strings in dlt-test-multi-process counting from 00-99 + * Added creation date and a simple hash on the file name for to improve the uniqueness of getFileSerialNumber + * File Transfer: improved robustness in case of restarted ECU/dlt-system with interrupted transfers + +2.9.0 + + * Changed documentation and man pages into asciidoc format. + * Increased buffer sizes for DLT user library and DLT daemon + * [GDLT-120]: truncated and Segmented network tracing + * [GDLT-137]: Automatically try resending of user buffer after FIFO full + * [GSWD-85]: Added authors file + +2.8.0 + + * [GDLT-115]: Encapsulate user macros + * Fix register app and register context was not stored in buffer when FIFO is full. Other controll messages still not saved in buffer. + * Create new fifo only when same application registers with different pid.' + * Do not register appliction again, if already registered. + * Fixed filetransfer not checking buffer fill level. + +2.7.0 + + * [GDLT-24] Fixing compiler warnings + * [GDLT-94] Optional sending periodic software version messages. See man pages for more informations + * [GENDLT-26] Check for description length sanity + * [GENDLT-24] Crash on invalid injection message fixed + * [GDLT-93] Add -Wextra flags for compilation Fixed all the warnings that + * [GDLT-90] Optional: systemd watchdog concept in dlt-system and dlt-daemon + * [GDLT-67] Re-implemented dlt-system. Read full commit message for more information + +2.6.2 + + * [GDLT-89] Fixed daemon doesn't sent the persistent log level + * [GDLT-88] Fixed wrong initalization order using offline trace function + +2.6.1 + + * Add _GNU_SOURCE Definition to be able to use O_CLOEXEC + * Added important SEM_FREE in the daemon and closing fd in the filetransfer + * [GDLT-3] Fixed missing semaphore around dlt_buffer_push3 + * [GDLT-86] Fixed dlt_free uses absolute file path /tmp and not DLT_USER_DEFINE define + * [D4099] Check for duplicate file handles, and clean them up if found + * [GDLT-85] Pipes opened multiple times for the same application pid fixed + * [GDLT-82] Child process inherits file descriptors openend by their parent fixed + * [GDLT-84] Instead of calling the injection callback, store a pointer to it and the required parameter data fixed + * [GDLT-70] Check for malloc failures and return errors where applicable + * [GDLT-47] Avoid discarding old contexts if no new memory can be allocate + * [GDLT-69] Fixed bug in dlt-test-multi-process shares context between threads + +2.6.0 + + * [GDLT-75] Use old style directory check on startup + * [GENDLT-21] Move mcnt from DltContextData to DltContext + * [GENDLT-15] Fixes to previous integrations from review + * [GENDLT-15] Safe re-allocations for databuffer + * [GENDLT-15] use the correct TEXTBUFSIZE + * [GENDLT-15] Optimize usege of strlen. Improved log level handling + * [GENDLT-15] Avoid buffer overrun with snprintf() + * [GENDLT-15] Check return value of dlt_user_log_write_start(_id) correctly + * [GENDLT-15] Reduce the number of applications if allocation fails + * [GENDLT-15] Make dlt_user_log_write_start inline + * [GENDLT-15] Improve errore checking in dlt_user_log_write_start_id + * [GENDLT-15] Use databussersize to avoid reallocations + * [GENDLT-15] Rename buffer size constant to avoid confusion + * [GENDLT-15] Better error handling when writing to FIFO + * [GENDLT-15] Remove duplicate msg initialization. + * [GENDLT-15] Optimize away multiple uses of strlen for one check + * [GDLT-4] Improve queue handling, allow for other messages while transferring a large file + * [GDLT-4] Limit maximum file queue to 256 files + * [GDLT-4] First working version of inotify for file transfer + * [GDLT-2] First test for filetransfer change + * [GDLT-2] Change to gzip wrapper format. Change file signature creation to account for file size, as inode number maybe duplicate when deleting and creating new files + * [GDLT-2] Fix bug while reading the options + * [GDLT-2] Allow for enabling/disabling compression for the separate directories + * [GDLT-2] Check if the file is already compressed + * [GDLT-2] Link with libz, fix a typo + * [GDLT-2] zlib based compression for dlt-system + * Cleaned some warnings generated from removing stale old code + +2.5.2 + + * Change to Mozilla Public License Version 2.0 + +2.5.1 + + * Fixed bug with comparinson between signed and unsigned integer and protection for a buffer overflow. + * Modified library for new test cases to corrupt data - related to the bug fix for testing signed and unsigned integer + * [GENDLT-20] Fixed bug to use old cmake version for copy file + * Replaced dlt-test-filetransfer-image.png with an own created image + * [GENDLT-21] Fixed bug: Message Counter (MCNT) should be increased but is always 0 + +2.5.0 + + * [GDLT-53] Man pages installation included + * .cproject and .project file for Eclipse included + * Update of doxygen documentation and generation + * Rework of root CMake project file, e.g. structure and compile options + * [GENDLT-16] Create variable in dlt-system.conf to configure the timeout of the filetransfer + * [GDLT-37] Extend automated test tools for parallel process/threads tests + * [GSW-138] API Extension to resend the log messages in the user buffer + * [GDLT-36] Prefixing of dlt_version.h fixed + * [GDLT-31] Tracefile content stored different under Ubuntu 64 bit version compared to Ubuntu/Win 32 Bit version fixed + * [GDLT-35] Compile warnings fixed + * [GSW-137] Wrong include gives error on compailing against dlt fixed + +2.4.2 + + * Added dynamic increasable ringbuffers to user lib and daemon. + * dlt-system filetransfer now recovers when file is deleted during filetransfer. + * Added check of file size when starting and deleting files during filetransfer + * Added chekc of shm buffer availability when push to shm + * Create abstraction of shm buffer management. + * Fixed buffer overflow problem in buffer library. + * Disabled share memory by default - disabled completely shared memory if not enabled. + +2.4.1 + + * Added dynamic increasable ringbuffers to user lib and dlt-daemon. + * Created abstraction of shm buffer management. + * dlt-system filetransfer now recovers when file is deleted during filetransfer. + * Added check of file size when starting and deleting files during filetransfer. + * Added check of shm buffer availability when push to shm. + +2.4.1 + + * Added internal logging facility to stdout, syslog or local file, configurable in configuration file. + * Added deamonise and signal handlers to dlt-system. + * Added manual pages. + * Added new API dlt_check_library_version() function. + * Fifo or SHM mode can be changed by compiler switch. + * Replaced SHM implementation. + * Fixed shared memory problem in DLT library during startup, if application is started before daemon. + * Fixed syslog adapter in dlt-system. + * Reverted API changes in dlt_register_app() function. + * DLT user library does not set the stack size of the receiver thread anymore. + +2.4.0 + + * New config files /etc/dlt.conf and /etc/dlt-system.conf must be adapted to the needs + * New DLT user lib API dlt_get_log_state() to get DLT client state + * New DLT user lib API to manage flow control (needed for bulk data logging) + * New DLT user lib API dlt_set_log_mode() to enable/disable internal/external trace + * New application dlt-system (filtransfer, proc file system logger,syslog udp adapter included) + * [GSW-66] File transfer over DLT. + * [GSW-43] Performance improvement for bulk data over DLT. + * [GSW-61] Replace command line parameter by configuration file + * [GSW-13] Support for keep-alive messages as configuration parameter + * [GSW-60] Extended offline DLT Trace memory handling. + * Removed filter implementation + +2.3.0 + + * [GSW-16] Systemd configuration for syslog to DLT dapater + * [GSW-62] DLT Library version check + * [GSW-28] Directory where persistent data is stored is not configurable + * [GSW-59] Statically allocated large array + * Added init script for Ubuntu + * Optional adding of gprof compile flags + * sprintf with float64 fails on ARM platform; disabled this function on QRM platform. + +2.2.0 + + * Moved build process completely to cmake + * Added commandline parameter -u to set ring buffer size + * Reduced cpu consumption needed by applications using DLT library + * Increased default ringbuffer size to 10024 bytes + * Changed delay in receiver routine to 100ms + +2.1.0 + + * DLT Viewer (QT) + * New dlt viewer (QT-based) implementated + * Moved to seperate project, see extra Release Notes for DLT Viewer (QT) + * DLT Viewer (WX) - Deprecated + * Old dlt viewer (WX) is removed now from package generation + * Moved to seperate project + * Removed filtering of messages during writing to a file + * DLT library: + * Functions dlt_file_read_raw() and dlt_file_read_header_raw() added + * Added support for raw messages in nonverbose mode + * Injection tables are now dynamically allocated + * Contexts are now dynamically allocated + * Added seperate file for platform float types (dlt_float_types.h) + and used this types. + Attention: This file must be adapted to each target platform. + * Removed signal handlers from dlt_user.c; SIGPIPE signal is ignored; atexit() handler still exists + * Function dlt_forward_msg() added + * DLT daemon: + * Small optimization in get_log_info() for one searched application with one searched context, + which is existing in the context table of the dlt daemon + * Optional syncing to serial header added + * Support for keep-alive messages, realized as seperate thread + * General: + * Combined dlt-test-user-multi and dlt-test-many to dlt-test-stress + * Extended dlt-test-client + * Added stress test3 to dlt-test-stress + * Added help to dlt-test-stress, printed if no test was selected + * Added dlt-test-internal + * Removed plugin support from dlt_receive and dlt_convert + * Extended documentation + * dlt viewer (wx): Fixed minor bug, it's possible now to compile the dlt viewer (wx) again under mingw under Windows + * DLT test programs: Fixed minor bug in dlt-test-user, test3f: Wrong counter was used + * Removed DLT_LOG calls in injection functions due to problems (application hangs) + +2.0.5 + + * DLT viewer: + * The default log level is now shown, if already known + * Renamed Filter->New.. to Filter->Delete all filter + * Enhanced performance + * DLT library: + * On crash or termination of application using the DLT library, + the registered context and application IDs are removed properly + (and are deregistered from DLT daemon) + * dlt_register_context_ll_ts() and Macro therefore added + * dlt_message_payload() has now additional type DLT_OUTPUT_ASCII_LIMITED + * dlt_message_header_flags() added + * DLT daemon: + * Support for dlt_register_context_ll_ts() added + * Enhanced support for get_log_info (all modes, 1 app all contexts, 1 app 1 context, all apps all contexts) + * Added -r option, for automatic sending context information to dlt client; if no client connection is available, + this information is stored in history buffer in dlt daemon + * Several internal performance optimizations: + * dlt_daemon_context_find(), dlt_daemon_application_find(): Now O(log n) instead O(n) + * Several functions optimized + * Unnecessary functions removed + * General: + * Moved definition of struct DltUser from dlt_user_private.h to dlt_user.h + * dlt.h includes now dlt_common.h + * Extended dlt-test-user and dlt-test-client applications + * DLT daemon/DLT library: Fixed bug in Filter Delete + * DLT daemon: Fixed bug in dlt daemon which leads to a crash, when starting/stoping application, then sending + new log level to context of this (now not running) application. + * DLT daemon: Fixed bug in unregister application + * DLT daemon: Fixed bug in reattach to daemon + * DLT library: Fixed bug in send function + * DLT viewer: Fixed bug in set default log level + +2.0.4 + + * License has changed from ADRLPD to ADRLRM + * DLT viewer: + * Support for non-verbose mode (as FIBEX plugin) + * DLT library: + * Support for non-verbose mode (as FIBEX plugin) + * dlt_message_print_* functions added + * Semaphore calls added to enable multi-threading + * Changed injection interface from direct usage to callback + * Requested log level and trace status is set immediately + in dlt_set_application_ll_ts_limit() + * Implemented receiver thread in DLT library + (used for setting of log level/trace status and for injection handling) + * Added signal-handler and atexit-handler for cleanup (calls dlt_free()) + * General: + * Added implementation of clientlib and testclient for Windows + * Both adaptors sends now log messages with log level DLT_LOG_INFO + * Multi-threading example in src/tests/dlt-test-user-multi added + * DLT viewer: Right mouse button for loading plugin descriptions (MOST-/Fibex-XML File) + is now working (also in Windows) + * DLT library: Fixed bug in dlt_print_mixed_string() + * DLT library: Fixed bug in dlt_daemon_contexts_get_next_con_id() + * DLT daemon: dlt_daemon_process_user_message_unregister_application() also removes now + all corresponding contexts + * DLT daemon: Added security check to dlt_daemon_control_get_log_info() in order to avoid crash + which occured under special circumstances + * DLT daemon: Register app now opens the connection to the DLT library, + unregister app closes the connection (was before in register context) + * Added -lrt to package config file + * Resolved dependency from dlt_client.h to dlt_common.h -> dlt_common.h is now public + +2.0.3 + + * DLT viewer: + * Reduced load if idle + * Modified behaviour of settings in dlt-viewer + * Always open tmpfile in dlt-viewer if nothing other is specified + * File->Clear added + * DLT daemon: + * Added several checks within code + * DLT library: + * Added several checks within code + * Enhanced local print modes: + a environment variable now can be used to control local print mode: + Variable: DLT_LOCAL_PRINT_MODE + Values : "AUTOMATIC" (local print only, if dlt-daemon connection is not + available at startup of program using DLT library) + "FORCE_ON" (always do local print) + "FORCE_OFF" (never do local print) + * A client library for writing console client applications (Linux) is now available. + dlt-receiver and dlt-test-client uses this new library code + * General: + * Added seperate file for DltMostMessageHeader type + * Added seperate file for DLT protocol values + * Relaxed checks for passing trace messages to plugin handler + * Tested and improved MOST plugin + * Support for float (32 Bit) and double (64 Bit) values + * Code fragments for winclientlib and wintestclient added + * DLT library: Fixed bug in DLT_IMPORT_CONTEXT + * DLT library: Fixed bug in dlt_plugin_print() and dlt_most_payload() + * DLT daemon and library: Fixed bug in handling of description strings + * DLT viewer: Fixed bug in RMB Click for loading plugin description + * General: Fixed parsing and printing of MOST messages + * Several small bugs fixed + +2.0.2 + + * DLT viewer: + * Showing timestamp + * Compiles now with MS Visual C++ + * Support for loading multiple descriptions + of plugins is now possible (*) + * Plugin description can be loaded individually + by Right-mouse-button (*) + * DLT daemon: + * Overflow message is now stored in history buffer, + if necessary + * DLT library: + * Ring-buffer for injection messages implemented + * History Buffer for Startup + Overflow implemented + * Setting of maximum logged log level/trace status for + application triggered by application is now possible + * Optional local output of Log message is now possible + * General: + * Support for ARTIS Box implemented (all, without GUI) + * Support for timestamp in standardheader extras added + * Support for ECU ID in standardheader extras added; + this value can be overwritten by the DLT daemon + * DLT viewer: + * Store and load application and context description fixed + * Fixed crash on termination of Windows version + * DLT console utilities: + * Fixed printing of filter ids + * General: + * Big Endian/Little Endian support tested and fixed + * Fixed writing and reading of locally created dlt files + * Several smaller bugs fixed + +2.0.1 + + * Full support for serial connection between DLT daemon and DLT Viewer + * Several small bugs fixed in DLT Viewer + +2.0.0 + + * Initial Release of new DLT daemon Version 2 including the new DLT Client DLT Viewer + * Initial Release + diff --git a/include/dlt/dlt.h b/include/dlt/dlt.h index 5c2d118..e4bc367 100755 --- a/include/dlt/dlt.h +++ b/include/dlt/dlt.h @@ -1,29 +1,29 @@ -/** - * @licence app begin@ - * Copyright (C) 2012 BMW AG - * - * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps. - * - * Contributions are licensed to the GENIVI Alliance under one or more - * Contribution License Agreements. - * - * \copyright - * This Source Code Form is subject to the terms of the - * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with - * this file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * - * \author Alexander Wenzel BMW 2011-2012 - * - * \file dlt.h - * For further information see http://www.genivi.org/. - * @licence end@ - */ - -/******************************************************************************* -** ** -** SRC-MODULE: dlt.h ** -** ** +/** + * @licence app begin@ + * Copyright (C) 2012 BMW AG + * + * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps. + * + * Contributions are licensed to the GENIVI Alliance under one or more + * Contribution License Agreements. + * + * \copyright + * This Source Code Form is subject to the terms of the + * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with + * this file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * + * \author Alexander Wenzel BMW 2011-2012 + * + * \file dlt.h + * For further information see http://www.genivi.org/. + * @licence end@ + */ + +/******************************************************************************* +** ** +** SRC-MODULE: dlt.h ** +** ** ** TARGET : linux ** ** ** ** PROJECT : DLT ** @@ -49,25 +49,25 @@ ** -------- ------------------------- ---------------------------------- ** ** aw Alexander Wenzel BMW ** ** mk Markus Klein Fraunhofer ESK ** -*******************************************************************************/ - -/******************************************************************************* -** Revision Control History ** -*******************************************************************************/ - -/* - * $LastChangedRevision: 1670 $ - * $LastChangedDate: 2011-04-08 15:12:06 +0200 (Fr, 08. Apr 2011) $ - * $LastChangedBy$ - Initials Date Comment - aw 13.01.2010 initial - */ - -#ifndef DLT_H -#define DLT_H +*******************************************************************************/ + +/******************************************************************************* +** Revision Control History ** +*******************************************************************************/ + +/* + * $LastChangedRevision: 1670 $ + * $LastChangedDate: 2011-04-08 15:12:06 +0200 (Fr, 08. Apr 2011) $ + * $LastChangedBy$ + Initials Date Comment + aw 13.01.2010 initial + */ + +#ifndef DLT_H +#define DLT_H + +#include "dlt_common.h" +#include "dlt_user.h" + +#endif /* DLT_H */ -#include "dlt_common.h" -#include "dlt_user.h" - -#endif /* DLT_H */ - diff --git a/include/dlt/dlt_client.h b/include/dlt/dlt_client.h index ac9d61e..29c7c1b 100755 --- a/include/dlt/dlt_client.h +++ b/include/dlt/dlt_client.h @@ -1,30 +1,30 @@ -/** - * @licence app begin@ - * Copyright (C) 2012 BMW AG - * - * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps. - * - * Contributions are licensed to the GENIVI Alliance under one or more - * Contribution License Agreements. - * - * \copyright - * This Source Code Form is subject to the terms of the - * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with - * this file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * - * \author Alexander Wenzel BMW 2011-2012 - * - * \file dlt_client.h - * For further information see http://www.genivi.org/. - * @licence end@ - */ - - -/******************************************************************************* -** ** -** SRC-MODULE: dlt_client.h ** -** ** +/** + * @licence app begin@ + * Copyright (C) 2012 BMW AG + * + * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps. + * + * Contributions are licensed to the GENIVI Alliance under one or more + * Contribution License Agreements. + * + * \copyright + * This Source Code Form is subject to the terms of the + * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with + * this file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * + * \author Alexander Wenzel BMW 2011-2012 + * + * \file dlt_client.h + * For further information see http://www.genivi.org/. + * @licence end@ + */ + + +/******************************************************************************* +** ** +** SRC-MODULE: dlt_client.h ** +** ** ** TARGET : linux ** ** ** ** PROJECT : DLT ** @@ -50,44 +50,44 @@ ** -------- ------------------------- ---------------------------------- ** ** aw Alexander Wenzel BMW ** ** mk Markus Klein Fraunhofer ESK ** -*******************************************************************************/ - -/******************************************************************************* -** Revision Control History ** -*******************************************************************************/ - -/* - * $LastChangedRevision$ - * $LastChangedDate$ - * $LastChangedBy$ - */ - -#ifndef DLT_CLIENT_H -#define DLT_CLIENT_H - -/** - \defgroup clientapi DLT Client API - \addtogroup clientapi - \{ -*/ - -#include "dlt_types.h" -#include "dlt_common.h" - -typedef struct -{ - DltReceiver receiver; /**< receiver pointer to dlt receiver structure */ - int sock; /**< sock Connection handle/socket */ - char *servIP; /**< servIP IP adress/Hostname of TCP/IP interface */ - char *serialDevice; /**< serialDevice Devicename of serial device */ - speed_t baudrate; /**< baudrate Baudrate of serial interface, as speed_t */ - int serial_mode; /**< serial_mode Serial mode enabled =1, disabled =0 */ -} DltClient; - -#ifdef __cplusplus -extern "C" { -#endif - +*******************************************************************************/ + +/******************************************************************************* +** Revision Control History ** +*******************************************************************************/ + +/* + * $LastChangedRevision$ + * $LastChangedDate$ + * $LastChangedBy$ + */ + +#ifndef DLT_CLIENT_H +#define DLT_CLIENT_H + +/** + \defgroup clientapi DLT Client API + \addtogroup clientapi + \{ +*/ + +#include "dlt_types.h" +#include "dlt_common.h" + +typedef struct +{ + DltReceiver receiver; /**< receiver pointer to dlt receiver structure */ + int sock; /**< sock Connection handle/socket */ + char *servIP; /**< servIP IP adress/Hostname of TCP/IP interface */ + char *serialDevice; /**< serialDevice Devicename of serial device */ + speed_t baudrate; /**< baudrate Baudrate of serial interface, as speed_t */ + int serial_mode; /**< serial_mode Serial mode enabled =1, disabled =0 */ +} DltClient; + +#ifdef __cplusplus +extern "C" { +#endif + void dlt_client_register_message_callback(int (*registerd_callback) (DltMessage *message, void *data)); /** @@ -95,21 +95,21 @@ void dlt_client_register_message_callback(int (*registerd_callback) (DltMessage * @param client pointer to dlt client structure * @param verbose if set to true verbose information is printed out. * @return negative value if there was an error - */ + */ int dlt_client_init(DltClient *client, int verbose); /** * Connect to dlt daemon using the information from the dlt client structure * @param client pointer to dlt client structure * @param verbose if set to true verbose information is printed out. * @return negative value if there was an error - */ + */ int dlt_client_connect(DltClient *client, int verbose); /** * Cleanup dlt client structure * @param client pointer to dlt client structure * @param verbose if set to true verbose information is printed out. * @return negative value if there was an error - */ + */ int dlt_client_cleanup(DltClient *client, int verbose); /** * Main Loop of dlt client application @@ -117,18 +117,18 @@ int dlt_client_cleanup(DltClient *client, int verbose); * @param data pointer to data to be provided to the main loop * @param verbose if set to true verbose information is printed out. * @return negative value if there was an error - */ + */ int dlt_client_main_loop(DltClient *client, void *data, int verbose); -/** - * Send ancontrol message to the dlt daemon - * @param client pointer to dlt client structure - * @param apid application id - * @param ctid context id - * @param payload Buffer filled with control message data - * @param size Size of control message data - * @return negative value if there was an error - */ -int dlt_client_send_ctrl_msg(DltClient *client, char *apid, char *ctid, uint8_t *payload, uint32_t size); +/** + * Send ancontrol message to the dlt daemon + * @param client pointer to dlt client structure + * @param apid application id + * @param ctid context id + * @param payload Buffer filled with control message data + * @param size Size of control message data + * @return negative value if there was an error + */ +int dlt_client_send_ctrl_msg(DltClient *client, char *apid, char *ctid, uint8_t *payload, uint32_t size); /** * Send an injection message to the dlt daemon * @param client pointer to dlt client structure @@ -138,74 +138,74 @@ int dlt_client_send_ctrl_msg(DltClient *client, char *apid, char *ctid, uint8_t * @param buffer Buffer filled with injection message data * @param size Size of injection data within buffer * @return negative value if there was an error - */ + */ int dlt_client_send_inject_msg(DltClient *client, char *apid, char *ctid, uint32_t serviceID, uint8_t *buffer, uint32_t size); -/** - * Send an set log level message to the dlt daemon - * @param client pointer to dlt client structure - * @param apid application id - * @param ctid context id - * @param SendLogLevel Log Level - * @return negative value if there was an error - */ -int dlt_client_send_log_level(DltClient *client, char *apid, char *ctid, uint8_t logLevel); -/** - * Send a set trace status message to the dlt daemon - * @param client pointer to dlt client structure - * @param apid application id - * @param ctid context id - * @param defaultTraceStatus Default Trace Status - * @return negative value if there was an error - */ -int dlt_client_send_trace_status(DltClient *client, char *apid, char *ctid, uint8_t traceStatus); -/** - * Send the default log level to the dlt daemon - * @param client pointer to dlt client structure - * @param defaultLogLevel Default Log Level - * @return negative value if there was an error - */ -int dlt_client_send_default_log_level(DltClient *client, uint8_t defaultLogLevel); -/** - * Send the default trace status to the dlt daemon - * @param client pointer to dlt client structure - * @param defaultTraceStatus Default Trace Status - * @return negative value if there was an error - */ -int dlt_client_send_default_trace_status(DltClient *client, uint8_t defaultTraceStatus); -/** - * Send the timing pakets status to the dlt daemon - * @param client pointer to dlt client structure - * @param timingPakets Timing pakets enabled - * @return negative value if there was an error - */ -int dlt_client_send_timing_pakets(DltClient *client, uint8_t timingPakets); -/** - * Send the store config command to the dlt daemon - * @param client pointer to dlt client structure - * @return negative value if there was an error - */ -int dlt_client_send_store_config(DltClient *client); -/** - * Send the reset to factory default command to the dlt daemon - * @param client pointer to dlt client structure - * @return negative value if there was an error - */ -int dlt_client_send_reset_to_factory_default(DltClient *client); - +/** + * Send an set log level message to the dlt daemon + * @param client pointer to dlt client structure + * @param apid application id + * @param ctid context id + * @param SendLogLevel Log Level + * @return negative value if there was an error + */ +int dlt_client_send_log_level(DltClient *client, char *apid, char *ctid, uint8_t logLevel); +/** + * Send a set trace status message to the dlt daemon + * @param client pointer to dlt client structure + * @param apid application id + * @param ctid context id + * @param defaultTraceStatus Default Trace Status + * @return negative value if there was an error + */ +int dlt_client_send_trace_status(DltClient *client, char *apid, char *ctid, uint8_t traceStatus); +/** + * Send the default log level to the dlt daemon + * @param client pointer to dlt client structure + * @param defaultLogLevel Default Log Level + * @return negative value if there was an error + */ +int dlt_client_send_default_log_level(DltClient *client, uint8_t defaultLogLevel); +/** + * Send the default trace status to the dlt daemon + * @param client pointer to dlt client structure + * @param defaultTraceStatus Default Trace Status + * @return negative value if there was an error + */ +int dlt_client_send_default_trace_status(DltClient *client, uint8_t defaultTraceStatus); +/** + * Send the timing pakets status to the dlt daemon + * @param client pointer to dlt client structure + * @param timingPakets Timing pakets enabled + * @return negative value if there was an error + */ +int dlt_client_send_timing_pakets(DltClient *client, uint8_t timingPakets); +/** + * Send the store config command to the dlt daemon + * @param client pointer to dlt client structure + * @return negative value if there was an error + */ +int dlt_client_send_store_config(DltClient *client); +/** + * Send the reset to factory default command to the dlt daemon + * @param client pointer to dlt client structure + * @return negative value if there was an error + */ +int dlt_client_send_reset_to_factory_default(DltClient *client); + /** * Set baudrate within dlt client structure * @param client pointer to dlt client structure * @param baudrate Baudrate * @return negative value if there was an error */ -int dlt_client_setbaudrate(DltClient *client, int baudrate); - -#ifdef __cplusplus -} -#endif - -/** - \} -*/ - -#endif /* DLT_CLIENT_H */ +int dlt_client_setbaudrate(DltClient *client, int baudrate); + +#ifdef __cplusplus +} +#endif + +/** + \} +*/ + +#endif /* DLT_CLIENT_H */ diff --git a/include/dlt/dlt_common_api.h b/include/dlt/dlt_common_api.h index f849567..c6670b5 100644 --- a/include/dlt/dlt_common_api.h +++ b/include/dlt/dlt_common_api.h @@ -1,29 +1,29 @@ -/** - * @licence app begin@ - * Copyright (C) 2014 BMW AG - * - * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps. - * - * Contributions are licensed to the GENIVI Alliance under one or more - * Contribution License Agreements. - * - * \copyright - * This Source Code Form is subject to the terms of the - * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with - * this file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * - * \author Alexander Wenzel BMW 2011-2012 - * - * \file dlt_common_api.h - * For further information see http://www.genivi.org/. - * @licence end@ - */ - -/******************************************************************************* -** ** -** SRC-MODULE: dlt_commpn_api.h ** -** ** +/** + * @licence app begin@ + * Copyright (C) 2014 BMW AG + * + * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps. + * + * Contributions are licensed to the GENIVI Alliance under one or more + * Contribution License Agreements. + * + * \copyright + * This Source Code Form is subject to the terms of the + * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with + * this file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * + * \author Alexander Wenzel BMW 2011-2012 + * + * \file dlt_common_api.h + * For further information see http://www.genivi.org/. + * @licence end@ + */ + +/******************************************************************************* +** ** +** SRC-MODULE: dlt_commpn_api.h ** +** ** ** TARGET : linux ** ** ** ** PROJECT : DLT ** @@ -47,195 +47,195 @@ ** Initials Name Company ** ** -------- ------------------------- ---------------------------------- ** ** aw Alexander Wenzel BMW ** -*******************************************************************************/ - -#ifndef DLT_COMMON_API_H -#define DLT_COMMON_API_H +*******************************************************************************/ + +#ifndef DLT_COMMON_API_H +#define DLT_COMMON_API_H + +#include "dlt.h" + +/** + * Create an object for a new context. + * Common API with DLT Embedded + * This macro has to be called first for every. + * @param CONTEXT object containing information about one special logging context + */ +/* #define DLT_DECLARE_CONTEXT(CONTEXT) */ +/* UNCHANGED */ + +/** + * Use an object of a new context created in another module. + * Common API with DLT Embedded + * This macro has to be called first for every. + * @param CONTEXT object containing information about one special logging context + */ +/* #define DLT_IMPORT_CONTEXT(CONTEXT) */ +/* UNCHANGED */ + +/** + * Register application. + * Common API with DLT Embedded + * @param APPID application id with maximal four characters + * @param DESCRIPTION ASCII string containing description + */ +/* #define DLT_REGISTER_APP(APPID,DESCRIPTION) */ +/* UNCHANGED */ + +/** + * Register context including application (with default log level and default trace status) + * Common API with DLT Embedded + * @param CONTEXT object containing information about one special logging context + * @param CONTEXTID context id with maximal four characters + * @param APPID context id with maximal four characters + * @param DESCRIPTION ASCII string containing description + */ +#define DLT_REGISTER_CONTEXT_APP(CONTEXT,CONTEXTID,APPID,DESCRIPTION) \ + DLT_REGISTER_CONTEXT(CONTEXT,CONTEXTID,DESCRIPTION) + +/** + * Send log message with variable list of messages (intended for verbose mode) + * Common API with DLT Embedded + * @param CONTEXT object containing information about one special logging context + * @param LOGLEVEL the log level of the log message + * @param ARGS variable list of arguments + */ +/*****************************************/ +#define DLT_LOG0(CONTEXT,LOGLEVEL) \ + DLT_LOG(CONTEXT, LOGLEVEL ) +/*****************************************/ +#define DLT_LOG1(CONTEXT,LOGLEVEL, ARGS1) \ + DLT_LOG(CONTEXT, LOGLEVEL, ARGS1) +/*****************************************/ +#define DLT_LOG2(CONTEXT,LOGLEVEL, ARGS1, ARGS2) \ + DLT_LOG(CONTEXT, LOGLEVEL, ARGS1, ARGS2) +/*****************************************/ +#define DLT_LOG3(CONTEXT,LOGLEVEL, ARGS1, ARGS2, ARGS3) \ + DLT_LOG(CONTEXT, LOGLEVEL, ARGS1, ARGS2, ARGS3) +/*****************************************/ +#define DLT_LOG4(CONTEXT,LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4) \ + DLT_LOG(CONTEXT, LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4) +/*****************************************/ +#define DLT_LOG5(CONTEXT,LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5) \ + DLT_LOG(CONTEXT, LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5) +/*****************************************/ +#define DLT_LOG6(CONTEXT,LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6) \ + DLT_LOG(CONTEXT, LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6) +/*****************************************/ +#define DLT_LOG7(CONTEXT,LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7) \ + DLT_LOG(CONTEXT, LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7) +/*****************************************/ +#define DLT_LOG8(CONTEXT,LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8) \ + DLT_LOG(CONTEXT, LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8) +/*****************************************/ +#define DLT_LOG9(CONTEXT,LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9) \ + DLT_LOG(CONTEXT, LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9) +/*****************************************/ +#define DLT_LOG10(CONTEXT,LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10) \ + DLT_LOG(CONTEXT, LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10) +/*****************************************/ +#define DLT_LOG11(CONTEXT,LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11) \ + DLT_LOG(CONTEXT, LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11) +/*****************************************/ +#define DLT_LOG12(CONTEXT,LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11, ARGS12) \ + DLT_LOG(CONTEXT, LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11, ARGS12) +/*****************************************/ +#define DLT_LOG13(CONTEXT,LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11, ARGS12, ARGS13) \ + DLT_LOG(CONTEXT, LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11, ARGS12, ARGS13) +/*****************************************/ +#define DLT_LOG14(CONTEXT,LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11, ARGS12, ARGS13, ARGS14) \ + DLT_LOG(CONTEXT, LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11, ARGS12, ARGS13, ARGS14) +/*****************************************/ +#define DLT_LOG15(CONTEXT,LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11, ARGS12, ARGS13, ARGS14, ARGS15) \ + DLT_LOG(CONTEXT, LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11, ARGS12, ARGS13, ARGS14, ARGS15) +/*****************************************/ +#define DLT_LOG16(CONTEXT,LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11, ARGS12, ARGS13, ARGS14, ARGS15, ARGS16) \ + DLT_LOG(CONTEXT, LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11, ARGS12, ARGS13, ARGS14, ARGS15, ARGS16) + +/** + * Send log message with variable list of messages (intended for non-verbose mode) + * Common API with DLT Embedded + * @param CONTEXT object containing information about one special logging context + * @param LOGLEVEL the log level of the log message + * @param MSGID the message id of log message + * @param ARGS variable list of arguments: + calls to DLT_STRING(), DLT_BOOL(), DLT_FLOAT32(), DLT_FLOAT64(), + DLT_INT(), DLT_UINT(), DLT_RAW() + */ +/*****************************************/ +#define DLT_LOG_ID0(CONTEXT,LOGLEVEL,MSGID) \ + DLT_LOG_ID(CONTEXT, LOGLEVEL, MSGID ) +/*****************************************/ +#define DLT_LOG_ID1(CONTEXT,LOGLEVEL,MSGID, ARGS1) \ + DLT_LOG_ID(CONTEXT, LOGLEVEL, MSGID, ARGS1) +/*****************************************/ +#define DLT_LOG_ID2(CONTEXT,LOGLEVEL,MSGID, ARGS1, ARGS2) \ + DLT_LOG_ID(CONTEXT, LOGLEVEL, MSGID, ARGS1, ARGS2) +/*****************************************/ +#define DLT_LOG_ID3(CONTEXT,LOGLEVEL,MSGID, ARGS1, ARGS2, ARGS3) \ + DLT_LOG_ID(CONTEXT, LOGLEVEL, MSGID, ARGS1, ARGS2, ARGS3) +/*****************************************/ +#define DLT_LOG_ID4(CONTEXT,LOGLEVEL,MSGID, ARGS1, ARGS2, ARGS3, ARGS4) \ + DLT_LOG_ID(CONTEXT, LOGLEVEL, MSGID, ARGS1, ARGS2, ARGS3, ARGS4) +/*****************************************/ +#define DLT_LOG_ID5(CONTEXT,LOGLEVEL,MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5) \ + DLT_LOG_ID(CONTEXT, LOGLEVEL, MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5) +/*****************************************/ +#define DLT_LOG_ID6(CONTEXT,LOGLEVEL,MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6) \ + DLT_LOG_ID(CONTEXT, LOGLEVEL, MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6) +/*****************************************/ +#define DLT_LOG_ID7(CONTEXT,LOGLEVEL,MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7) \ + DLT_LOG_ID(CONTEXT, LOGLEVEL, MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7) +/*****************************************/ +#define DLT_LOG_ID8(CONTEXT,LOGLEVEL,MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8) \ + DLT_LOG_ID(CONTEXT, LOGLEVEL, MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8) +/*****************************************/ +#define DLT_LOG_ID9(CONTEXT,LOGLEVEL,MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9) \ + DLT_LOG_ID(CONTEXT, LOGLEVEL, MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9) +/*****************************************/ +#define DLT_LOG_ID10(CONTEXT,LOGLEVEL,MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10) \ + DLT_LOG_ID(CONTEXT, LOGLEVEL, MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10) +/*****************************************/ +#define DLT_LOG_ID11(CONTEXT,LOGLEVEL,MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11) \ + DLT_LOG_ID(CONTEXT, LOGLEVEL, MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11) +/*****************************************/ +#define DLT_LOG_ID12(CONTEXT,LOGLEVEL,MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11, ARGS12) \ + DLT_LOG_ID(CONTEXT, LOGLEVEL, MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11, ARGS12) +/*****************************************/ +#define DLT_LOG_ID13(CONTEXT,LOGLEVEL,MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11, ARGS12, ARGS13) \ + DLT_LOG_ID(CONTEXT, LOGLEVEL, MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11, ARGS12, ARGS13) +/*****************************************/ +#define DLT_LOG_ID14(CONTEXT,LOGLEVEL,MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11, ARGS12, ARGS13, ARGS14) \ + DLT_LOG_ID(CONTEXT, LOGLEVEL, MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11, ARGS12, ARGS13, ARGS14) +/*****************************************/ +#define DLT_LOG_ID15(CONTEXT,LOGLEVEL,MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11, ARGS12, ARGS13, ARGS14, ARGS15) \ + DLT_LOG_ID(CONTEXT, LOGLEVEL, MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11, ARGS12, ARGS13, ARGS14, ARGS15) +/*****************************************/ +#define DLT_LOG_ID16(CONTEXT,LOGLEVEL,MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11, ARGS12, ARGS13, ARGS14, ARGS15, ARGS16) \ + DLT_LOG_ID(CONTEXT, LOGLEVEL, MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11, ARGS12, ARGS13, ARGS14, ARGS15, ARGS16) + +/** + * Unregister context. + * Common API with DLT Embedded + * @param CONTEXT object containing information about one special logging context + */ +/* #define DLT_UNREGISTER_CONTEXT(CONTEXT) */ +/* UNCHANGED */ + +/** + * Unregister application. + * Common API with DLT Embedded + */ +/* #define DLT_UNREGISTER_APP() */ +/* UNCHANGED */ + +/** + * Add string parameter to the log messsage. + * Common API with DLT Embedded + * In the future in none verbose mode the string will not be sent via DLT message. + * @param TEXT ASCII string + */ +/* #define DLT_CSTRING(TEXT) */ +/* UNCHANGED */ + +#endif /* DLT_COMMON_API_H */ -#include "dlt.h" - -/** - * Create an object for a new context. - * Common API with DLT Embedded - * This macro has to be called first for every. - * @param CONTEXT object containing information about one special logging context - */ -/* #define DLT_DECLARE_CONTEXT(CONTEXT) */ -/* UNCHANGED */ - -/** - * Use an object of a new context created in another module. - * Common API with DLT Embedded - * This macro has to be called first for every. - * @param CONTEXT object containing information about one special logging context - */ -/* #define DLT_IMPORT_CONTEXT(CONTEXT) */ -/* UNCHANGED */ - -/** - * Register application. - * Common API with DLT Embedded - * @param APPID application id with maximal four characters - * @param DESCRIPTION ASCII string containing description - */ -/* #define DLT_REGISTER_APP(APPID,DESCRIPTION) */ -/* UNCHANGED */ - -/** - * Register context including application (with default log level and default trace status) - * Common API with DLT Embedded - * @param CONTEXT object containing information about one special logging context - * @param CONTEXTID context id with maximal four characters - * @param APPID context id with maximal four characters - * @param DESCRIPTION ASCII string containing description - */ -#define DLT_REGISTER_CONTEXT_APP(CONTEXT,CONTEXTID,APPID,DESCRIPTION) \ - DLT_REGISTER_CONTEXT(CONTEXT,CONTEXTID,DESCRIPTION) - -/** - * Send log message with variable list of messages (intended for verbose mode) - * Common API with DLT Embedded - * @param CONTEXT object containing information about one special logging context - * @param LOGLEVEL the log level of the log message - * @param ARGS variable list of arguments - */ -/*****************************************/ -#define DLT_LOG0(CONTEXT,LOGLEVEL) \ - DLT_LOG(CONTEXT, LOGLEVEL ) -/*****************************************/ -#define DLT_LOG1(CONTEXT,LOGLEVEL, ARGS1) \ - DLT_LOG(CONTEXT, LOGLEVEL, ARGS1) -/*****************************************/ -#define DLT_LOG2(CONTEXT,LOGLEVEL, ARGS1, ARGS2) \ - DLT_LOG(CONTEXT, LOGLEVEL, ARGS1, ARGS2) -/*****************************************/ -#define DLT_LOG3(CONTEXT,LOGLEVEL, ARGS1, ARGS2, ARGS3) \ - DLT_LOG(CONTEXT, LOGLEVEL, ARGS1, ARGS2, ARGS3) -/*****************************************/ -#define DLT_LOG4(CONTEXT,LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4) \ - DLT_LOG(CONTEXT, LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4) -/*****************************************/ -#define DLT_LOG5(CONTEXT,LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5) \ - DLT_LOG(CONTEXT, LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5) -/*****************************************/ -#define DLT_LOG6(CONTEXT,LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6) \ - DLT_LOG(CONTEXT, LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6) -/*****************************************/ -#define DLT_LOG7(CONTEXT,LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7) \ - DLT_LOG(CONTEXT, LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7) -/*****************************************/ -#define DLT_LOG8(CONTEXT,LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8) \ - DLT_LOG(CONTEXT, LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8) -/*****************************************/ -#define DLT_LOG9(CONTEXT,LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9) \ - DLT_LOG(CONTEXT, LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9) -/*****************************************/ -#define DLT_LOG10(CONTEXT,LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10) \ - DLT_LOG(CONTEXT, LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10) -/*****************************************/ -#define DLT_LOG11(CONTEXT,LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11) \ - DLT_LOG(CONTEXT, LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11) -/*****************************************/ -#define DLT_LOG12(CONTEXT,LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11, ARGS12) \ - DLT_LOG(CONTEXT, LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11, ARGS12) -/*****************************************/ -#define DLT_LOG13(CONTEXT,LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11, ARGS12, ARGS13) \ - DLT_LOG(CONTEXT, LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11, ARGS12, ARGS13) -/*****************************************/ -#define DLT_LOG14(CONTEXT,LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11, ARGS12, ARGS13, ARGS14) \ - DLT_LOG(CONTEXT, LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11, ARGS12, ARGS13, ARGS14) -/*****************************************/ -#define DLT_LOG15(CONTEXT,LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11, ARGS12, ARGS13, ARGS14, ARGS15) \ - DLT_LOG(CONTEXT, LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11, ARGS12, ARGS13, ARGS14, ARGS15) -/*****************************************/ -#define DLT_LOG16(CONTEXT,LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11, ARGS12, ARGS13, ARGS14, ARGS15, ARGS16) \ - DLT_LOG(CONTEXT, LOGLEVEL, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11, ARGS12, ARGS13, ARGS14, ARGS15, ARGS16) - -/** - * Send log message with variable list of messages (intended for non-verbose mode) - * Common API with DLT Embedded - * @param CONTEXT object containing information about one special logging context - * @param LOGLEVEL the log level of the log message - * @param MSGID the message id of log message - * @param ARGS variable list of arguments: - calls to DLT_STRING(), DLT_BOOL(), DLT_FLOAT32(), DLT_FLOAT64(), - DLT_INT(), DLT_UINT(), DLT_RAW() - */ -/*****************************************/ -#define DLT_LOG_ID0(CONTEXT,LOGLEVEL,MSGID) \ - DLT_LOG_ID(CONTEXT, LOGLEVEL, MSGID ) -/*****************************************/ -#define DLT_LOG_ID1(CONTEXT,LOGLEVEL,MSGID, ARGS1) \ - DLT_LOG_ID(CONTEXT, LOGLEVEL, MSGID, ARGS1) -/*****************************************/ -#define DLT_LOG_ID2(CONTEXT,LOGLEVEL,MSGID, ARGS1, ARGS2) \ - DLT_LOG_ID(CONTEXT, LOGLEVEL, MSGID, ARGS1, ARGS2) -/*****************************************/ -#define DLT_LOG_ID3(CONTEXT,LOGLEVEL,MSGID, ARGS1, ARGS2, ARGS3) \ - DLT_LOG_ID(CONTEXT, LOGLEVEL, MSGID, ARGS1, ARGS2, ARGS3) -/*****************************************/ -#define DLT_LOG_ID4(CONTEXT,LOGLEVEL,MSGID, ARGS1, ARGS2, ARGS3, ARGS4) \ - DLT_LOG_ID(CONTEXT, LOGLEVEL, MSGID, ARGS1, ARGS2, ARGS3, ARGS4) -/*****************************************/ -#define DLT_LOG_ID5(CONTEXT,LOGLEVEL,MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5) \ - DLT_LOG_ID(CONTEXT, LOGLEVEL, MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5) -/*****************************************/ -#define DLT_LOG_ID6(CONTEXT,LOGLEVEL,MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6) \ - DLT_LOG_ID(CONTEXT, LOGLEVEL, MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6) -/*****************************************/ -#define DLT_LOG_ID7(CONTEXT,LOGLEVEL,MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7) \ - DLT_LOG_ID(CONTEXT, LOGLEVEL, MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7) -/*****************************************/ -#define DLT_LOG_ID8(CONTEXT,LOGLEVEL,MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8) \ - DLT_LOG_ID(CONTEXT, LOGLEVEL, MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8) -/*****************************************/ -#define DLT_LOG_ID9(CONTEXT,LOGLEVEL,MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9) \ - DLT_LOG_ID(CONTEXT, LOGLEVEL, MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9) -/*****************************************/ -#define DLT_LOG_ID10(CONTEXT,LOGLEVEL,MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10) \ - DLT_LOG_ID(CONTEXT, LOGLEVEL, MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10) -/*****************************************/ -#define DLT_LOG_ID11(CONTEXT,LOGLEVEL,MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11) \ - DLT_LOG_ID(CONTEXT, LOGLEVEL, MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11) -/*****************************************/ -#define DLT_LOG_ID12(CONTEXT,LOGLEVEL,MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11, ARGS12) \ - DLT_LOG_ID(CONTEXT, LOGLEVEL, MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11, ARGS12) -/*****************************************/ -#define DLT_LOG_ID13(CONTEXT,LOGLEVEL,MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11, ARGS12, ARGS13) \ - DLT_LOG_ID(CONTEXT, LOGLEVEL, MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11, ARGS12, ARGS13) -/*****************************************/ -#define DLT_LOG_ID14(CONTEXT,LOGLEVEL,MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11, ARGS12, ARGS13, ARGS14) \ - DLT_LOG_ID(CONTEXT, LOGLEVEL, MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11, ARGS12, ARGS13, ARGS14) -/*****************************************/ -#define DLT_LOG_ID15(CONTEXT,LOGLEVEL,MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11, ARGS12, ARGS13, ARGS14, ARGS15) \ - DLT_LOG_ID(CONTEXT, LOGLEVEL, MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11, ARGS12, ARGS13, ARGS14, ARGS15) -/*****************************************/ -#define DLT_LOG_ID16(CONTEXT,LOGLEVEL,MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11, ARGS12, ARGS13, ARGS14, ARGS15, ARGS16) \ - DLT_LOG_ID(CONTEXT, LOGLEVEL, MSGID, ARGS1, ARGS2, ARGS3, ARGS4, ARGS5, ARGS6, ARGS7, ARGS8, ARGS9, ARGS10, ARGS11, ARGS12, ARGS13, ARGS14, ARGS15, ARGS16) - -/** - * Unregister context. - * Common API with DLT Embedded - * @param CONTEXT object containing information about one special logging context - */ -/* #define DLT_UNREGISTER_CONTEXT(CONTEXT) */ -/* UNCHANGED */ - -/** - * Unregister application. - * Common API with DLT Embedded - */ -/* #define DLT_UNREGISTER_APP() */ -/* UNCHANGED */ - -/** - * Add string parameter to the log messsage. - * Common API with DLT Embedded - * In the future in none verbose mode the string will not be sent via DLT message. - * @param TEXT ASCII string - */ -/* #define DLT_CSTRING(TEXT) */ -/* UNCHANGED */ - -#endif /* DLT_COMMON_API_H */ - diff --git a/include/dlt/dlt_protocol.h b/include/dlt/dlt_protocol.h index 7bf8b1c..df5a33d 100755 --- a/include/dlt/dlt_protocol.h +++ b/include/dlt/dlt_protocol.h @@ -1,30 +1,30 @@ -/** - * @licence app begin@ - * Copyright (C) 2012 BMW AG - * - * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps. - * - * Contributions are licensed to the GENIVI Alliance under one or more - * Contribution License Agreements. - * - * \copyright - * This Source Code Form is subject to the terms of the - * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with - * this file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * - * \author Alexander Wenzel BMW 2011-2012 - * - * \file dlt_protocal.h - * For further information see http://www.genivi.org/. - * @licence end@ - */ - - -/******************************************************************************* -** ** -** SRC-MODULE: dlt_protocol.h ** -** ** +/** + * @licence app begin@ + * Copyright (C) 2012 BMW AG + * + * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps. + * + * Contributions are licensed to the GENIVI Alliance under one or more + * Contribution License Agreements. + * + * \copyright + * This Source Code Form is subject to the terms of the + * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with + * this file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * + * \author Alexander Wenzel BMW 2011-2012 + * + * \file dlt_protocal.h + * For further information see http://www.genivi.org/. + * @licence end@ + */ + + +/******************************************************************************* +** ** +** SRC-MODULE: dlt_protocol.h ** +** ** ** TARGET : linux ** ** ** ** PROJECT : DLT ** @@ -50,167 +50,167 @@ ** -------- ------------------------- ---------------------------------- ** ** aw Alexander Wenzel BMW ** ** mk Markus Klein Fraunhofer ESK ** -*******************************************************************************/ - -/******************************************************************************* -** Revision Control History ** -*******************************************************************************/ - -/* - * $LastChangedRevision$ - * $LastChangedDate$ - * $LastChangedBy$ - Initials Date Comment - aw 13.01.2010 initial - */ -#ifndef DLT_PROTOCOL_H -#define DLT_PROTOCOL_H - -/** - \defgroup protocolapi DLT Protocol API - \addtogroup protocolapi - \{ -*/ - -/* - * Definitions of the htyp parameter in standard header. - */ -#define DLT_HTYP_UEH 0x01 /**< use extended header */ -#define DLT_HTYP_MSBF 0x02 /**< MSB first */ -#define DLT_HTYP_WEID 0x04 /**< with ECU ID */ -#define DLT_HTYP_WSID 0x08 /**< with session ID */ -#define DLT_HTYP_WTMS 0x10 /**< with timestamp */ -#define DLT_HTYP_VERS 0xe0 /**< version number, 0x1 */ - -#define DLT_IS_HTYP_UEH(htyp) ((htyp) & DLT_HTYP_UEH) -#define DLT_IS_HTYP_MSBF(htyp) ((htyp) & DLT_HTYP_MSBF) -#define DLT_IS_HTYP_WEID(htyp) ((htyp) & DLT_HTYP_WEID) -#define DLT_IS_HTYP_WSID(htyp) ((htyp) & DLT_HTYP_WSID) -#define DLT_IS_HTYP_WTMS(htyp) ((htyp) & DLT_HTYP_WTMS) - -#define DLT_HTYP_PROTOCOL_VERSION1 (1<<5) - -/* - * Definitions of msin parameter in extended header. - */ -#define DLT_MSIN_VERB 0x01 /**< verbose */ -#define DLT_MSIN_MSTP 0x0e /**< message type */ -#define DLT_MSIN_MTIN 0xf0 /**< message type info */ - -#define DLT_MSIN_MSTP_SHIFT 1 /**< shift right offset to get mstp value */ -#define DLT_MSIN_MTIN_SHIFT 4 /**< shift right offset to get mtin value */ - -#define DLT_IS_MSIN_VERB(msin) ((msin) & DLT_MSIN_VERB) -#define DLT_GET_MSIN_MSTP(msin) (((msin) & DLT_MSIN_MSTP) >> DLT_MSIN_MSTP_SHIFT) -#define DLT_GET_MSIN_MTIN(msin) (((msin) & DLT_MSIN_MTIN) >> DLT_MSIN_MTIN_SHIFT) - -/* - * Definitions of mstp parameter in extended header. - */ -#define DLT_TYPE_LOG 0x00 /**< Log message type */ -#define DLT_TYPE_APP_TRACE 0x01 /**< Application trace message type */ -#define DLT_TYPE_NW_TRACE 0x02 /**< Network trace message type */ -#define DLT_TYPE_CONTROL 0x03 /**< Control message type */ - -/* - * Definitions of msti parameter in extended header. - */ -#define DLT_TRACE_VARIABLE 0x01 /**< tracing of a variable */ -#define DLT_TRACE_FUNCTION_IN 0x02 /**< tracing of function calls */ -#define DLT_TRACE_FUNCTION_OUT 0x03 /**< tracing of function return values */ -#define DLT_TRACE_STATE 0x04 /**< tracing of states of a state machine */ -#define DLT_TRACE_VFB 0x05 /**< tracing of virtual function bus */ - -/* - * Definitions of msbi parameter in extended header. +*******************************************************************************/ + +/******************************************************************************* +** Revision Control History ** +*******************************************************************************/ + +/* + * $LastChangedRevision$ + * $LastChangedDate$ + * $LastChangedBy$ + Initials Date Comment + aw 13.01.2010 initial + */ +#ifndef DLT_PROTOCOL_H +#define DLT_PROTOCOL_H + +/** + \defgroup protocolapi DLT Protocol API + \addtogroup protocolapi + \{ +*/ + +/* + * Definitions of the htyp parameter in standard header. + */ +#define DLT_HTYP_UEH 0x01 /**< use extended header */ +#define DLT_HTYP_MSBF 0x02 /**< MSB first */ +#define DLT_HTYP_WEID 0x04 /**< with ECU ID */ +#define DLT_HTYP_WSID 0x08 /**< with session ID */ +#define DLT_HTYP_WTMS 0x10 /**< with timestamp */ +#define DLT_HTYP_VERS 0xe0 /**< version number, 0x1 */ + +#define DLT_IS_HTYP_UEH(htyp) ((htyp) & DLT_HTYP_UEH) +#define DLT_IS_HTYP_MSBF(htyp) ((htyp) & DLT_HTYP_MSBF) +#define DLT_IS_HTYP_WEID(htyp) ((htyp) & DLT_HTYP_WEID) +#define DLT_IS_HTYP_WSID(htyp) ((htyp) & DLT_HTYP_WSID) +#define DLT_IS_HTYP_WTMS(htyp) ((htyp) & DLT_HTYP_WTMS) + +#define DLT_HTYP_PROTOCOL_VERSION1 (1<<5) + +/* + * Definitions of msin parameter in extended header. + */ +#define DLT_MSIN_VERB 0x01 /**< verbose */ +#define DLT_MSIN_MSTP 0x0e /**< message type */ +#define DLT_MSIN_MTIN 0xf0 /**< message type info */ + +#define DLT_MSIN_MSTP_SHIFT 1 /**< shift right offset to get mstp value */ +#define DLT_MSIN_MTIN_SHIFT 4 /**< shift right offset to get mtin value */ + +#define DLT_IS_MSIN_VERB(msin) ((msin) & DLT_MSIN_VERB) +#define DLT_GET_MSIN_MSTP(msin) (((msin) & DLT_MSIN_MSTP) >> DLT_MSIN_MSTP_SHIFT) +#define DLT_GET_MSIN_MTIN(msin) (((msin) & DLT_MSIN_MTIN) >> DLT_MSIN_MTIN_SHIFT) + +/* + * Definitions of mstp parameter in extended header. + */ +#define DLT_TYPE_LOG 0x00 /**< Log message type */ +#define DLT_TYPE_APP_TRACE 0x01 /**< Application trace message type */ +#define DLT_TYPE_NW_TRACE 0x02 /**< Network trace message type */ +#define DLT_TYPE_CONTROL 0x03 /**< Control message type */ + +/* + * Definitions of msti parameter in extended header. + */ +#define DLT_TRACE_VARIABLE 0x01 /**< tracing of a variable */ +#define DLT_TRACE_FUNCTION_IN 0x02 /**< tracing of function calls */ +#define DLT_TRACE_FUNCTION_OUT 0x03 /**< tracing of function return values */ +#define DLT_TRACE_STATE 0x04 /**< tracing of states of a state machine */ +#define DLT_TRACE_VFB 0x05 /**< tracing of virtual function bus */ + +/* + * Definitions of msbi parameter in extended header. */ /* see file dlt_user.h */ - -/* - * Definitions of msci parameter in extended header. - */ -#define DLT_CONTROL_REQUEST 0x01 /**< Request message */ -#define DLT_CONTROL_RESPONSE 0x02 /**< Response to request message */ -#define DLT_CONTROL_TIME 0x03 /**< keep-alive message */ - -#define DLT_MSIN_CONTROL_REQUEST ((DLT_TYPE_CONTROL << DLT_MSIN_MSTP_SHIFT) | (DLT_CONTROL_REQUEST << DLT_MSIN_MTIN_SHIFT)) + +/* + * Definitions of msci parameter in extended header. + */ +#define DLT_CONTROL_REQUEST 0x01 /**< Request message */ +#define DLT_CONTROL_RESPONSE 0x02 /**< Response to request message */ +#define DLT_CONTROL_TIME 0x03 /**< keep-alive message */ + +#define DLT_MSIN_CONTROL_REQUEST ((DLT_TYPE_CONTROL << DLT_MSIN_MSTP_SHIFT) | (DLT_CONTROL_REQUEST << DLT_MSIN_MTIN_SHIFT)) #define DLT_MSIN_CONTROL_RESPONSE ((DLT_TYPE_CONTROL << DLT_MSIN_MSTP_SHIFT) | (DLT_CONTROL_RESPONSE << DLT_MSIN_MTIN_SHIFT)) -#define DLT_MSIN_CONTROL_TIME ((DLT_TYPE_CONTROL << DLT_MSIN_MSTP_SHIFT) | (DLT_CONTROL_TIME << DLT_MSIN_MTIN_SHIFT)) - -/* - * Definitions of types of arguments in payload. - */ -#define DLT_TYPE_INFO_TYLE 0x0000000f /**< Length of standard data: 1 = 8bit, 2 = 16bit, 3 = 32 bit, 4 = 64 bit, 5 = 128 bit */ -#define DLT_TYPE_INFO_BOOL 0x00000010 /**< Boolean data */ -#define DLT_TYPE_INFO_SINT 0x00000020 /**< Signed integer data */ -#define DLT_TYPE_INFO_UINT 0x00000040 /**< Unsigned integer data */ -#define DLT_TYPE_INFO_FLOA 0x00000080 /**< Float data */ -#define DLT_TYPE_INFO_ARAY 0x00000100 /**< Array of standard types */ -#define DLT_TYPE_INFO_STRG 0x00000200 /**< String */ -#define DLT_TYPE_INFO_RAWD 0x00000400 /**< Raw data */ -#define DLT_TYPE_INFO_VARI 0x00000800 /**< Set, if additional information to a variable is available */ -#define DLT_TYPE_INFO_FIXP 0x00001000 /**< Set, if quantization and offset are added */ -#define DLT_TYPE_INFO_TRAI 0x00002000 /**< Set, if additional trace information is added */ -#define DLT_TYPE_INFO_STRU 0x00004000 /**< Struct */ -#define DLT_TYPE_INFO_SCOD 0x00038000 /**< coding of the type string: 0 = ASCII, 1 = UTF-8 */ - -#define DLT_TYLE_8BIT 0x00000001 -#define DLT_TYLE_16BIT 0x00000002 -#define DLT_TYLE_32BIT 0x00000003 -#define DLT_TYLE_64BIT 0x00000004 -#define DLT_TYLE_128BIT 0x00000005 - -#define DLT_SCOD_ASCII 0x00000000 -#define DLT_SCOD_UTF8 0x00008000 -#define DLT_SCOD_HEX 0x00010000 -#define DLT_SCOD_BIN 0x00018000 - -/* - * Definitions of DLT services. - */ -#define DLT_SERVICE_ID_SET_LOG_LEVEL 0x01 /**< Service ID: Set log level */ -#define DLT_SERVICE_ID_SET_TRACE_STATUS 0x02 /**< Service ID: Set trace status */ -#define DLT_SERVICE_ID_GET_LOG_INFO 0x03 /**< Service ID: Get log info */ -#define DLT_SERVICE_ID_GET_DEFAULT_LOG_LEVEL 0x04 /**< Service ID: Get dafault log level */ -#define DLT_SERVICE_ID_STORE_CONFIG 0x05 /**< Service ID: Store configuration */ -#define DLT_SERVICE_ID_RESET_TO_FACTORY_DEFAULT 0x06 /**< Service ID: Reset to factory defaults */ -#define DLT_SERVICE_ID_SET_COM_INTERFACE_STATUS 0x07 /**< Service ID: Set communication interface status */ -#define DLT_SERVICE_ID_SET_COM_INTERFACE_MAX_BANDWIDTH 0x08 /**< Service ID: Set communication interface maximum bandwidth */ -#define DLT_SERVICE_ID_SET_VERBOSE_MODE 0x09 /**< Service ID: Set verbose mode */ -#define DLT_SERVICE_ID_SET_MESSAGE_FILTERING 0x0A /**< Service ID: Set message filtering */ -#define DLT_SERVICE_ID_SET_TIMING_PACKETS 0x0B /**< Service ID: Set timing packets */ -#define DLT_SERVICE_ID_GET_LOCAL_TIME 0x0C /**< Service ID: Get local time */ -#define DLT_SERVICE_ID_USE_ECU_ID 0x0D /**< Service ID: Use ECU id */ -#define DLT_SERVICE_ID_USE_SESSION_ID 0x0E /**< Service ID: Use session id */ -#define DLT_SERVICE_ID_USE_TIMESTAMP 0x0F /**< Service ID: Use timestamp */ -#define DLT_SERVICE_ID_USE_EXTENDED_HEADER 0x10 /**< Service ID: Use extended header */ -#define DLT_SERVICE_ID_SET_DEFAULT_LOG_LEVEL 0x11 /**< Service ID: Set default log level */ -#define DLT_SERVICE_ID_SET_DEFAULT_TRACE_STATUS 0x12 /**< Service ID: Set default trace status */ -#define DLT_SERVICE_ID_GET_SOFTWARE_VERSION 0x13 /**< Service ID: Get software version */ -#define DLT_SERVICE_ID_MESSAGE_BUFFER_OVERFLOW 0x14 /**< Service ID: Message buffer overflow */ +#define DLT_MSIN_CONTROL_TIME ((DLT_TYPE_CONTROL << DLT_MSIN_MSTP_SHIFT) | (DLT_CONTROL_TIME << DLT_MSIN_MTIN_SHIFT)) + +/* + * Definitions of types of arguments in payload. + */ +#define DLT_TYPE_INFO_TYLE 0x0000000f /**< Length of standard data: 1 = 8bit, 2 = 16bit, 3 = 32 bit, 4 = 64 bit, 5 = 128 bit */ +#define DLT_TYPE_INFO_BOOL 0x00000010 /**< Boolean data */ +#define DLT_TYPE_INFO_SINT 0x00000020 /**< Signed integer data */ +#define DLT_TYPE_INFO_UINT 0x00000040 /**< Unsigned integer data */ +#define DLT_TYPE_INFO_FLOA 0x00000080 /**< Float data */ +#define DLT_TYPE_INFO_ARAY 0x00000100 /**< Array of standard types */ +#define DLT_TYPE_INFO_STRG 0x00000200 /**< String */ +#define DLT_TYPE_INFO_RAWD 0x00000400 /**< Raw data */ +#define DLT_TYPE_INFO_VARI 0x00000800 /**< Set, if additional information to a variable is available */ +#define DLT_TYPE_INFO_FIXP 0x00001000 /**< Set, if quantization and offset are added */ +#define DLT_TYPE_INFO_TRAI 0x00002000 /**< Set, if additional trace information is added */ +#define DLT_TYPE_INFO_STRU 0x00004000 /**< Struct */ +#define DLT_TYPE_INFO_SCOD 0x00038000 /**< coding of the type string: 0 = ASCII, 1 = UTF-8 */ + +#define DLT_TYLE_8BIT 0x00000001 +#define DLT_TYLE_16BIT 0x00000002 +#define DLT_TYLE_32BIT 0x00000003 +#define DLT_TYLE_64BIT 0x00000004 +#define DLT_TYLE_128BIT 0x00000005 + +#define DLT_SCOD_ASCII 0x00000000 +#define DLT_SCOD_UTF8 0x00008000 +#define DLT_SCOD_HEX 0x00010000 +#define DLT_SCOD_BIN 0x00018000 + +/* + * Definitions of DLT services. + */ +#define DLT_SERVICE_ID_SET_LOG_LEVEL 0x01 /**< Service ID: Set log level */ +#define DLT_SERVICE_ID_SET_TRACE_STATUS 0x02 /**< Service ID: Set trace status */ +#define DLT_SERVICE_ID_GET_LOG_INFO 0x03 /**< Service ID: Get log info */ +#define DLT_SERVICE_ID_GET_DEFAULT_LOG_LEVEL 0x04 /**< Service ID: Get dafault log level */ +#define DLT_SERVICE_ID_STORE_CONFIG 0x05 /**< Service ID: Store configuration */ +#define DLT_SERVICE_ID_RESET_TO_FACTORY_DEFAULT 0x06 /**< Service ID: Reset to factory defaults */ +#define DLT_SERVICE_ID_SET_COM_INTERFACE_STATUS 0x07 /**< Service ID: Set communication interface status */ +#define DLT_SERVICE_ID_SET_COM_INTERFACE_MAX_BANDWIDTH 0x08 /**< Service ID: Set communication interface maximum bandwidth */ +#define DLT_SERVICE_ID_SET_VERBOSE_MODE 0x09 /**< Service ID: Set verbose mode */ +#define DLT_SERVICE_ID_SET_MESSAGE_FILTERING 0x0A /**< Service ID: Set message filtering */ +#define DLT_SERVICE_ID_SET_TIMING_PACKETS 0x0B /**< Service ID: Set timing packets */ +#define DLT_SERVICE_ID_GET_LOCAL_TIME 0x0C /**< Service ID: Get local time */ +#define DLT_SERVICE_ID_USE_ECU_ID 0x0D /**< Service ID: Use ECU id */ +#define DLT_SERVICE_ID_USE_SESSION_ID 0x0E /**< Service ID: Use session id */ +#define DLT_SERVICE_ID_USE_TIMESTAMP 0x0F /**< Service ID: Use timestamp */ +#define DLT_SERVICE_ID_USE_EXTENDED_HEADER 0x10 /**< Service ID: Use extended header */ +#define DLT_SERVICE_ID_SET_DEFAULT_LOG_LEVEL 0x11 /**< Service ID: Set default log level */ +#define DLT_SERVICE_ID_SET_DEFAULT_TRACE_STATUS 0x12 /**< Service ID: Set default trace status */ +#define DLT_SERVICE_ID_GET_SOFTWARE_VERSION 0x13 /**< Service ID: Get software version */ +#define DLT_SERVICE_ID_MESSAGE_BUFFER_OVERFLOW 0x14 /**< Service ID: Message buffer overflow */ #define DLT_SERVICE_ID_LAST_ENTRY 0x15 /**< Service ID: Last entry to avoid any further modifications in dependent code */ -#define DLT_SERVICE_ID_UNREGISTER_CONTEXT 0xf01 /**< Service ID: Message unregister context */ -#define DLT_SERVICE_ID_CONNECTION_INFO 0xf02 /**< Service ID: Message connection info */ -#define DLT_SERVICE_ID_TIMEZONE 0xf03 /**< Service ID: Timezone */ -#define DLT_SERVICE_ID_MARKER 0xf04 /**< Service ID: Marker */ -#define DLT_SERVICE_ID_CALLSW_CINJECTION 0xFFF /**< Service ID: Message Injection (minimal ID) */ - -/* - * Definitions of DLT service response status - */ -#define DLT_SERVICE_RESPONSE_OK 0x00 /**< Control message response: OK */ -#define DLT_SERVICE_RESPONSE_NOT_SUPPORTED 0x01 /**< Control message response: Not supported */ -#define DLT_SERVICE_RESPONSE_ERROR 0x02 /**< Control message response: Error */ - -/* - * Definitions of DLT service connection state - */ -#define DLT_CONNECTION_STATUS_DISCONNECTED 0x01 /**< Client is disconnected */ -#define DLT_CONNECTION_STATUS_CONNECTED 0x02 /**< Client is connected */ - -/** - \} -*/ - -#endif /* DLT_PROTOCOL_H */ +#define DLT_SERVICE_ID_UNREGISTER_CONTEXT 0xf01 /**< Service ID: Message unregister context */ +#define DLT_SERVICE_ID_CONNECTION_INFO 0xf02 /**< Service ID: Message connection info */ +#define DLT_SERVICE_ID_TIMEZONE 0xf03 /**< Service ID: Timezone */ +#define DLT_SERVICE_ID_MARKER 0xf04 /**< Service ID: Marker */ +#define DLT_SERVICE_ID_CALLSW_CINJECTION 0xFFF /**< Service ID: Message Injection (minimal ID) */ + +/* + * Definitions of DLT service response status + */ +#define DLT_SERVICE_RESPONSE_OK 0x00 /**< Control message response: OK */ +#define DLT_SERVICE_RESPONSE_NOT_SUPPORTED 0x01 /**< Control message response: Not supported */ +#define DLT_SERVICE_RESPONSE_ERROR 0x02 /**< Control message response: Error */ + +/* + * Definitions of DLT service connection state + */ +#define DLT_CONNECTION_STATUS_DISCONNECTED 0x01 /**< Client is disconnected */ +#define DLT_CONNECTION_STATUS_CONNECTED 0x02 /**< Client is connected */ + +/** + \} +*/ + +#endif /* DLT_PROTOCOL_H */ diff --git a/include/dlt/dlt_types.h b/include/dlt/dlt_types.h index fd67fbc..b66e518 100755 --- a/include/dlt/dlt_types.h +++ b/include/dlt/dlt_types.h @@ -1,30 +1,30 @@ -/** - * @licence app begin@ - * Copyright (C) 2012 BMW AG - * - * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps. - * - * Contributions are licensed to the GENIVI Alliance under one or more - * Contribution License Agreements. - * - * \copyright - * This Source Code Form is subject to the terms of the - * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with - * this file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * - * \author Alexander Wenzel BMW 2011-2012 - * - * \file dlt_types.h - * For further information see http://www.genivi.org/. - * @licence end@ - */ - - -/******************************************************************************* -** ** -** SRC-MODULE: dlt_types.h ** -** ** +/** + * @licence app begin@ + * Copyright (C) 2012 BMW AG + * + * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps. + * + * Contributions are licensed to the GENIVI Alliance under one or more + * Contribution License Agreements. + * + * \copyright + * This Source Code Form is subject to the terms of the + * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with + * this file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * + * \author Alexander Wenzel BMW 2011-2012 + * + * \file dlt_types.h + * For further information see http://www.genivi.org/. + * @licence end@ + */ + + +/******************************************************************************* +** ** +** SRC-MODULE: dlt_types.h ** +** ** ** TARGET : linux ** ** ** ** PROJECT : DLT ** @@ -55,19 +55,19 @@ #ifndef DLT_TYPES_H #define DLT_TYPES_H -#ifdef _MSC_VER - typedef __int64 int64_t; - typedef __int32 int32_t; - typedef __int16 int16_t; - typedef __int8 int8_t; - - typedef unsigned __int64 uint64_t; - typedef unsigned __int32 uint32_t; - typedef unsigned __int16 uint16_t; - typedef unsigned __int8 uint8_t; - - typedef int pid_t; - typedef unsigned int speed_t; +#ifdef _MSC_VER + typedef __int64 int64_t; + typedef __int32 int32_t; + typedef __int16 int16_t; + typedef __int8 int8_t; + + typedef unsigned __int64 uint64_t; + typedef unsigned __int32 uint32_t; + typedef unsigned __int16 uint16_t; + typedef unsigned __int8 uint8_t; + + typedef int pid_t; + typedef unsigned int speed_t; #define UINT16_MAX 0xFFFF diff --git a/src/daemon/dlt-daemon.h b/src/daemon/dlt-daemon.h index 022387a..d6cb91f 100755 --- a/src/daemon/dlt-daemon.h +++ b/src/daemon/dlt-daemon.h @@ -1,207 +1,207 @@ -/** - * @licence app begin@ - * Copyright (C) 2012 BMW AG - * - * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps. - * - * Contributions are licensed to the GENIVI Alliance under one or more - * Contribution License Agreements. - * - * \copyright - * This Source Code Form is subject to the terms of the - * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with - * this file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * - * \author Alexander Wenzel BMW 2011-2012 - * - * \file dlt-daemon.h - * For further information see http://www.genivi.org/. - * @licence end@ - */ - - -/******************************************************************************* -** ** -** SRC-MODULE: dlt-daemon.h ** -** ** -** TARGET : linux ** -** ** -** PROJECT : DLT ** -** ** -** AUTHOR : Alexander Wenzel Alexander.AW.Wenzel@bmw.de ** -** Markus Klein ** -** ** -** PURPOSE : ** -** ** -** REMARKS : ** -** ** -** PLATFORM DEPENDANT [yes/no]: yes ** -** ** -** TO BE CHANGED BY USER [yes/no]: no ** -** ** -*******************************************************************************/ - -/******************************************************************************* -** Author Identity ** -******************************************************************************** -** ** -** Initials Name Company ** -** -------- ------------------------- ---------------------------------- ** -** aw Alexander Wenzel BMW ** -** mk Markus Klein Fraunhofer ESK ** -*******************************************************************************/ - -/******************************************************************************* -** Author Identity ** -******************************************************************************** -** ** -** Initials Name Company ** -** -------- ------------------------- ---------------------------------- ** -** aw Alexander Wenzel BMW ** -** mk Markus Klein Fraunhofer ESK ** -*******************************************************************************/ - -#ifndef DLT_DAEMON_H -#define DLT_DAEMON_H - -#include /* for NAME_MAX */ - -#include "dlt_daemon_common.h" -#include "dlt_user_shared.h" -#include "dlt_user_shared_cfg.h" - - -#include -#include - - -/** - * The flags of a dlt daemon. - */ -typedef struct -{ - int aflag; /**< (Boolean) Print DLT messages; payload as ASCII */ - int sflag; /**< (Boolean) Print DLT messages; payload as hex */ - int xflag; /**< (Boolean) Print DLT messages; only headers */ - int vflag; /**< (Boolean) Verbose mode */ - int dflag; /**< (Boolean) Daemonize */ - int lflag; /**< (Boolean) Send DLT messages with serial header */ - int rflag; /**< (Boolean) Send automatic get log info response during context registration */ - int mflag; /**< (Boolean) Sync to serial header on serial connection */ - int nflag; /**< (Boolean) Sync to serial header on all TCP connections */ - char evalue[NAME_MAX + 1]; /**< (String: ECU ID) Set ECU ID (Default: ECU1) */ - char bvalue[NAME_MAX + 1]; /**< (String: Baudrate) Serial device baudrate (Default: 115200) */ - char yvalue[NAME_MAX + 1]; /**< (String: Devicename) Additional support for serial device */ - char ivalue[NAME_MAX + 1]; /**< (String: Directory) Directory where to store the persistant configuration (Default: /tmp) */ - char cvalue[NAME_MAX + 1]; /**< (String: Directory) Filename of DLT configuration file (Default: /etc/dlt.conf) */ - int sharedMemorySize; /**< (int) Size of shared memory (Default: 100000) */ - int sendMessageTime; /**< (Boolean) Send periodic Message Time if client is connected (Default: 0) */ - char offlineTraceDirectory[256]; /**< (String: Directory) Store DLT messages to local directory (Default: /etc/dlt.conf) */ - int offlineTraceFileSize; /**< (int) Maximum size in bytes of one trace file (Default: 1000000) */ - int offlineTraceMaxSize; /**< (int) Maximum size of all trace files (Default: 4000000) */ - int loggingMode; /**< (int) The logging console for internal logging of dlt-daemon (Default: 0) */ - int loggingLevel; /**< (int) The logging level for internal logging of dlt-daemon (Default: 6) */ - char loggingFilename[256]; /**< (String: Filename) The logging filename if internal logging mode is log to file (Default: /tmp/log) */ - int sendECUSoftwareVersion; /**< (Boolean) Send ECU software version perdiodically */ - char pathToECUSoftwareVersion[256]; /**< (String: Filename) The file from which to read the ECU version from. */ - int sendTimezone; /**< (Boolean) Send Timezone perdiodically */ -} DltDaemonFlags; - -/** - * The global parameters of a dlt daemon. - */ -typedef struct -{ - DltDaemonFlags flags; /**< flags of the daemon */ - int fp; /**< handle for own fifo */ - int sock; /**< handle for tcp connection to client */ - int fdserial; /**< handle for serial connection */ - int fdmax; /**< highest number of used handles */ - fd_set master; /**< master set of handles */ - fd_set read_fds; /**< read set of handles */ - DltFile file; /**< struct for file access */ - //int ohandle; /**< handle to output file */ - DltMessage msg; /**< one dlt message */ - DltReceiver receiver; /**< receiver for fifo connection */ - DltReceiver receiverSock; /**< receiver for socket connection */ - DltReceiver receiverSerial; /**< receiver for serial connection */ - int client_connections; /**< counter for nr. of client connections */ - size_t baudrate; /**< Baudrate of serial connection */ -#ifdef DLT_SHM_ENABLE - DltShm dlt_shm; /**< Shared memory handling */ -#endif - DltOfflineTrace offlineTrace; /**< Offline trace handling */ -#if defined(DLT_SYSTEMD_WATCHDOG_ENABLE) - int timer_wd; /** file descriptor for watchdog timer */ -#endif - int timeoutOnSend; - unsigned long RingbufferMinSize; - unsigned long RingbufferMaxSize; - unsigned long RingbufferStepSize; - int timer_one_s; - int timer_sixty_s; -} DltDaemonLocal; - -typedef struct -{ - int timer_fd; - unsigned long long wakeups_missed; -} DltDaemonPeriodicData; - -typedef struct -{ - DltDaemon *daemon; - DltDaemonLocal *daemon_local; -} DltDaemonTimingPacketThreadData; - -typedef DltDaemonTimingPacketThreadData DltDaemonECUVersionThreadData; - -#define DLT_DAEMON_ERROR_OK 0 -#define DLT_DAEMON_ERROR_UNKNOWN -1 -#define DLT_DAEMON_ERROR_BUFFER_FULL -2 -#define DLT_DAEMON_ERROR_SEND_FAILED -3 -#define DLT_DAEMON_ERROR_WRITE_FAILED -4 - -/* Function prototypes */ -void dlt_daemon_local_cleanup(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); -int dlt_daemon_local_init_p1(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); -int dlt_daemon_local_init_p2(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); -int dlt_daemon_local_connection_init(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); -int dlt_daemon_local_ecu_version_init(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); - -void dlt_daemon_daemonize(int verbose); -void dlt_daemon_signal_handler(int sig); - -int dlt_daemon_process_client_connect(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); -int dlt_daemon_process_client_messages(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); -int dlt_daemon_process_client_messages_serial(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); -int dlt_daemon_process_user_messages(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); - -int dlt_daemon_process_user_message_overflow(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); -int dlt_daemon_send_message_overflow(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); -int dlt_daemon_process_user_message_register_application(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); -int dlt_daemon_process_user_message_unregister_application(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); -int dlt_daemon_process_user_message_register_context(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); -int dlt_daemon_process_user_message_unregister_context(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); -int dlt_daemon_process_user_message_log(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); -#ifdef DLT_SHM_ENABLE -int dlt_daemon_process_user_message_log_shm(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); -#endif -int dlt_daemon_process_user_message_set_app_ll_ts(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); -int dlt_daemon_process_user_message_log_mode(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); -int dlt_daemon_process_user_message_marker(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); - -int dlt_daemon_send_ringbuffer_to_client(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); -void dlt_daemon_timingpacket_thread(void *ptr); -void dlt_daemon_ecu_version_thread(void *ptr); -#if defined(DLT_SYSTEMD_WATCHDOG_ENABLE) - void dlt_daemon_systemd_watchdog_thread(void *ptr); -#endif - -int create_timer_fd(DltDaemonLocal *daemon_local, int period_sec, int starts_in, int* fd, const char* timer_name); - -int dlt_daemon_close_socket(int sock, DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); - -#endif /* DLT_DAEMON_H */ - +/** + * @licence app begin@ + * Copyright (C) 2012 BMW AG + * + * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps. + * + * Contributions are licensed to the GENIVI Alliance under one or more + * Contribution License Agreements. + * + * \copyright + * This Source Code Form is subject to the terms of the + * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with + * this file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * + * \author Alexander Wenzel BMW 2011-2012 + * + * \file dlt-daemon.h + * For further information see http://www.genivi.org/. + * @licence end@ + */ + + +/******************************************************************************* +** ** +** SRC-MODULE: dlt-daemon.h ** +** ** +** TARGET : linux ** +** ** +** PROJECT : DLT ** +** ** +** AUTHOR : Alexander Wenzel Alexander.AW.Wenzel@bmw.de ** +** Markus Klein ** +** ** +** PURPOSE : ** +** ** +** REMARKS : ** +** ** +** PLATFORM DEPENDANT [yes/no]: yes ** +** ** +** TO BE CHANGED BY USER [yes/no]: no ** +** ** +*******************************************************************************/ + +/******************************************************************************* +** Author Identity ** +******************************************************************************** +** ** +** Initials Name Company ** +** -------- ------------------------- ---------------------------------- ** +** aw Alexander Wenzel BMW ** +** mk Markus Klein Fraunhofer ESK ** +*******************************************************************************/ + +/******************************************************************************* +** Author Identity ** +******************************************************************************** +** ** +** Initials Name Company ** +** -------- ------------------------- ---------------------------------- ** +** aw Alexander Wenzel BMW ** +** mk Markus Klein Fraunhofer ESK ** +*******************************************************************************/ + +#ifndef DLT_DAEMON_H +#define DLT_DAEMON_H + +#include /* for NAME_MAX */ + +#include "dlt_daemon_common.h" +#include "dlt_user_shared.h" +#include "dlt_user_shared_cfg.h" + + +#include +#include + + +/** + * The flags of a dlt daemon. + */ +typedef struct +{ + int aflag; /**< (Boolean) Print DLT messages; payload as ASCII */ + int sflag; /**< (Boolean) Print DLT messages; payload as hex */ + int xflag; /**< (Boolean) Print DLT messages; only headers */ + int vflag; /**< (Boolean) Verbose mode */ + int dflag; /**< (Boolean) Daemonize */ + int lflag; /**< (Boolean) Send DLT messages with serial header */ + int rflag; /**< (Boolean) Send automatic get log info response during context registration */ + int mflag; /**< (Boolean) Sync to serial header on serial connection */ + int nflag; /**< (Boolean) Sync to serial header on all TCP connections */ + char evalue[NAME_MAX + 1]; /**< (String: ECU ID) Set ECU ID (Default: ECU1) */ + char bvalue[NAME_MAX + 1]; /**< (String: Baudrate) Serial device baudrate (Default: 115200) */ + char yvalue[NAME_MAX + 1]; /**< (String: Devicename) Additional support for serial device */ + char ivalue[NAME_MAX + 1]; /**< (String: Directory) Directory where to store the persistant configuration (Default: /tmp) */ + char cvalue[NAME_MAX + 1]; /**< (String: Directory) Filename of DLT configuration file (Default: /etc/dlt.conf) */ + int sharedMemorySize; /**< (int) Size of shared memory (Default: 100000) */ + int sendMessageTime; /**< (Boolean) Send periodic Message Time if client is connected (Default: 0) */ + char offlineTraceDirectory[256]; /**< (String: Directory) Store DLT messages to local directory (Default: /etc/dlt.conf) */ + int offlineTraceFileSize; /**< (int) Maximum size in bytes of one trace file (Default: 1000000) */ + int offlineTraceMaxSize; /**< (int) Maximum size of all trace files (Default: 4000000) */ + int loggingMode; /**< (int) The logging console for internal logging of dlt-daemon (Default: 0) */ + int loggingLevel; /**< (int) The logging level for internal logging of dlt-daemon (Default: 6) */ + char loggingFilename[256]; /**< (String: Filename) The logging filename if internal logging mode is log to file (Default: /tmp/log) */ + int sendECUSoftwareVersion; /**< (Boolean) Send ECU software version perdiodically */ + char pathToECUSoftwareVersion[256]; /**< (String: Filename) The file from which to read the ECU version from. */ + int sendTimezone; /**< (Boolean) Send Timezone perdiodically */ +} DltDaemonFlags; + +/** + * The global parameters of a dlt daemon. + */ +typedef struct +{ + DltDaemonFlags flags; /**< flags of the daemon */ + int fp; /**< handle for own fifo */ + int sock; /**< handle for tcp connection to client */ + int fdserial; /**< handle for serial connection */ + int fdmax; /**< highest number of used handles */ + fd_set master; /**< master set of handles */ + fd_set read_fds; /**< read set of handles */ + DltFile file; /**< struct for file access */ + //int ohandle; /**< handle to output file */ + DltMessage msg; /**< one dlt message */ + DltReceiver receiver; /**< receiver for fifo connection */ + DltReceiver receiverSock; /**< receiver for socket connection */ + DltReceiver receiverSerial; /**< receiver for serial connection */ + int client_connections; /**< counter for nr. of client connections */ + size_t baudrate; /**< Baudrate of serial connection */ +#ifdef DLT_SHM_ENABLE + DltShm dlt_shm; /**< Shared memory handling */ +#endif + DltOfflineTrace offlineTrace; /**< Offline trace handling */ +#if defined(DLT_SYSTEMD_WATCHDOG_ENABLE) + int timer_wd; /** file descriptor for watchdog timer */ +#endif + int timeoutOnSend; + unsigned long RingbufferMinSize; + unsigned long RingbufferMaxSize; + unsigned long RingbufferStepSize; + int timer_one_s; + int timer_sixty_s; +} DltDaemonLocal; + +typedef struct +{ + int timer_fd; + unsigned long long wakeups_missed; +} DltDaemonPeriodicData; + +typedef struct +{ + DltDaemon *daemon; + DltDaemonLocal *daemon_local; +} DltDaemonTimingPacketThreadData; + +typedef DltDaemonTimingPacketThreadData DltDaemonECUVersionThreadData; + +#define DLT_DAEMON_ERROR_OK 0 +#define DLT_DAEMON_ERROR_UNKNOWN -1 +#define DLT_DAEMON_ERROR_BUFFER_FULL -2 +#define DLT_DAEMON_ERROR_SEND_FAILED -3 +#define DLT_DAEMON_ERROR_WRITE_FAILED -4 + +/* Function prototypes */ +void dlt_daemon_local_cleanup(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); +int dlt_daemon_local_init_p1(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); +int dlt_daemon_local_init_p2(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); +int dlt_daemon_local_connection_init(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); +int dlt_daemon_local_ecu_version_init(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); + +void dlt_daemon_daemonize(int verbose); +void dlt_daemon_signal_handler(int sig); + +int dlt_daemon_process_client_connect(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); +int dlt_daemon_process_client_messages(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); +int dlt_daemon_process_client_messages_serial(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); +int dlt_daemon_process_user_messages(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); + +int dlt_daemon_process_user_message_overflow(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); +int dlt_daemon_send_message_overflow(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); +int dlt_daemon_process_user_message_register_application(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); +int dlt_daemon_process_user_message_unregister_application(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); +int dlt_daemon_process_user_message_register_context(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); +int dlt_daemon_process_user_message_unregister_context(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); +int dlt_daemon_process_user_message_log(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); +#ifdef DLT_SHM_ENABLE +int dlt_daemon_process_user_message_log_shm(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); +#endif +int dlt_daemon_process_user_message_set_app_ll_ts(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); +int dlt_daemon_process_user_message_log_mode(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); +int dlt_daemon_process_user_message_marker(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); + +int dlt_daemon_send_ringbuffer_to_client(DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); +void dlt_daemon_timingpacket_thread(void *ptr); +void dlt_daemon_ecu_version_thread(void *ptr); +#if defined(DLT_SYSTEMD_WATCHDOG_ENABLE) + void dlt_daemon_systemd_watchdog_thread(void *ptr); +#endif + +int create_timer_fd(DltDaemonLocal *daemon_local, int period_sec, int starts_in, int* fd, const char* timer_name); + +int dlt_daemon_close_socket(int sock, DltDaemon *daemon, DltDaemonLocal *daemon_local, int verbose); + +#endif /* DLT_DAEMON_H */ + diff --git a/src/daemon/dlt-daemon_cfg.h b/src/daemon/dlt-daemon_cfg.h index 24ad20e..07e68c7 100755 --- a/src/daemon/dlt-daemon_cfg.h +++ b/src/daemon/dlt-daemon_cfg.h @@ -1,113 +1,113 @@ -/** - * @licence app begin@ - * Copyright (C) 2012 BMW AG - * - * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps. - * - * Contributions are licensed to the GENIVI Alliance under one or more - * Contribution License Agreements. - * - * \copyright - * This Source Code Form is subject to the terms of the - * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with - * this file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * - * \author Alexander Wenzel BMW 2011-2012 - * - * \file dlt-daemon_cfg.h - * For further information see http://www.genivi.org/. - * @licence end@ - */ - - -/******************************************************************************* -** ** -** SRC-MODULE: dlt-daemon-cfg.h ** -** ** -** TARGET : linux ** -** ** -** PROJECT : DLT ** -** ** -** AUTHOR : Alexander Wenzel Alexander.AW.Wenzel@bmw.de ** -** Markus Klein ** -** ** -** PURPOSE : ** -** ** -** REMARKS : ** -** ** -** PLATFORM DEPENDANT [yes/no]: yes ** -** ** -** TO BE CHANGED BY USER [yes/no]: no ** -** ** -*******************************************************************************/ - -/******************************************************************************* -** Author Identity ** -******************************************************************************** -** ** -** Initials Name Company ** -** -------- ------------------------- ---------------------------------- ** -** aw Alexander Wenzel BMW ** -** mk Markus Klein Fraunhofer ESK ** -*******************************************************************************/ - -/******************************************************************************* -** Author Identity ** -******************************************************************************** -** ** -** Initials Name Company ** -** -------- ------------------------- ---------------------------------- ** -** aw Alexander Wenzel BMW ** -** mk Markus Klein Fraunhofer ESK ** -*******************************************************************************/ - -#ifndef DLT_DAEMON_CFG_H -#define DLT_DAEMON_CFG_H - -/*************/ -/* Changable */ -/*************/ - -/* Stack size of timing packet thread */ -#define DLT_DAEMON_TIMINGPACKET_THREAD_STACKSIZE 100000 - -/* Stack size of ecu version thread */ -#define DLT_DAEMON_ECU_VERSION_THREAD_STACKSIZE 100000 - -/* Size of receive buffer for fifo connection (from user application) */ -#define DLT_DAEMON_RCVBUFSIZE 10024 -/* Size of receive buffer for socket connection (from dlt client) */ -#define DLT_DAEMON_RCVBUFSIZESOCK 10024 -/* Size of receive buffer for serial connection (from dlt client) */ -#define DLT_DAEMON_RCVBUFSIZESERIAL 10024 - -/* Size of buffer for text output */ -#define DLT_DAEMON_TEXTSIZE 10024 - -/* Size of buffer */ -#define DLT_DAEMON_TEXTBUFSIZE 512 - -/* Maximum length of a description */ -#define DLT_DAEMON_DESCSIZE 256 - -/* Name of daemon lock file, contain process id of dlt daemon instance */ -#define DLT_DAEMON_LOCK_FILE "dltd.lock" - -/* Umask of daemon, creates files with permission 750 */ -#define DLT_DAEMON_UMASK 027 -/* Permissions of daemon lock file */ -#define DLT_DAEMON_LOCK_FILE_PERM 0640 - -/* Default ECU ID, used in storage header and transmitted to client*/ -#define DLT_DAEMON_ECU_ID "ECU1" - -/* Default baudrate for serial interface */ -#define DLT_DAEMON_SERIAL_DEFAULT_BAUDRATE 115200 - -/************************/ -/* Don't change please! */ -/************************/ - -#endif /* DLT_DAEMON_CFG_H */ - +/** + * @licence app begin@ + * Copyright (C) 2012 BMW AG + * + * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps. + * + * Contributions are licensed to the GENIVI Alliance under one or more + * Contribution License Agreements. + * + * \copyright + * This Source Code Form is subject to the terms of the + * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with + * this file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * + * \author Alexander Wenzel BMW 2011-2012 + * + * \file dlt-daemon_cfg.h + * For further information see http://www.genivi.org/. + * @licence end@ + */ + + +/******************************************************************************* +** ** +** SRC-MODULE: dlt-daemon-cfg.h ** +** ** +** TARGET : linux ** +** ** +** PROJECT : DLT ** +** ** +** AUTHOR : Alexander Wenzel Alexander.AW.Wenzel@bmw.de ** +** Markus Klein ** +** ** +** PURPOSE : ** +** ** +** REMARKS : ** +** ** +** PLATFORM DEPENDANT [yes/no]: yes ** +** ** +** TO BE CHANGED BY USER [yes/no]: no ** +** ** +*******************************************************************************/ + +/******************************************************************************* +** Author Identity ** +******************************************************************************** +** ** +** Initials Name Company ** +** -------- ------------------------- ---------------------------------- ** +** aw Alexander Wenzel BMW ** +** mk Markus Klein Fraunhofer ESK ** +*******************************************************************************/ + +/******************************************************************************* +** Author Identity ** +******************************************************************************** +** ** +** Initials Name Company ** +** -------- ------------------------- ---------------------------------- ** +** aw Alexander Wenzel BMW ** +** mk Markus Klein Fraunhofer ESK ** +*******************************************************************************/ + +#ifndef DLT_DAEMON_CFG_H +#define DLT_DAEMON_CFG_H + +/*************/ +/* Changable */ +/*************/ + +/* Stack size of timing packet thread */ +#define DLT_DAEMON_TIMINGPACKET_THREAD_STACKSIZE 100000 + +/* Stack size of ecu version thread */ +#define DLT_DAEMON_ECU_VERSION_THREAD_STACKSIZE 100000 + +/* Size of receive buffer for fifo connection (from user application) */ +#define DLT_DAEMON_RCVBUFSIZE 10024 +/* Size of receive buffer for socket connection (from dlt client) */ +#define DLT_DAEMON_RCVBUFSIZESOCK 10024 +/* Size of receive buffer for serial connection (from dlt client) */ +#define DLT_DAEMON_RCVBUFSIZESERIAL 10024 + +/* Size of buffer for text output */ +#define DLT_DAEMON_TEXTSIZE 10024 + +/* Size of buffer */ +#define DLT_DAEMON_TEXTBUFSIZE 512 + +/* Maximum length of a description */ +#define DLT_DAEMON_DESCSIZE 256 + +/* Name of daemon lock file, contain process id of dlt daemon instance */ +#define DLT_DAEMON_LOCK_FILE "dltd.lock" + +/* Umask of daemon, creates files with permission 750 */ +#define DLT_DAEMON_UMASK 027 +/* Permissions of daemon lock file */ +#define DLT_DAEMON_LOCK_FILE_PERM 0640 + +/* Default ECU ID, used in storage header and transmitted to client*/ +#define DLT_DAEMON_ECU_ID "ECU1" + +/* Default baudrate for serial interface */ +#define DLT_DAEMON_SERIAL_DEFAULT_BAUDRATE 115200 + +/************************/ +/* Don't change please! */ +/************************/ + +#endif /* DLT_DAEMON_CFG_H */ + diff --git a/src/daemon/dlt_daemon_common.h b/src/daemon/dlt_daemon_common.h index db1bc0b..4807407 100644 --- a/src/daemon/dlt_daemon_common.h +++ b/src/daemon/dlt_daemon_common.h @@ -1,378 +1,378 @@ -/** - * @licence app begin@ - * Copyright (C) 2012 BMW AG - * - * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps. - * - * Contributions are licensed to the GENIVI Alliance under one or more - * Contribution License Agreements. - * - * \copyright - * This Source Code Form is subject to the terms of the - * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with - * this file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * - * \author Alexander Wenzel BMW 2011-2012 - * - * \file dlt_daemon_common.h - * For further information see http://www.genivi.org/. - * @licence end@ - */ - - -/******************************************************************************* -** ** -** SRC-MODULE: dlt_daemon_common.h ** -** ** -** TARGET : linux ** -** ** -** PROJECT : DLT ** -** ** -** AUTHOR : Alexander Wenzel Alexander.AW.Wenzel@bmw.de ** -** Markus Klein ** -** ** -** PURPOSE : ** -** ** -** REMARKS : ** -** ** -** PLATFORM DEPENDANT [yes/no]: yes ** -** ** -** TO BE CHANGED BY USER [yes/no]: no ** -** ** -*******************************************************************************/ - -/******************************************************************************* -** Author Identity ** -******************************************************************************** -** ** -** Initials Name Company ** -** -------- ------------------------- ---------------------------------- ** -** aw Alexander Wenzel BMW ** -** mk Markus Klein Fraunhofer ESK ** -*******************************************************************************/ - -/******************************************************************************* -** Revision Control History ** -*******************************************************************************/ - -/* - * $LastChangedRevision: 1670 $ - * $LastChangedDate: 2011-04-08 15:12:06 +0200 (Fr, 08. Apr 2011) $ - * $LastChangedBy$ - Initials Date Comment - aw 15.02.2010 initial - */ - -#ifndef DLT_DAEMON_COMMON_H -#define DLT_DAEMON_COMMON_H - -/** - \defgroup daemonapi DLT Daemon API - \addtogroup daemonapi - \{ -*/ - -#include -#include -#include "dlt_common.h" -#include "dlt_user.h" - -#ifdef __cplusplus -extern "C" { -#endif - -#define DLT_DAEMON_RINGBUFFER_MIN_SIZE 500000 /**< Ring buffer size for storing log messages while no client is connected */ -#define DLT_DAEMON_RINGBUFFER_MAX_SIZE 10000000 /**< Ring buffer size for storing log messages while no client is connected */ -#define DLT_DAEMON_RINGBUFFER_STEP_SIZE 500000 /**< Ring buffer size for storing log messages while no client is connected */ - -#define DLT_DAEMON_SEND_TO_ALL -3 /**< Constant value to identify the command "send to all" */ -#define DLT_DAEMON_SEND_FORCE -4 /**< Constant value to identify the command "send force to all" */ - -/* Use a semaphore or mutex from your OS to prevent concurrent access to the DLT buffer. */ - -#define DLT_DAEMON_SEM_LOCK() { sem_wait(&dlt_daemon_mutex); } -#define DLT_DAEMON_SEM_FREE() { sem_post(&dlt_daemon_mutex); } -extern sem_t dlt_daemon_mutex; - -/** - * Definitions of DLT daemon logging states - */ -typedef enum -{ - DLT_DAEMON_STATE_INIT = 0, /**< Initial state */ - DLT_DAEMON_STATE_BUFFER = 1, /**< logging is buffered until external logger is connected or internal logging is activated */ - DLT_DAEMON_STATE_BUFFER_FULL = 2, /**< then internal buffer is full, wait for connect from client */ - DLT_DAEMON_STATE_SEND_BUFFER = 3, /**< external logger is connected, but buffer is still not empty or external logger queue is full */ - DLT_DAEMON_STATE_SEND_DIRECT = 4 /**< External logger is connected or internal logging is active, and buffer is empty */ -} DltDaemonState; - -/** - * The parameters of a daemon application. - */ -typedef struct -{ - char apid[DLT_ID_SIZE]; /**< application id */ - pid_t pid; /**< process id of user application */ - int user_handle; /**< connection handle for connection to user application */ - char *application_description; /**< context description */ - int num_contexts; /**< number of contexts for this application */ -} DltDaemonApplication; - -/** - * The parameters of a daemon context. - */ -typedef struct -{ - char apid[DLT_ID_SIZE]; /**< application id */ - char ctid[DLT_ID_SIZE]; /**< context id */ - int8_t log_level; /**< the current log level of the context */ - int8_t trace_status; /**< the current trace status of the context */ - int log_level_pos; /**< offset of context in context field on user application */ - int user_handle; /**< connection handle for connection to user application */ - char *context_description; /**< context description */ -} DltDaemonContext; - -/** - * The parameters of a daemon. - */ -typedef struct -{ - int num_contexts; /**< Total number of all contexts in all applications */ - DltDaemonContext *contexts; /**< Pointer to contexts */ - int num_applications; /**< Number of available application */ - DltDaemonApplication *applications; /**< Pointer to applications */ - int8_t default_log_level; /**< Default log level (of daemon) */ - int8_t default_trace_status; /**< Default trace status (of daemon) */ - unsigned int overflow_counter; /**< counts the number of lost messages. */ - int runtime_context_cfg_loaded; /**< Set to one, if runtime context configuration has been loaded, zero otherwise */ - char ecuid[DLT_ID_SIZE]; /**< ECU ID of daemon */ - int sendserialheader; /**< 1: send serial header; 0 don't send serial header */ - int timingpackets; /**< 1: send continous timing packets; 0 don't send continous timing packets */ - DltBuffer client_ringbuffer; /**< Ring-buffer for storing received logs while no client connection is available */ - char runtime_application_cfg[PATH_MAX + 1]; /**< Path and filename of persistent application configuration. Set to path max, as it specifies a full path*/ - char runtime_context_cfg[PATH_MAX + 1]; /**< Path and filename of persistent context configuration */ - char runtime_configuration[PATH_MAX + 1]; /**< Path and filename of persistent configuration */ - DltUserLogMode mode; /**< Mode used for tracing: off, external, internal, both */ - char connectionState; /**< state for tracing: 0 = no client connected, 1 = client connected */ - char *ECUVersionString; /**< Version string to send to client. Loaded from a file at startup. May be null. */ - DltDaemonState state; /**< the current logging state of dlt daemon. */ -} DltDaemon; - -/** - * Initialise the dlt daemon structure - * This function must be called before using further dlt daemon structure - * @param daemon pointer to dlt daemon structure - * @param RingbufferMinSize ringbuffer size - * @param RingbufferMaxSize ringbuffer size - * @param RingbufferStepSize ringbuffer size - * @param runtime_directory Directory of persistent configuration - * @param verbose if set to true verbose information is printed out. - * @return negative value if there was an error - */ -int dlt_daemon_init(DltDaemon *daemon,unsigned long RingbufferMinSize,unsigned long RingbufferMaxSize,unsigned long RingbufferStepSize,const char *runtime_directory,int verbose); -/** - * De-Initialise the dlt daemon structure - * @param daemon pointer to dlt daemon structure - * @param verbose if set to true verbose information is printed out. - * @return negative value if there was an error - */ -int dlt_daemon_free(DltDaemon *daemon,int verbose); - -/** - * Add (new) application to internal application management - * @param daemon pointer to dlt daemon structure - * @param apid pointer to application id - * @param pid process id of user application - * @param description description of application - * @param verbose if set to true verbose information is printed out. - * @return Pointer to added context, null pointer on error - */ -DltDaemonApplication* dlt_daemon_application_add(DltDaemon *daemon,char *apid,pid_t pid,char *description, int verbose); -/** - * Delete application from internal application management - * @param daemon pointer to dlt daemon structure - * @param application pointer to application to be deleted - * @param verbose if set to true verbose information is printed out. - * @return negative value if there was an error - */ -int dlt_daemon_application_del(DltDaemon *daemon, DltDaemonApplication *application, int verbose); -/** - * Find application with specific application id - * @param daemon pointer to dlt daemon structure - * @param apid pointer to application id - * @param verbose if set to true verbose information is printed out. - * @return Pointer to application, null pointer on error or not found - */ -DltDaemonApplication* dlt_daemon_application_find(DltDaemon *daemon,char *apid,int verbose); -/** - * Load applications from file to internal context management - * @param daemon pointer to dlt daemon structure - * @param filename name of file to be used for loading - * @param verbose if set to true verbose information is printed out. - * @return negative value if there was an error - */ -int dlt_daemon_applications_load(DltDaemon *daemon,const char *filename, int verbose); -/** - * Save applications from internal context management to file - * @param daemon pointer to dlt daemon structure - * @param filename name of file to be used for saving - * @param verbose if set to true verbose information is printed out. - * @return negative value if there was an error - */ -int dlt_daemon_applications_save(DltDaemon *daemon,const char *filename, int verbose); -/** - * Invalidate all applications fd, if fd is reused - * @param daemon pointer to dlt daemon structure - * @param fd file descriptor - * @param verbose if set to true verbose information is printed out. - * @return negative value if there was an error - */ -int dlt_daemon_applications_invalidate_fd(DltDaemon *daemon,int fd,int verbose); -/** - * Clear all applications in internal application management - * @param daemon pointer to dlt daemon structure - * @param verbose if set to true verbose information is printed out. - * @return negative value if there was an error - */ -int dlt_daemon_applications_clear(DltDaemon *daemon,int verbose); - -/** - * Add (new) context to internal context management - * @param daemon pointer to dlt daemon structure - * @param apid pointer to application id - * @param ctid pointer to context id - * @param log_level log level of context - * @param trace_status trace status of context - * @param log_level_pos offset of context in context field on user application - * @param user_handle connection handle for connection to user application - * @param description description of context - * @param verbose if set to true verbose information is printed out. - * @return Pointer to added context, null pointer on error - */ -DltDaemonContext* dlt_daemon_context_add(DltDaemon *daemon,char *apid,char *ctid,int8_t log_level,int8_t trace_status,int log_level_pos, int user_handle,char *description,int verbose); -/** - * Delete context from internal context management - * @param daemon pointer to dlt daemon structure - * @param context pointer to context to be deleted - * @param verbose if set to true verbose information is printed out. - * @return negative value if there was an error - */ -int dlt_daemon_context_del(DltDaemon *daemon, DltDaemonContext* context, int verbose); -/** - * Find context with specific application id and context id - * @param daemon pointer to dlt daemon structure - * @param apid pointer to application id - * @param ctid pointer to context id - * @param verbose if set to true verbose information is printed out. - * @return Pointer to context, null pointer on error or not found - */ -DltDaemonContext* dlt_daemon_context_find(DltDaemon *daemon,char *apid,char *ctid,int verbose); -/** - * Invalidate all contexts fd, if fd is reused - * @param daemon pointer to dlt daemon structure - * @param fd file descriptor - * @param verbose if set to true verbose information is printed out. - * @return negative value if there was an error - */ -int dlt_daemon_contexts_invalidate_fd(DltDaemon *daemon,int fd,int verbose); -/** - * Clear all contexts in internal context management - * @param daemon pointer to dlt daemon structure - * @param verbose if set to true verbose information is printed out. - * @return negative value if there was an error - */ -int dlt_daemon_contexts_clear(DltDaemon *daemon,int verbose); -/** - * Load contexts from file to internal context management - * @param daemon pointer to dlt daemon structure - * @param filename name of file to be used for loading - * @param verbose if set to true verbose information is printed out. - * @return negative value if there was an error - */ -int dlt_daemon_contexts_load(DltDaemon *daemon,const char *filename, int verbose); -/** - * Save contexts from internal context management to file - * @param daemon pointer to dlt daemon structure - * @param filename name of file to be used for saving - * @param verbose if set to true verbose information is printed out. - * @return negative value if there was an error - */ -int dlt_daemon_contexts_save(DltDaemon *daemon,const char *filename, int verbose); -/** - * Load persistant configuration - * @param daemon pointer to dlt daemon structure - * @param filename name of file to be used for loading - * @param verbose if set to true verbose information is printed out. - * @return negative value if there was an error - */ -int dlt_daemon_configuration_load(DltDaemon *daemon,const char *filename, int verbose); -/** - * Save configuration persistantly - * @param daemon pointer to dlt daemon structure - * @param filename name of file to be used for saving - * @param verbose if set to true verbose information is printed out. - * @return negative value if there was an error - */ -int dlt_daemon_configuration_save(DltDaemon *daemon,const char *filename, int verbose); - - -/** - * Send user message DLT_USER_MESSAGE_LOG_LEVEL to user application - * @param daemon pointer to dlt daemon structure - * @param context pointer to context for response - * @param verbose if set to true verbose information is printed out. - * @return negative value if there was an error - */ -int dlt_daemon_user_send_log_level(DltDaemon *daemon,DltDaemonContext *context, int verbose); - -/** - * Send user message DLT_USER_MESSAGE_LOG_STATE to user application - * @param daemon pointer to dlt daemon structure - * @param app pointer to application for response - * @param verbose if set to true verbose information is printed out. - * @return negative value if there was an error - */ -int dlt_daemon_user_send_log_state(DltDaemon *daemon,DltDaemonApplication *app,int verbose); - -/** - * Send user messages to all user applications using default context, or trace status - * to update those values - * @param daemon pointer to dlt daemon structure - * @param verbose if set to true verbose information is printed out. - */ -void dlt_daemon_user_send_default_update(DltDaemon *daemon, int verbose); - -/** - * Send user messages to all user applications the log status - * everytime the client is connected or disconnected. - * @param daemon pointer to dlt daemon structure - * @param verbose if set to true verbose information is printed out. - */ -void dlt_daemon_user_send_all_log_state(DltDaemon *daemon, int verbose); - -/** - * Process reset to factory default control message - * @param daemon pointer to dlt daemon structure - * @param filename name of file containing the runtime defaults for applications - * @param filename1 name of file containing the runtime defaults for contexts - * @param verbose if set to true verbose information is printed out. - */ -void dlt_daemon_control_reset_to_factory_default(DltDaemon *daemon,const char *filename, const char *filename1, int verbose); - -/** - * Change the logging state of dlt daemon - * @param daemon pointer to dlt daemon structure - * @param newState the requested new state - */ -void dlt_daemon_change_state(DltDaemon *daemon, DltDaemonState newState); - -#ifdef __cplusplus -} -#endif - -/** - \} -*/ - -#endif /* DLT_DAEMON_COMMON_H */ +/** + * @licence app begin@ + * Copyright (C) 2012 BMW AG + * + * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps. + * + * Contributions are licensed to the GENIVI Alliance under one or more + * Contribution License Agreements. + * + * \copyright + * This Source Code Form is subject to the terms of the + * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with + * this file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * + * \author Alexander Wenzel BMW 2011-2012 + * + * \file dlt_daemon_common.h + * For further information see http://www.genivi.org/. + * @licence end@ + */ + + +/******************************************************************************* +** ** +** SRC-MODULE: dlt_daemon_common.h ** +** ** +** TARGET : linux ** +** ** +** PROJECT : DLT ** +** ** +** AUTHOR : Alexander Wenzel Alexander.AW.Wenzel@bmw.de ** +** Markus Klein ** +** ** +** PURPOSE : ** +** ** +** REMARKS : ** +** ** +** PLATFORM DEPENDANT [yes/no]: yes ** +** ** +** TO BE CHANGED BY USER [yes/no]: no ** +** ** +*******************************************************************************/ + +/******************************************************************************* +** Author Identity ** +******************************************************************************** +** ** +** Initials Name Company ** +** -------- ------------------------- ---------------------------------- ** +** aw Alexander Wenzel BMW ** +** mk Markus Klein Fraunhofer ESK ** +*******************************************************************************/ + +/******************************************************************************* +** Revision Control History ** +*******************************************************************************/ + +/* + * $LastChangedRevision: 1670 $ + * $LastChangedDate: 2011-04-08 15:12:06 +0200 (Fr, 08. Apr 2011) $ + * $LastChangedBy$ + Initials Date Comment + aw 15.02.2010 initial + */ + +#ifndef DLT_DAEMON_COMMON_H +#define DLT_DAEMON_COMMON_H + +/** + \defgroup daemonapi DLT Daemon API + \addtogroup daemonapi + \{ +*/ + +#include +#include +#include "dlt_common.h" +#include "dlt_user.h" + +#ifdef __cplusplus +extern "C" { +#endif + +#define DLT_DAEMON_RINGBUFFER_MIN_SIZE 500000 /**< Ring buffer size for storing log messages while no client is connected */ +#define DLT_DAEMON_RINGBUFFER_MAX_SIZE 10000000 /**< Ring buffer size for storing log messages while no client is connected */ +#define DLT_DAEMON_RINGBUFFER_STEP_SIZE 500000 /**< Ring buffer size for storing log messages while no client is connected */ + +#define DLT_DAEMON_SEND_TO_ALL -3 /**< Constant value to identify the command "send to all" */ +#define DLT_DAEMON_SEND_FORCE -4 /**< Constant value to identify the command "send force to all" */ + +/* Use a semaphore or mutex from your OS to prevent concurrent access to the DLT buffer. */ + +#define DLT_DAEMON_SEM_LOCK() { sem_wait(&dlt_daemon_mutex); } +#define DLT_DAEMON_SEM_FREE() { sem_post(&dlt_daemon_mutex); } +extern sem_t dlt_daemon_mutex; + +/** + * Definitions of DLT daemon logging states + */ +typedef enum +{ + DLT_DAEMON_STATE_INIT = 0, /**< Initial state */ + DLT_DAEMON_STATE_BUFFER = 1, /**< logging is buffered until external logger is connected or internal logging is activated */ + DLT_DAEMON_STATE_BUFFER_FULL = 2, /**< then internal buffer is full, wait for connect from client */ + DLT_DAEMON_STATE_SEND_BUFFER = 3, /**< external logger is connected, but buffer is still not empty or external logger queue is full */ + DLT_DAEMON_STATE_SEND_DIRECT = 4 /**< External logger is connected or internal logging is active, and buffer is empty */ +} DltDaemonState; + +/** + * The parameters of a daemon application. + */ +typedef struct +{ + char apid[DLT_ID_SIZE]; /**< application id */ + pid_t pid; /**< process id of user application */ + int user_handle; /**< connection handle for connection to user application */ + char *application_description; /**< context description */ + int num_contexts; /**< number of contexts for this application */ +} DltDaemonApplication; + +/** + * The parameters of a daemon context. + */ +typedef struct +{ + char apid[DLT_ID_SIZE]; /**< application id */ + char ctid[DLT_ID_SIZE]; /**< context id */ + int8_t log_level; /**< the current log level of the context */ + int8_t trace_status; /**< the current trace status of the context */ + int log_level_pos; /**< offset of context in context field on user application */ + int user_handle; /**< connection handle for connection to user application */ + char *context_description; /**< context description */ +} DltDaemonContext; + +/** + * The parameters of a daemon. + */ +typedef struct +{ + int num_contexts; /**< Total number of all contexts in all applications */ + DltDaemonContext *contexts; /**< Pointer to contexts */ + int num_applications; /**< Number of available application */ + DltDaemonApplication *applications; /**< Pointer to applications */ + int8_t default_log_level; /**< Default log level (of daemon) */ + int8_t default_trace_status; /**< Default trace status (of daemon) */ + unsigned int overflow_counter; /**< counts the number of lost messages. */ + int runtime_context_cfg_loaded; /**< Set to one, if runtime context configuration has been loaded, zero otherwise */ + char ecuid[DLT_ID_SIZE]; /**< ECU ID of daemon */ + int sendserialheader; /**< 1: send serial header; 0 don't send serial header */ + int timingpackets; /**< 1: send continous timing packets; 0 don't send continous timing packets */ + DltBuffer client_ringbuffer; /**< Ring-buffer for storing received logs while no client connection is available */ + char runtime_application_cfg[PATH_MAX + 1]; /**< Path and filename of persistent application configuration. Set to path max, as it specifies a full path*/ + char runtime_context_cfg[PATH_MAX + 1]; /**< Path and filename of persistent context configuration */ + char runtime_configuration[PATH_MAX + 1]; /**< Path and filename of persistent configuration */ + DltUserLogMode mode; /**< Mode used for tracing: off, external, internal, both */ + char connectionState; /**< state for tracing: 0 = no client connected, 1 = client connected */ + char *ECUVersionString; /**< Version string to send to client. Loaded from a file at startup. May be null. */ + DltDaemonState state; /**< the current logging state of dlt daemon. */ +} DltDaemon; + +/** + * Initialise the dlt daemon structure + * This function must be called before using further dlt daemon structure + * @param daemon pointer to dlt daemon structure + * @param RingbufferMinSize ringbuffer size + * @param RingbufferMaxSize ringbuffer size + * @param RingbufferStepSize ringbuffer size + * @param runtime_directory Directory of persistent configuration + * @param verbose if set to true verbose information is printed out. + * @return negative value if there was an error + */ +int dlt_daemon_init(DltDaemon *daemon,unsigned long RingbufferMinSize,unsigned long RingbufferMaxSize,unsigned long RingbufferStepSize,const char *runtime_directory,int verbose); +/** + * De-Initialise the dlt daemon structure + * @param daemon pointer to dlt daemon structure + * @param verbose if set to true verbose information is printed out. + * @return negative value if there was an error + */ +int dlt_daemon_free(DltDaemon *daemon,int verbose); + +/** + * Add (new) application to internal application management + * @param daemon pointer to dlt daemon structure + * @param apid pointer to application id + * @param pid process id of user application + * @param description description of application + * @param verbose if set to true verbose information is printed out. + * @return Pointer to added context, null pointer on error + */ +DltDaemonApplication* dlt_daemon_application_add(DltDaemon *daemon,char *apid,pid_t pid,char *description, int verbose); +/** + * Delete application from internal application management + * @param daemon pointer to dlt daemon structure + * @param application pointer to application to be deleted + * @param verbose if set to true verbose information is printed out. + * @return negative value if there was an error + */ +int dlt_daemon_application_del(DltDaemon *daemon, DltDaemonApplication *application, int verbose); +/** + * Find application with specific application id + * @param daemon pointer to dlt daemon structure + * @param apid pointer to application id + * @param verbose if set to true verbose information is printed out. + * @return Pointer to application, null pointer on error or not found + */ +DltDaemonApplication* dlt_daemon_application_find(DltDaemon *daemon,char *apid,int verbose); +/** + * Load applications from file to internal context management + * @param daemon pointer to dlt daemon structure + * @param filename name of file to be used for loading + * @param verbose if set to true verbose information is printed out. + * @return negative value if there was an error + */ +int dlt_daemon_applications_load(DltDaemon *daemon,const char *filename, int verbose); +/** + * Save applications from internal context management to file + * @param daemon pointer to dlt daemon structure + * @param filename name of file to be used for saving + * @param verbose if set to true verbose information is printed out. + * @return negative value if there was an error + */ +int dlt_daemon_applications_save(DltDaemon *daemon,const char *filename, int verbose); +/** + * Invalidate all applications fd, if fd is reused + * @param daemon pointer to dlt daemon structure + * @param fd file descriptor + * @param verbose if set to true verbose information is printed out. + * @return negative value if there was an error + */ +int dlt_daemon_applications_invalidate_fd(DltDaemon *daemon,int fd,int verbose); +/** + * Clear all applications in internal application management + * @param daemon pointer to dlt daemon structure + * @param verbose if set to true verbose information is printed out. + * @return negative value if there was an error + */ +int dlt_daemon_applications_clear(DltDaemon *daemon,int verbose); + +/** + * Add (new) context to internal context management + * @param daemon pointer to dlt daemon structure + * @param apid pointer to application id + * @param ctid pointer to context id + * @param log_level log level of context + * @param trace_status trace status of context + * @param log_level_pos offset of context in context field on user application + * @param user_handle connection handle for connection to user application + * @param description description of context + * @param verbose if set to true verbose information is printed out. + * @return Pointer to added context, null pointer on error + */ +DltDaemonContext* dlt_daemon_context_add(DltDaemon *daemon,char *apid,char *ctid,int8_t log_level,int8_t trace_status,int log_level_pos, int user_handle,char *description,int verbose); +/** + * Delete context from internal context management + * @param daemon pointer to dlt daemon structure + * @param context pointer to context to be deleted + * @param verbose if set to true verbose information is printed out. + * @return negative value if there was an error + */ +int dlt_daemon_context_del(DltDaemon *daemon, DltDaemonContext* context, int verbose); +/** + * Find context with specific application id and context id + * @param daemon pointer to dlt daemon structure + * @param apid pointer to application id + * @param ctid pointer to context id + * @param verbose if set to true verbose information is printed out. + * @return Pointer to context, null pointer on error or not found + */ +DltDaemonContext* dlt_daemon_context_find(DltDaemon *daemon,char *apid,char *ctid,int verbose); +/** + * Invalidate all contexts fd, if fd is reused + * @param daemon pointer to dlt daemon structure + * @param fd file descriptor + * @param verbose if set to true verbose information is printed out. + * @return negative value if there was an error + */ +int dlt_daemon_contexts_invalidate_fd(DltDaemon *daemon,int fd,int verbose); +/** + * Clear all contexts in internal context management + * @param daemon pointer to dlt daemon structure + * @param verbose if set to true verbose information is printed out. + * @return negative value if there was an error + */ +int dlt_daemon_contexts_clear(DltDaemon *daemon,int verbose); +/** + * Load contexts from file to internal context management + * @param daemon pointer to dlt daemon structure + * @param filename name of file to be used for loading + * @param verbose if set to true verbose information is printed out. + * @return negative value if there was an error + */ +int dlt_daemon_contexts_load(DltDaemon *daemon,const char *filename, int verbose); +/** + * Save contexts from internal context management to file + * @param daemon pointer to dlt daemon structure + * @param filename name of file to be used for saving + * @param verbose if set to true verbose information is printed out. + * @return negative value if there was an error + */ +int dlt_daemon_contexts_save(DltDaemon *daemon,const char *filename, int verbose); +/** + * Load persistant configuration + * @param daemon pointer to dlt daemon structure + * @param filename name of file to be used for loading + * @param verbose if set to true verbose information is printed out. + * @return negative value if there was an error + */ +int dlt_daemon_configuration_load(DltDaemon *daemon,const char *filename, int verbose); +/** + * Save configuration persistantly + * @param daemon pointer to dlt daemon structure + * @param filename name of file to be used for saving + * @param verbose if set to true verbose information is printed out. + * @return negative value if there was an error + */ +int dlt_daemon_configuration_save(DltDaemon *daemon,const char *filename, int verbose); + + +/** + * Send user message DLT_USER_MESSAGE_LOG_LEVEL to user application + * @param daemon pointer to dlt daemon structure + * @param context pointer to context for response + * @param verbose if set to true verbose information is printed out. + * @return negative value if there was an error + */ +int dlt_daemon_user_send_log_level(DltDaemon *daemon,DltDaemonContext *context, int verbose); + +/** + * Send user message DLT_USER_MESSAGE_LOG_STATE to user application + * @param daemon pointer to dlt daemon structure + * @param app pointer to application for response + * @param verbose if set to true verbose information is printed out. + * @return negative value if there was an error + */ +int dlt_daemon_user_send_log_state(DltDaemon *daemon,DltDaemonApplication *app,int verbose); + +/** + * Send user messages to all user applications using default context, or trace status + * to update those values + * @param daemon pointer to dlt daemon structure + * @param verbose if set to true verbose information is printed out. + */ +void dlt_daemon_user_send_default_update(DltDaemon *daemon, int verbose); + +/** + * Send user messages to all user applications the log status + * everytime the client is connected or disconnected. + * @param daemon pointer to dlt daemon structure + * @param verbose if set to true verbose information is printed out. + */ +void dlt_daemon_user_send_all_log_state(DltDaemon *daemon, int verbose); + +/** + * Process reset to factory default control message + * @param daemon pointer to dlt daemon structure + * @param filename name of file containing the runtime defaults for applications + * @param filename1 name of file containing the runtime defaults for contexts + * @param verbose if set to true verbose information is printed out. + */ +void dlt_daemon_control_reset_to_factory_default(DltDaemon *daemon,const char *filename, const char *filename1, int verbose); + +/** + * Change the logging state of dlt daemon + * @param daemon pointer to dlt daemon structure + * @param newState the requested new state + */ +void dlt_daemon_change_state(DltDaemon *daemon, DltDaemonState newState); + +#ifdef __cplusplus +} +#endif + +/** + \} +*/ + +#endif /* DLT_DAEMON_COMMON_H */ diff --git a/src/daemon/dlt_daemon_common_cfg.h b/src/daemon/dlt_daemon_common_cfg.h index ba28f24..914767a 100755 --- a/src/daemon/dlt_daemon_common_cfg.h +++ b/src/daemon/dlt_daemon_common_cfg.h @@ -1,119 +1,119 @@ -/** - * @licence app begin@ - * Copyright (C) 2012 BMW AG - * - * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps. - * - * Contributions are licensed to the GENIVI Alliance under one or more - * Contribution License Agreements. - * - * \copyright - * This Source Code Form is subject to the terms of the - * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with - * this file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * - * \author Alexander Wenzel BMW 2011-2012 - * - * \file dlt_daemon_common_cfg.h - * For further information see http://www.genivi.org/. - * @licence end@ - */ - - - -/******************************************************************************* -** ** -** SRC-MODULE: dlt_daemon_common_cfg.h ** -** ** -** TARGET : linux ** -** ** -** PROJECT : DLT ** -** ** -** AUTHOR : Alexander Wenzel Alexander.AW.Wenzel@bmw.de ** -** Markus Klein ** -** ** -** PURPOSE : ** -** ** -** REMARKS : ** -** ** -** PLATFORM DEPENDANT [yes/no]: yes ** -** ** -** TO BE CHANGED BY USER [yes/no]: no ** -** ** -*******************************************************************************/ - -/******************************************************************************* -** Author Identity ** -******************************************************************************** -** ** -** Initials Name Company ** -** -------- ------------------------- ---------------------------------- ** -** aw Alexander Wenzel BMW ** -** mk Markus Klein Fraunhofer ESK ** -*******************************************************************************/ - -/******************************************************************************* -** Author Identity ** -******************************************************************************** -** ** -** Initials Name Company ** -** -------- ------------------------- ---------------------------------- ** -** aw Alexander Wenzel BMW ** -** mk Markus Klein Fraunhofer ESK ** -*******************************************************************************/ - -#ifndef DLT_DAEMON_COMMON_CFG_H -#define DLT_DAEMON_COMMON_CFG_H - -/*************/ -/* Changable */ -/*************/ - -/* Default Path for runtime configuration */ -#define DLT_RUNTIME_DEFAULT_DIRECTORY "/tmp" -/* Path and filename for runtime configuration (applications) */ -#define DLT_RUNTIME_APPLICATION_CFG "/dlt-runtime-application.cfg" -/* Path and filename for runtime configuration (contexts) */ -#define DLT_RUNTIME_CONTEXT_CFG "/dlt-runtime-context.cfg" -/* Path and filename for runtime configuration */ -#define DLT_RUNTIME_CONFIGURATION "/dlt-runtime.cfg" - -/* Size of text buffer */ -#define DLT_DAEMON_COMMON_TEXTBUFSIZE 255 - -/* Initial log level */ -#define DLT_DAEMON_INITIAL_LOG_LEVEL DLT_LOG_INFO -/* Initial trace status */ -#define DLT_DAEMON_INITIAL_TRACE_STATUS DLT_TRACE_STATUS_OFF - -/* Application ID used when the dlt daemon creates a control message */ -#define DLT_DAEMON_CTRL_APID "DA1" -/* Context ID used when the dlt daemon creates a control message */ -#define DLT_DAEMON_CTRL_CTID "DC1" - -/* Number of entries to be allocated at one in application table, - when no more entries are available */ -#define DLT_DAEMON_APPL_ALLOC_SIZE 500 -/* Number of entries to be allocated at one in context table, - when no more entries are available */ -#define DLT_DAEMON_CONTEXT_ALLOC_SIZE 1000 - -/* Debug get log info function, - set to 1 to enable, 0 to disable debugging */ -#define DLT_DEBUG_GETLOGINFO 0 - -/************************/ -/* Don't change please! */ -/************************/ - -/* Minimum ID for an injection message */ -#define DLT_DAEMON_INJECTION_MIN 0xFFF -/* Maximum ID for an injection message */ -#define DLT_DAEMON_INJECTION_MAX 0xFFFFFFFF - -/* Remote interface identifier */ -#define DLT_DAEMON_REMO_STRING "remo" - -#endif /* DLT_DAEMON_COMMON_CFG_H */ - +/** + * @licence app begin@ + * Copyright (C) 2012 BMW AG + * + * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps. + * + * Contributions are licensed to the GENIVI Alliance under one or more + * Contribution License Agreements. + * + * \copyright + * This Source Code Form is subject to the terms of the + * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with + * this file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * + * \author Alexander Wenzel BMW 2011-2012 + * + * \file dlt_daemon_common_cfg.h + * For further information see http://www.genivi.org/. + * @licence end@ + */ + + + +/******************************************************************************* +** ** +** SRC-MODULE: dlt_daemon_common_cfg.h ** +** ** +** TARGET : linux ** +** ** +** PROJECT : DLT ** +** ** +** AUTHOR : Alexander Wenzel Alexander.AW.Wenzel@bmw.de ** +** Markus Klein ** +** ** +** PURPOSE : ** +** ** +** REMARKS : ** +** ** +** PLATFORM DEPENDANT [yes/no]: yes ** +** ** +** TO BE CHANGED BY USER [yes/no]: no ** +** ** +*******************************************************************************/ + +/******************************************************************************* +** Author Identity ** +******************************************************************************** +** ** +** Initials Name Company ** +** -------- ------------------------- ---------------------------------- ** +** aw Alexander Wenzel BMW ** +** mk Markus Klein Fraunhofer ESK ** +*******************************************************************************/ + +/******************************************************************************* +** Author Identity ** +******************************************************************************** +** ** +** Initials Name Company ** +** -------- ------------------------- ---------------------------------- ** +** aw Alexander Wenzel BMW ** +** mk Markus Klein Fraunhofer ESK ** +*******************************************************************************/ + +#ifndef DLT_DAEMON_COMMON_CFG_H +#define DLT_DAEMON_COMMON_CFG_H + +/*************/ +/* Changable */ +/*************/ + +/* Default Path for runtime configuration */ +#define DLT_RUNTIME_DEFAULT_DIRECTORY "/tmp" +/* Path and filename for runtime configuration (applications) */ +#define DLT_RUNTIME_APPLICATION_CFG "/dlt-runtime-application.cfg" +/* Path and filename for runtime configuration (contexts) */ +#define DLT_RUNTIME_CONTEXT_CFG "/dlt-runtime-context.cfg" +/* Path and filename for runtime configuration */ +#define DLT_RUNTIME_CONFIGURATION "/dlt-runtime.cfg" + +/* Size of text buffer */ +#define DLT_DAEMON_COMMON_TEXTBUFSIZE 255 + +/* Initial log level */ +#define DLT_DAEMON_INITIAL_LOG_LEVEL DLT_LOG_INFO +/* Initial trace status */ +#define DLT_DAEMON_INITIAL_TRACE_STATUS DLT_TRACE_STATUS_OFF + +/* Application ID used when the dlt daemon creates a control message */ +#define DLT_DAEMON_CTRL_APID "DA1" +/* Context ID used when the dlt daemon creates a control message */ +#define DLT_DAEMON_CTRL_CTID "DC1" + +/* Number of entries to be allocated at one in application table, + when no more entries are available */ +#define DLT_DAEMON_APPL_ALLOC_SIZE 500 +/* Number of entries to be allocated at one in context table, + when no more entries are available */ +#define DLT_DAEMON_CONTEXT_ALLOC_SIZE 1000 + +/* Debug get log info function, + set to 1 to enable, 0 to disable debugging */ +#define DLT_DEBUG_GETLOGINFO 0 + +/************************/ +/* Don't change please! */ +/************************/ + +/* Minimum ID for an injection message */ +#define DLT_DAEMON_INJECTION_MIN 0xFFF +/* Maximum ID for an injection message */ +#define DLT_DAEMON_INJECTION_MAX 0xFFFFFFFF + +/* Remote interface identifier */ +#define DLT_DAEMON_REMO_STRING "remo" + +#endif /* DLT_DAEMON_COMMON_CFG_H */ + diff --git a/src/examples/dlt-example-non-verbose-1.xml b/src/examples/dlt-example-non-verbose-1.xml index 7baae8c..0a49302 100755 --- a/src/examples/dlt-example-non-verbose-1.xml +++ b/src/examples/dlt-example-non-verbose-1.xml @@ -1,499 +1,499 @@ - - - - - - - - - - - projectTCB - - - - - - TCB - - 001.004.062 - - - APP1 - Application 1 - - - CON1 - Context 1 - - - - - TEST - Test Application - - - CON1 - Context 1 - - - - - LAT - Log And Trace - - - NV - NV test - - - - - - - - - - - - - PDU_10_0 - DLT non verbose test message. - 0 - OTHER - - - - - PDU_11_0 - Buffer near limit. Free size: - 0 - OTHER - - - - PDU_11_1 - 2 - OTHER - - - 0 - - - - - - - - PDU_12_0 - Buffer size exceeded. - 0 - OTHER - - - - PDU_12_1 - 4 - OTHER - - - 0 - - - - - - - PDU_12_2 - 4 - OTHER - - - 0 - - - - - - - PDU_12_3 - Process terminated. - 0 - OTHER - - - - - PDU_13_0 - Temperature measurement - 0 - OTHER - - - - PDU_13_1 - 1 - OTHER - - - 0 - - - measurement_point - - - - - - - - PDU_13_2 - 4 - OTHER - - - 0 - - - reading - Kelvin - - - - - - - - PDU_14_0 - Build ID: - 0 - OTHER - - - - PDU_14_1 - 0 - OTHER - - - 0 - - - - - - - - - - ID_10 - 0 - OTHER - - - - 0 - - - - DLT_TYPE_LOG - DLT_LOG_INFO - TEST - CON1 - dlt_test.c - 411 - - - - - ID_1001 - 2 - OTHER - - - - 0 - - - - 1 - - - - DLT_TYPE_LOG - DLT_LOG_WARN - APP1 - CON1 - application_file.c - 955 - - - - - ID_1002 - 2 - OTHER - - - - 0 - - - - 1 - - - - 2 - - - - 3 - - - - DLT_TYPE_LOG - DLT_LOG_ERROR - APP1 - CON1 - application_file.c - 1058 - - - - - ID_1003 - 5 - OTHER - - - - 0 - - - - 1 - - - - 2 - - - - DLT_TYPE_LOG - DLT_LOG_INFO - APP1 - CON1 - temp_meas.c - 42 - - - - - ID_14 - 0 - OTHER - - - - 0 - - - - 1 - - - - DLT_TYPE_LOG - DLT_LOG_INFO - LAT - NV - latsTask.c - 421 - - - - - - - - - S_BOOL - - - - - S_SINT8 - - - - - S_UINT8 - - - - - S_SINT16 - - - - - S_UINT16 - - - - - S_SINT32 - - - - - S_UINT32 - - - - - S_SINT64 - - - - - S_UINT64 - - - - - S_FLOA16 - - - - - S_FLOA32 - - - - - S_FLOA64 - - - - - S_STRG_ASCII - - - - - S_STRG_UTF8 - - - - - - - - - - - - BOOL - Coding for boolean values. - - 8 - - - - SINT8 - Coding for signel 8bit values. - - 8 - - - - UINT8 - Coding for unsignel 8bit values. - - 8 - - - - SINT16 - Coding for signel 16bit values. - - 16 - - - - UINT16 - Coding for unsignel 16bit values. - - 16 - - - - SINT32 - Coding for signel 32bit values. - - 32 - - - - UINT32 - Coding for unsignel 32bit values. - - 32 - - - - SINT64 - Coding for signel 64bit values. - - 64 - - - - UINT64 - Coding for unsignel 64bit values. - - 64 - - - - FLOA16 - Coding for float 16bit values. - - 16 - - - - FLOA32 - Coding for float 32bit values. - - 32 - - - - FLOA64 - Coding for float 64bit values. - - 64 - - - - STRG_ASCII - Coding for ASCII string. - - 0 - 255 - - - - STRG_UTF8 - Coding for UTF8 string. - - 0 - 255 - - - - - + + + + + + + + + + + projectTCB + + + + + + TCB + + 001.004.062 + + + APP1 + Application 1 + + + CON1 + Context 1 + + + + + TEST + Test Application + + + CON1 + Context 1 + + + + + LAT + Log And Trace + + + NV + NV test + + + + + + + + + + + + + PDU_10_0 + DLT non verbose test message. + 0 + OTHER + + + + + PDU_11_0 + Buffer near limit. Free size: + 0 + OTHER + + + + PDU_11_1 + 2 + OTHER + + + 0 + + + + + + + + PDU_12_0 + Buffer size exceeded. + 0 + OTHER + + + + PDU_12_1 + 4 + OTHER + + + 0 + + + + + + + PDU_12_2 + 4 + OTHER + + + 0 + + + + + + + PDU_12_3 + Process terminated. + 0 + OTHER + + + + + PDU_13_0 + Temperature measurement + 0 + OTHER + + + + PDU_13_1 + 1 + OTHER + + + 0 + + + measurement_point + + + + + + + + PDU_13_2 + 4 + OTHER + + + 0 + + + reading + Kelvin + + + + + + + + PDU_14_0 + Build ID: + 0 + OTHER + + + + PDU_14_1 + 0 + OTHER + + + 0 + + + + + + + + + + ID_10 + 0 + OTHER + + + + 0 + + + + DLT_TYPE_LOG + DLT_LOG_INFO + TEST + CON1 + dlt_test.c + 411 + + + + + ID_1001 + 2 + OTHER + + + + 0 + + + + 1 + + + + DLT_TYPE_LOG + DLT_LOG_WARN + APP1 + CON1 + application_file.c + 955 + + + + + ID_1002 + 2 + OTHER + + + + 0 + + + + 1 + + + + 2 + + + + 3 + + + + DLT_TYPE_LOG + DLT_LOG_ERROR + APP1 + CON1 + application_file.c + 1058 + + + + + ID_1003 + 5 + OTHER + + + + 0 + + + + 1 + + + + 2 + + + + DLT_TYPE_LOG + DLT_LOG_INFO + APP1 + CON1 + temp_meas.c + 42 + + + + + ID_14 + 0 + OTHER + + + + 0 + + + + 1 + + + + DLT_TYPE_LOG + DLT_LOG_INFO + LAT + NV + latsTask.c + 421 + + + + + + + + + S_BOOL + + + + + S_SINT8 + + + + + S_UINT8 + + + + + S_SINT16 + + + + + S_UINT16 + + + + + S_SINT32 + + + + + S_UINT32 + + + + + S_SINT64 + + + + + S_UINT64 + + + + + S_FLOA16 + + + + + S_FLOA32 + + + + + S_FLOA64 + + + + + S_STRG_ASCII + + + + + S_STRG_UTF8 + + + + + + + + + + + + BOOL + Coding for boolean values. + + 8 + + + + SINT8 + Coding for signel 8bit values. + + 8 + + + + UINT8 + Coding for unsignel 8bit values. + + 8 + + + + SINT16 + Coding for signel 16bit values. + + 16 + + + + UINT16 + Coding for unsignel 16bit values. + + 16 + + + + SINT32 + Coding for signel 32bit values. + + 32 + + + + UINT32 + Coding for unsignel 32bit values. + + 32 + + + + SINT64 + Coding for signel 64bit values. + + 64 + + + + UINT64 + Coding for unsignel 64bit values. + + 64 + + + + FLOA16 + Coding for float 16bit values. + + 16 + + + + FLOA32 + Coding for float 32bit values. + + 32 + + + + FLOA64 + Coding for float 64bit values. + + 64 + + + + STRG_ASCII + Coding for ASCII string. + + 0 + 255 + + + + STRG_UTF8 + Coding for UTF8 string. + + 0 + 255 + + + + + diff --git a/src/examples/dlt-example-non-verbose.xml b/src/examples/dlt-example-non-verbose.xml index 3b31ed3..ddc8155 100755 --- a/src/examples/dlt-example-non-verbose.xml +++ b/src/examples/dlt-example-non-verbose.xml @@ -1,425 +1,425 @@ - - - - - - - - - - - projectTCB - - - - - - TCB - - 001.004.062 - - - - - - - - - PDU_10_0 - DLT non verbose test message. - 0 - OTHER - - - - - PDU_11_0 - Buffer near limit. Free size: - 0 - OTHER - - - - PDU_11_1 - 2 - OTHER - - - 0 - - - - - - - - PDU_12_0 - Buffer size exceeded. - 0 - OTHER - - - - PDU_12_1 - Requested size: - 4 - OTHER - - - 0 - - - - - - - PDU_12_2 - Free size: - 4 - OTHER - - - 0 - - - - - - - PDU_12_3 - Process terminated. - 0 - OTHER - - - - - PDU_13_0 - Temperature measurement - 0 - OTHER - - - - PDU_13_1 - 1 - OTHER - - - 0 - - - measurement_point - - - - - - - - PDU_13_2 - 4 - OTHER - - - 0 - - - reading - Kelvin - - - - - - - - - - ID_10 - 0 - OTHER - - - - 0 - - - - DLT_TYPE_LOG - DLT_LOG_INFO - TEST - CON1 - dlt_test.c - 411 - - - - - ID_11 - 2 - OTHER - - - - 0 - - - - 1 - - - - DLT_TYPE_LOG - DLT_LOG_WARN - APP1 - CON1 - application_file.c - 955 - - - - - ID_12 - 8 - OTHER - - - - 0 - - - - 1 - - - - 2 - - - - 3 - - - - DLT_TYPE_LOG - DLT_LOG_ERROR - APP1 - CON1 - application_file.c - 1058 - - - - - ID_13 - 5 - OTHER - - - - 0 - - - - 1 - - - - 2 - - - - DLT_TYPE_LOG - DLT_LOG_INFO - APP1 - CON1 - temp_meas.c - 42 - - - - - - - - - S_BOOL - - - - - S_SINT8 - - - - - S_UINT8 - - - - - S_SINT16 - - - - - S_UINT16 - - - - - S_SINT32 - - - - - S_UINT32 - - - - - S_SINT64 - - - - - S_UINT64 - - - - - S_FLOA16 - - - - - S_FLOA32 - - - - - S_FLOA64 - - - - - S_STRG_ASCII - - - - - S_STRG_UTF8 - - - - - - - - - - - - BOOL - Coding for boolean values. - - 8 - - - - SINT8 - Coding for signel 8bit values. - - 8 - - - - UINT8 - Coding for unsignel 8bit values. - - 8 - - - - SINT16 - Coding for signel 16bit values. - - 16 - - - - UINT16 - Coding for unsignel 16bit values. - - 16 - - - - SINT32 - Coding for signel 32bit values. - - 32 - - - - UINT32 - Coding for unsignel 32bit values. - - 32 - - - - SINT64 - Coding for signel 64bit values. - - 64 - - - - UINT64 - Coding for unsignel 64bit values. - - 64 - - - - FLOA16 - Coding for float 16bit values. - - 16 - - - - FLOA32 - Coding for float 32bit values. - - 32 - - - - FLOA64 - Coding for float 64bit values. - - 64 - - - - STRG_ASCII - Coding for ASCII string. - - 0 - 255 - - - - STRG_UTF8 - Coding for UTF8 string. - - 0 - 255 - - - - - + + + + + + + + + + + projectTCB + + + + + + TCB + + 001.004.062 + + + + + + + + + PDU_10_0 + DLT non verbose test message. + 0 + OTHER + + + + + PDU_11_0 + Buffer near limit. Free size: + 0 + OTHER + + + + PDU_11_1 + 2 + OTHER + + + 0 + + + + + + + + PDU_12_0 + Buffer size exceeded. + 0 + OTHER + + + + PDU_12_1 + Requested size: + 4 + OTHER + + + 0 + + + + + + + PDU_12_2 + Free size: + 4 + OTHER + + + 0 + + + + + + + PDU_12_3 + Process terminated. + 0 + OTHER + + + + + PDU_13_0 + Temperature measurement + 0 + OTHER + + + + PDU_13_1 + 1 + OTHER + + + 0 + + + measurement_point + + + + + + + + PDU_13_2 + 4 + OTHER + + + 0 + + + reading + Kelvin + + + + + + + + + + ID_10 + 0 + OTHER + + + + 0 + + + + DLT_TYPE_LOG + DLT_LOG_INFO + TEST + CON1 + dlt_test.c + 411 + + + + + ID_11 + 2 + OTHER + + + + 0 + + + + 1 + + + + DLT_TYPE_LOG + DLT_LOG_WARN + APP1 + CON1 + application_file.c + 955 + + + + + ID_12 + 8 + OTHER + + + + 0 + + + + 1 + + + + 2 + + + + 3 + + + + DLT_TYPE_LOG + DLT_LOG_ERROR + APP1 + CON1 + application_file.c + 1058 + + + + + ID_13 + 5 + OTHER + + + + 0 + + + + 1 + + + + 2 + + + + DLT_TYPE_LOG + DLT_LOG_INFO + APP1 + CON1 + temp_meas.c + 42 + + + + + + + + + S_BOOL + + + + + S_SINT8 + + + + + S_UINT8 + + + + + S_SINT16 + + + + + S_UINT16 + + + + + S_SINT32 + + + + + S_UINT32 + + + + + S_SINT64 + + + + + S_UINT64 + + + + + S_FLOA16 + + + + + S_FLOA32 + + + + + S_FLOA64 + + + + + S_STRG_ASCII + + + + + S_STRG_UTF8 + + + + + + + + + + + + BOOL + Coding for boolean values. + + 8 + + + + SINT8 + Coding for signel 8bit values. + + 8 + + + + UINT8 + Coding for unsignel 8bit values. + + 8 + + + + SINT16 + Coding for signel 16bit values. + + 16 + + + + UINT16 + Coding for unsignel 16bit values. + + 16 + + + + SINT32 + Coding for signel 32bit values. + + 32 + + + + UINT32 + Coding for unsignel 32bit values. + + 32 + + + + SINT64 + Coding for signel 64bit values. + + 64 + + + + UINT64 + Coding for unsignel 64bit values. + + 64 + + + + FLOA16 + Coding for float 16bit values. + + 16 + + + + FLOA32 + Coding for float 32bit values. + + 32 + + + + FLOA64 + Coding for float 64bit values. + + 64 + + + + STRG_ASCII + Coding for ASCII string. + + 0 + 255 + + + + STRG_UTF8 + Coding for UTF8 string. + + 0 + 255 + + + + + diff --git a/src/lib/dlt_client_cfg.h b/src/lib/dlt_client_cfg.h index 8bb3885..6b490e7 100755 --- a/src/lib/dlt_client_cfg.h +++ b/src/lib/dlt_client_cfg.h @@ -1,75 +1,75 @@ -/** - * @licence app begin@ - * Copyright (C) 2012 BMW AG - * - * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps. - * - * Contributions are licensed to the GENIVI Alliance under one or more - * Contribution License Agreements. - * - * \copyright - * This Source Code Form is subject to the terms of the - * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with - * this file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * - * \author Alexander Wenzel BMW 2011-2012 - * - * \file dlt_client_cfg.h - * For further information see http://www.genivi.org/. - * @licence end@ - */ - - -/******************************************************************************* -** ** -** SRC-MODULE: dlt_client_cfg.h ** -** ** -** TARGET : linux ** -** ** -** PROJECT : DLT ** -** ** -** AUTHOR : Alexander Wenzel Alexander.AW.Wenzel@bmw.de ** -** Markus Klein ** -** ** -** PURPOSE : ** -** ** -** REMARKS : ** -** ** -** PLATFORM DEPENDANT [yes/no]: yes ** -** ** -** TO BE CHANGED BY USER [yes/no]: no ** -** ** -*******************************************************************************/ - -/******************************************************************************* -** Author Identity ** -******************************************************************************** -** ** -** Initials Name Company ** -** -------- ------------------------- ---------------------------------- ** -** aw Alexander Wenzel BMW ** -** mk Markus Klein Fraunhofer ESK ** -*******************************************************************************/ - -/******************************************************************************* -** Author Identity ** -******************************************************************************** -** ** -** Initials Name Company ** -** -------- ------------------------- ---------------------------------- ** -** aw Alexander Wenzel BMW ** -** mk Markus Klein Fraunhofer ESK ** -*******************************************************************************/ - -#ifndef DLT_CLIENT_CFG_H -#define DLT_CLIENT_CFG_H - -/*************/ -/* Changable */ -/*************/ +/** + * @licence app begin@ + * Copyright (C) 2012 BMW AG + * + * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps. + * + * Contributions are licensed to the GENIVI Alliance under one or more + * Contribution License Agreements. + * + * \copyright + * This Source Code Form is subject to the terms of the + * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with + * this file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * + * \author Alexander Wenzel BMW 2011-2012 + * + * \file dlt_client_cfg.h + * For further information see http://www.genivi.org/. + * @licence end@ + */ -/* Dummy application id of DLT client */ + +/******************************************************************************* +** ** +** SRC-MODULE: dlt_client_cfg.h ** +** ** +** TARGET : linux ** +** ** +** PROJECT : DLT ** +** ** +** AUTHOR : Alexander Wenzel Alexander.AW.Wenzel@bmw.de ** +** Markus Klein ** +** ** +** PURPOSE : ** +** ** +** REMARKS : ** +** ** +** PLATFORM DEPENDANT [yes/no]: yes ** +** ** +** TO BE CHANGED BY USER [yes/no]: no ** +** ** +*******************************************************************************/ + +/******************************************************************************* +** Author Identity ** +******************************************************************************** +** ** +** Initials Name Company ** +** -------- ------------------------- ---------------------------------- ** +** aw Alexander Wenzel BMW ** +** mk Markus Klein Fraunhofer ESK ** +*******************************************************************************/ + +/******************************************************************************* +** Author Identity ** +******************************************************************************** +** ** +** Initials Name Company ** +** -------- ------------------------- ---------------------------------- ** +** aw Alexander Wenzel BMW ** +** mk Markus Klein Fraunhofer ESK ** +*******************************************************************************/ + +#ifndef DLT_CLIENT_CFG_H +#define DLT_CLIENT_CFG_H + +/*************/ +/* Changable */ +/*************/ + +/* Dummy application id of DLT client */ #define DLT_CLIENT_DUMMY_APP_ID "CA1" /* Dummy context id of DLT client */ @@ -86,10 +86,10 @@ #define DLT_CLIENT_INITIAL_BAUDRATE B115200 #else #define DLT_CLIENT_INITIAL_BAUDRATE 0 -#endif - -/************************/ -/* Don't change please! */ -/************************/ - -#endif /* DLT_CLIENT_CFG_H */ +#endif + +/************************/ +/* Don't change please! */ +/************************/ + +#endif /* DLT_CLIENT_CFG_H */ diff --git a/src/lib/dlt_filetransfer.c b/src/lib/dlt_filetransfer.c index 32ca966..43047e3 100644 --- a/src/lib/dlt_filetransfer.c +++ b/src/lib/dlt_filetransfer.c @@ -63,7 +63,7 @@ #define MIN_TIMEOUT 20 -#define DLT_FILETRANSFER_TRANSFER_ALL_PACKAGES INT_MAX +#define DLT_FILETRANSFER_TRANSFER_ALL_PACKAGES INT_MAX //!Buffer for dlt file transfer. The size is defined by BUFFER_SIZE diff --git a/src/lib/dlt_user_cfg.h b/src/lib/dlt_user_cfg.h index 3355714..124be44 100755 --- a/src/lib/dlt_user_cfg.h +++ b/src/lib/dlt_user_cfg.h @@ -1,149 +1,149 @@ -/** - * @licence app begin@ - * Copyright (C) 2012 BMW AG - * - * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps. - * - * Contributions are licensed to the GENIVI Alliance under one or more - * Contribution License Agreements. - * - * \copyright - * This Source Code Form is subject to the terms of the - * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with - * this file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * - * \author Alexander Wenzel BMW 2011-2012 - * - * \file dlt_user_cfg.h - * For further information see http://www.genivi.org/. - * @licence end@ - */ - - -/******************************************************************************* -** ** -** SRC-MODULE: dlt_user_cfg.h ** -** ** -** TARGET : linux ** -** ** -** PROJECT : DLT ** -** ** -** AUTHOR : Alexander Wenzel Alexander.AW.Wenzel@bmw.de ** -** Markus Klein ** -** ** -** PURPOSE : ** -** ** -** REMARKS : ** -** ** -** PLATFORM DEPENDANT [yes/no]: yes ** -** ** -** TO BE CHANGED BY USER [yes/no]: no ** -** ** -*******************************************************************************/ - -/******************************************************************************* -** Author Identity ** -******************************************************************************** -** ** -** Initials Name Company ** -** -------- ------------------------- ---------------------------------- ** -** aw Alexander Wenzel BMW ** -** mk Markus Klein Fraunhofer ESK ** -*******************************************************************************/ - -/******************************************************************************* -** Author Identity ** -******************************************************************************** -** ** -** Initials Name Company ** -** -------- ------------------------- ---------------------------------- ** -** aw Alexander Wenzel BMW ** -** mk Markus Klein Fraunhofer ESK ** -*******************************************************************************/ - -#ifndef DLT_USER_CFG_H -#define DLT_USER_CFG_H - -/*************/ -/* Changable */ -/*************/ - -/* Size of receive buffer */ -#define DLT_USER_RCVBUF_MAX_SIZE 10024 - -/* Size of ring buffer */ -#define DLT_USER_RINGBUFFER_MIN_SIZE 50000 -#define DLT_USER_RINGBUFFER_MAX_SIZE 500000 -#define DLT_USER_RINGBUFFER_STEP_SIZE 50000 - -/* Temporary buffer length */ -#define DLT_USER_BUFFER_LENGTH 255 - -/* Number of context entries, which will be allocated, - if no more context entries are available */ -#define DLT_USER_CONTEXT_ALLOC_SIZE 500 - -/* Maximu length of a filename string */ -#define DLT_USER_MAX_FILENAME_LENGTH 255 - -/* Maximum length of a single version number */ -#define DLT_USER_MAX_LIB_VERSION_LENGTH 3 - -/* Length of buffer for constructing text output */ -#define DLT_USER_TEXT_LENGTH 10024 - -/* Stack size of receiver thread */ -#define DLT_USER_RECEIVERTHREAD_STACKSIZE 100000 - -/* default value for storage to file, not used in daemon connection */ -#define DLT_USER_DEFAULT_ECU_ID "ECU1" - -/* Initial log level */ -#define DLT_USER_INITIAL_LOG_LEVEL DLT_LOG_INFO - -/* Initial trace status */ -#define DLT_USER_INITIAL_TRACE_STATUS DLT_TRACE_STATUS_OFF - -/* use extended header for non-verbose mode: 0 - don't use, 1 - use */ -#define DLT_USER_USE_EXTENDED_HEADER_FOR_NONVERBOSE 1 - -/* send always session id: 0 - don't use, 1 - use */ -#define DLT_USER_WITH_SESSION_ID 1 - -/* send always timestamp: 0 - don't use, 1 - use */ -#define DLT_USER_WITH_TIMESTAMP 1 - -/* send always ecu id: 0 - don't use, 1 - use */ -#define DLT_USER_WITH_ECU_ID 1 - -/* default message id for non-verbose mode, if no message id was provided */ -#define DLT_USER_DEFAULT_MSGID 0xffff - -/* delay in receiver routine in usec (100000 usec = 100ms) */ -#define DLT_USER_RECEIVE_DELAY 100000 - -/* Name of environment variable for local print mode */ -#define DLT_USER_ENV_LOCAL_PRINT_MODE "DLT_LOCAL_PRINT_MODE" - -/* Timeout offset for resending user buffer at exit in 10th milliseconds (10000 = 1s)*/ -#define DLT_USER_ATEXIT_RESEND_BUFFER_EXIT_TIMEOUT 100000 - -/* Sleeps between resending user buffer at exit in usec (1000 usec = 1ms)*/ -#define DLT_USER_ATEXIT_RESEND_BUFFER_SLEEP 100000 - - -/************************/ -/* Don't change please! */ -/************************/ - -/* Minimum valid ID of an injection message */ -#define DLT_USER_INJECTION_MIN 0xFFF - -/* Defines of the different local print modes */ -#define DLT_PM_UNSET 0 -#define DLT_PM_AUTOMATIC 1 -#define DLT_PM_FORCE_ON 2 -#define DLT_PM_FORCE_OFF 3 - -#endif /* DLT_USER_CFG_H */ +/** + * @licence app begin@ + * Copyright (C) 2012 BMW AG + * + * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps. + * + * Contributions are licensed to the GENIVI Alliance under one or more + * Contribution License Agreements. + * + * \copyright + * This Source Code Form is subject to the terms of the + * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with + * this file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * + * \author Alexander Wenzel BMW 2011-2012 + * + * \file dlt_user_cfg.h + * For further information see http://www.genivi.org/. + * @licence end@ + */ + + +/******************************************************************************* +** ** +** SRC-MODULE: dlt_user_cfg.h ** +** ** +** TARGET : linux ** +** ** +** PROJECT : DLT ** +** ** +** AUTHOR : Alexander Wenzel Alexander.AW.Wenzel@bmw.de ** +** Markus Klein ** +** ** +** PURPOSE : ** +** ** +** REMARKS : ** +** ** +** PLATFORM DEPENDANT [yes/no]: yes ** +** ** +** TO BE CHANGED BY USER [yes/no]: no ** +** ** +*******************************************************************************/ + +/******************************************************************************* +** Author Identity ** +******************************************************************************** +** ** +** Initials Name Company ** +** -------- ------------------------- ---------------------------------- ** +** aw Alexander Wenzel BMW ** +** mk Markus Klein Fraunhofer ESK ** +*******************************************************************************/ + +/******************************************************************************* +** Author Identity ** +******************************************************************************** +** ** +** Initials Name Company ** +** -------- ------------------------- ---------------------------------- ** +** aw Alexander Wenzel BMW ** +** mk Markus Klein Fraunhofer ESK ** +*******************************************************************************/ + +#ifndef DLT_USER_CFG_H +#define DLT_USER_CFG_H + +/*************/ +/* Changable */ +/*************/ + +/* Size of receive buffer */ +#define DLT_USER_RCVBUF_MAX_SIZE 10024 + +/* Size of ring buffer */ +#define DLT_USER_RINGBUFFER_MIN_SIZE 50000 +#define DLT_USER_RINGBUFFER_MAX_SIZE 500000 +#define DLT_USER_RINGBUFFER_STEP_SIZE 50000 + +/* Temporary buffer length */ +#define DLT_USER_BUFFER_LENGTH 255 + +/* Number of context entries, which will be allocated, + if no more context entries are available */ +#define DLT_USER_CONTEXT_ALLOC_SIZE 500 + +/* Maximu length of a filename string */ +#define DLT_USER_MAX_FILENAME_LENGTH 255 + +/* Maximum length of a single version number */ +#define DLT_USER_MAX_LIB_VERSION_LENGTH 3 + +/* Length of buffer for constructing text output */ +#define DLT_USER_TEXT_LENGTH 10024 + +/* Stack size of receiver thread */ +#define DLT_USER_RECEIVERTHREAD_STACKSIZE 100000 + +/* default value for storage to file, not used in daemon connection */ +#define DLT_USER_DEFAULT_ECU_ID "ECU1" + +/* Initial log level */ +#define DLT_USER_INITIAL_LOG_LEVEL DLT_LOG_INFO + +/* Initial trace status */ +#define DLT_USER_INITIAL_TRACE_STATUS DLT_TRACE_STATUS_OFF + +/* use extended header for non-verbose mode: 0 - don't use, 1 - use */ +#define DLT_USER_USE_EXTENDED_HEADER_FOR_NONVERBOSE 1 + +/* send always session id: 0 - don't use, 1 - use */ +#define DLT_USER_WITH_SESSION_ID 1 + +/* send always timestamp: 0 - don't use, 1 - use */ +#define DLT_USER_WITH_TIMESTAMP 1 + +/* send always ecu id: 0 - don't use, 1 - use */ +#define DLT_USER_WITH_ECU_ID 1 + +/* default message id for non-verbose mode, if no message id was provided */ +#define DLT_USER_DEFAULT_MSGID 0xffff + +/* delay in receiver routine in usec (100000 usec = 100ms) */ +#define DLT_USER_RECEIVE_DELAY 100000 + +/* Name of environment variable for local print mode */ +#define DLT_USER_ENV_LOCAL_PRINT_MODE "DLT_LOCAL_PRINT_MODE" + +/* Timeout offset for resending user buffer at exit in 10th milliseconds (10000 = 1s)*/ +#define DLT_USER_ATEXIT_RESEND_BUFFER_EXIT_TIMEOUT 100000 + +/* Sleeps between resending user buffer at exit in usec (1000 usec = 1ms)*/ +#define DLT_USER_ATEXIT_RESEND_BUFFER_SLEEP 100000 + + +/************************/ +/* Don't change please! */ +/************************/ + +/* Minimum valid ID of an injection message */ +#define DLT_USER_INJECTION_MIN 0xFFF + +/* Defines of the different local print modes */ +#define DLT_PM_UNSET 0 +#define DLT_PM_AUTOMATIC 1 +#define DLT_PM_FORCE_ON 2 +#define DLT_PM_FORCE_OFF 3 + +#endif /* DLT_USER_CFG_H */ diff --git a/src/shared/dlt_common_cfg.h b/src/shared/dlt_common_cfg.h index 4021737..f765ed6 100755 --- a/src/shared/dlt_common_cfg.h +++ b/src/shared/dlt_common_cfg.h @@ -1,111 +1,111 @@ -/** - * @licence app begin@ - * Copyright (C) 2012 BMW AG - * - * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps. - * - * Contributions are licensed to the GENIVI Alliance under one or more - * Contribution License Agreements. - * - * \copyright - * This Source Code Form is subject to the terms of the - * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with - * this file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * - * \author Alexander Wenzel BMW 2011-2012 - * - * \file dlt_common_cfg.h - * For further information see http://www.genivi.org/. - * @licence end@ - */ - - -/******************************************************************************* -** ** -** SRC-MODULE: dlt_common_cfg.h ** -** ** -** TARGET : linux ** -** ** -** PROJECT : DLT ** -** ** -** AUTHOR : Alexander Wenzel Alexander.AW.Wenzel@bmw.de ** -** Markus Klein ** -** ** -** PURPOSE : ** -** ** -** REMARKS : ** -** ** -** PLATFORM DEPENDANT [yes/no]: yes ** -** ** -** TO BE CHANGED BY USER [yes/no]: no ** -** ** -*******************************************************************************/ - -/******************************************************************************* -** Author Identity ** -******************************************************************************** -** ** -** Initials Name Company ** -** -------- ------------------------- ---------------------------------- ** -** aw Alexander Wenzel BMW ** -** mk Markus Klein Fraunhofer ESK ** -*******************************************************************************/ - -/******************************************************************************* -** Author Identity ** -******************************************************************************** -** ** -** Initials Name Company ** -** -------- ------------------------- ---------------------------------- ** -** aw Alexander Wenzel BMW ** -** mk Markus Klein Fraunhofer ESK ** -*******************************************************************************/ - -#ifndef DLT_COMMON_CFG_H -#define DLT_COMMON_CFG_H - -/*************/ -/* Changable */ -/*************/ - -/* Buffer length for temporary buffer */ -#define DLT_COMMON_BUFFER_LENGTH 255 - -/* Number of ASCII chars to be printed in one line as HEX and as ASCII */ -/* e.g. XX XX XX XX ABCD is DLT_COMMON_HEX_CHARS = 4 */ -#define DLT_COMMON_HEX_CHARS 16 - -/* Length of line number */ -#define DLT_COMMON_HEX_LINELEN 8 - -/* Length of one char */ -#define DLT_COMMON_CHARLEN 1 - -/* Number of indices to be allocated at one, if no more indeces are left */ -#define DLT_COMMON_INDEX_ALLOC 1000 - -/* If limited output is called, - this is the maximum number of characters to be printed out */ -#define DLT_COMMON_ASCII_LIMIT_MAX_CHARS 20 - -/* This defines the dummy ECU ID set in storage header during import - of a message from a DLT file in RAW format (without storage header) */ -#define DLT_COMMON_DUMMY_ECUID "ECU" - - -/************************/ -/* Don't change please! */ -/************************/ - -/* ASCII value for space */ -#define DLT_COMMON_ASCII_CHAR_SPACE 32 - -/* ASCII value for tilde */ -#define DLT_COMMON_ASCII_CHAR_TILDE 126 - -/* ASCII value for lesser than */ -#define DLT_COMMON_ASCII_CHAR_LT 60 - -#endif /* DLT_COMMON_CFG_H */ - +/** + * @licence app begin@ + * Copyright (C) 2012 BMW AG + * + * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps. + * + * Contributions are licensed to the GENIVI Alliance under one or more + * Contribution License Agreements. + * + * \copyright + * This Source Code Form is subject to the terms of the + * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with + * this file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * + * \author Alexander Wenzel BMW 2011-2012 + * + * \file dlt_common_cfg.h + * For further information see http://www.genivi.org/. + * @licence end@ + */ + + +/******************************************************************************* +** ** +** SRC-MODULE: dlt_common_cfg.h ** +** ** +** TARGET : linux ** +** ** +** PROJECT : DLT ** +** ** +** AUTHOR : Alexander Wenzel Alexander.AW.Wenzel@bmw.de ** +** Markus Klein ** +** ** +** PURPOSE : ** +** ** +** REMARKS : ** +** ** +** PLATFORM DEPENDANT [yes/no]: yes ** +** ** +** TO BE CHANGED BY USER [yes/no]: no ** +** ** +*******************************************************************************/ + +/******************************************************************************* +** Author Identity ** +******************************************************************************** +** ** +** Initials Name Company ** +** -------- ------------------------- ---------------------------------- ** +** aw Alexander Wenzel BMW ** +** mk Markus Klein Fraunhofer ESK ** +*******************************************************************************/ + +/******************************************************************************* +** Author Identity ** +******************************************************************************** +** ** +** Initials Name Company ** +** -------- ------------------------- ---------------------------------- ** +** aw Alexander Wenzel BMW ** +** mk Markus Klein Fraunhofer ESK ** +*******************************************************************************/ + +#ifndef DLT_COMMON_CFG_H +#define DLT_COMMON_CFG_H + +/*************/ +/* Changable */ +/*************/ + +/* Buffer length for temporary buffer */ +#define DLT_COMMON_BUFFER_LENGTH 255 + +/* Number of ASCII chars to be printed in one line as HEX and as ASCII */ +/* e.g. XX XX XX XX ABCD is DLT_COMMON_HEX_CHARS = 4 */ +#define DLT_COMMON_HEX_CHARS 16 + +/* Length of line number */ +#define DLT_COMMON_HEX_LINELEN 8 + +/* Length of one char */ +#define DLT_COMMON_CHARLEN 1 + +/* Number of indices to be allocated at one, if no more indeces are left */ +#define DLT_COMMON_INDEX_ALLOC 1000 + +/* If limited output is called, + this is the maximum number of characters to be printed out */ +#define DLT_COMMON_ASCII_LIMIT_MAX_CHARS 20 + +/* This defines the dummy ECU ID set in storage header during import + of a message from a DLT file in RAW format (without storage header) */ +#define DLT_COMMON_DUMMY_ECUID "ECU" + + +/************************/ +/* Don't change please! */ +/************************/ + +/* ASCII value for space */ +#define DLT_COMMON_ASCII_CHAR_SPACE 32 + +/* ASCII value for tilde */ +#define DLT_COMMON_ASCII_CHAR_TILDE 126 + +/* ASCII value for lesser than */ +#define DLT_COMMON_ASCII_CHAR_LT 60 + +#endif /* DLT_COMMON_CFG_H */ + diff --git a/src/shared/dlt_user_shared.h b/src/shared/dlt_user_shared.h index 5132a74..a980d0d 100755 --- a/src/shared/dlt_user_shared.h +++ b/src/shared/dlt_user_shared.h @@ -1,239 +1,239 @@ -/** - * @licence app begin@ - * Copyright (C) 2012 BMW AG - * - * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps. - * - * Contributions are licensed to the GENIVI Alliance under one or more - * Contribution License Agreements. - * - * \copyright - * This Source Code Form is subject to the terms of the - * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with - * this file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * - * \author Alexander Wenzel BMW 2011-2012 - * - * \file dlt_user_shared.h - * For further information see http://www.genivi.org/. - * @licence end@ - */ - - - -/******************************************************************************* -** ** -** SRC-MODULE: dlt_user_shared.h ** -** ** -** TARGET : linux ** -** ** -** PROJECT : DLT ** -** ** -** AUTHOR : Alexander Wenzel Alexander.AW.Wenzel@bmw.de ** -** Markus Klein ** -** ** -** PURPOSE : ** -** ** -** REMARKS : ** -** ** -** PLATFORM DEPENDANT [yes/no]: yes ** -** ** -** TO BE CHANGED BY USER [yes/no]: no ** -** ** -*******************************************************************************/ - -/******************************************************************************* -** Author Identity ** -******************************************************************************** -** ** -** Initials Name Company ** -** -------- ------------------------- ---------------------------------- ** -** aw Alexander Wenzel BMW ** -** mk Markus Klein Fraunhofer ESK ** -*******************************************************************************/ - -/******************************************************************************* -** Author Identity ** -******************************************************************************** -** ** -** Initials Name Company ** -** -------- ------------------------- ---------------------------------- ** -** aw Alexander Wenzel BMW ** -** mk Markus Klein Fraunhofer ESK ** -*******************************************************************************/ - -#ifndef DLT_USER_SHARED_H -#define DLT_USER_SHARED_H - -#include "dlt_types.h" -#include "dlt_user.h" - -#include - -/** - * This are the return values for the functions dlt_user_log_out2() and dlt_user_log_out3() +/** + * @licence app begin@ + * Copyright (C) 2012 BMW AG + * + * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps. + * + * Contributions are licensed to the GENIVI Alliance under one or more + * Contribution License Agreements. + * + * \copyright + * This Source Code Form is subject to the terms of the + * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with + * this file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * + * \author Alexander Wenzel BMW 2011-2012 + * + * \file dlt_user_shared.h + * For further information see http://www.genivi.org/. + * @licence end@ + */ + + + +/******************************************************************************* +** ** +** SRC-MODULE: dlt_user_shared.h ** +** ** +** TARGET : linux ** +** ** +** PROJECT : DLT ** +** ** +** AUTHOR : Alexander Wenzel Alexander.AW.Wenzel@bmw.de ** +** Markus Klein ** +** ** +** PURPOSE : ** +** ** +** REMARKS : ** +** ** +** PLATFORM DEPENDANT [yes/no]: yes ** +** ** +** TO BE CHANGED BY USER [yes/no]: no ** +** ** +*******************************************************************************/ + +/******************************************************************************* +** Author Identity ** +******************************************************************************** +** ** +** Initials Name Company ** +** -------- ------------------------- ---------------------------------- ** +** aw Alexander Wenzel BMW ** +** mk Markus Klein Fraunhofer ESK ** +*******************************************************************************/ + +/******************************************************************************* +** Author Identity ** +******************************************************************************** +** ** +** Initials Name Company ** +** -------- ------------------------- ---------------------------------- ** +** aw Alexander Wenzel BMW ** +** mk Markus Klein Fraunhofer ESK ** +*******************************************************************************/ + +#ifndef DLT_USER_SHARED_H +#define DLT_USER_SHARED_H + +#include "dlt_types.h" +#include "dlt_user.h" + +#include + +/** + * This are the return values for the functions dlt_user_log_out2() and dlt_user_log_out3() */ typedef enum -{ +{ DLT_RETURN_BUFFER_FULL = -4, DLT_RETURN_PIPE_FULL = -3, DLT_RETURN_PIPE_ERROR = -2, DLT_RETURN_ERROR = -1, DLT_RETURN_OK = 0 } DltReturnValue; - -/** - * This is the header of each message to be exchanged between application and daemon. - */ -typedef struct -{ - char pattern[DLT_ID_SIZE]; /**< This pattern should be DUH0x01 */ - uint32_t message; /**< messsage info */ -} PACKED DltUserHeader; - -/** - * This is the internal message content to exchange control msg register app information between application and daemon. - */ -typedef struct -{ - char apid[DLT_ID_SIZE]; /**< application id */ - pid_t pid; /**< process id of user application */ - uint32_t description_length; /**< length of description */ -} PACKED DltUserControlMsgRegisterApplication; - -/** - * This is the internal message content to exchange control msg unregister app information between application and daemon. - */ -typedef struct -{ - char apid[DLT_ID_SIZE]; /**< application id */ - pid_t pid; /**< process id of user application */ -} PACKED DltUserControlMsgUnregisterApplication; - -/** - * This is the internal message content to exchange control msg register information between application and daemon. - */ -typedef struct -{ - char apid[DLT_ID_SIZE]; /**< application id */ - char ctid[DLT_ID_SIZE]; /**< context id */ - int32_t log_level_pos; /**< offset in management structure on user-application side */ - int8_t log_level; /**< log level */ - int8_t trace_status; /**< trace status */ - pid_t pid; /**< process id of user application */ - uint32_t description_length; /**< length of description */ -} PACKED DltUserControlMsgRegisterContext; - -/** - * This is the internal message content to exchange control msg unregister information between application and daemon. - */ -typedef struct -{ - char apid[DLT_ID_SIZE]; /**< application id */ - char ctid[DLT_ID_SIZE]; /**< context id */ - pid_t pid; /**< process id of user application */ -} PACKED DltUserControlMsgUnregisterContext; - -/** - * This is the internal message content to exchange control msg log level information between application and daemon. - */ -typedef struct -{ - uint8_t log_level; /**< log level */ - uint8_t trace_status; /**< trace status */ - int32_t log_level_pos; /**< offset in management structure on user-application side */ -} PACKED DltUserControlMsgLogLevel; - -/** - * This is the internal message content to exchange control msg injection information between application and daemon. - */ -typedef struct -{ - int32_t log_level_pos; /**< offset in management structure on user-application side */ - uint32_t service_id; /**< service id of injection */ - uint32_t data_length_inject; /**< length of injection message data field */ -} PACKED DltUserControlMsgInjection; - -/** - * This is the internal message content to exchange information about application log level and trace stats between - * application and daemon. - */ -typedef struct -{ - char apid[DLT_ID_SIZE]; /**< application id */ - uint8_t log_level; /**< log level */ - uint8_t trace_status; /**< trace status */ -} PACKED DltUserControlMsgAppLogLevelTraceStatus; - -/** - * This is the internal message content to set the logging mode: off, external, internal, both. - */ -typedef struct -{ - int8_t log_mode; /**< the mode to be used for logging: off, external, internal, both */ -} PACKED DltUserControlMsgLogMode; - -/** - * This is the internal message content to get the logging state: 0 = off, 1 = external client connected. - */ -typedef struct -{ - int8_t log_state; /**< the state to be used for logging state: 0 = off, 1 = external client connected */ -} PACKED DltUserControlMsgLogState; - -/** - * This is the internal message content to get the number of lost messages reported to the daemon. - */ -typedef struct -{ - uint32_t overflow_counter; /**< counts the number of lost messages */ - char apid[4]; /**< application which lost messages */ -} PACKED DltUserControlMsgBufferOverflow; - -/************************************************************************************************** -* The folowing functions are used shared between the user lib and the daemon implementation -**************************************************************************************************/ - -/** - * Set user header marker and store message type in user header - * @param userheader pointer to the userheader - * @param mtype user message type of internal message + +/** + * This is the header of each message to be exchanged between application and daemon. + */ +typedef struct +{ + char pattern[DLT_ID_SIZE]; /**< This pattern should be DUH0x01 */ + uint32_t message; /**< messsage info */ +} PACKED DltUserHeader; + +/** + * This is the internal message content to exchange control msg register app information between application and daemon. + */ +typedef struct +{ + char apid[DLT_ID_SIZE]; /**< application id */ + pid_t pid; /**< process id of user application */ + uint32_t description_length; /**< length of description */ +} PACKED DltUserControlMsgRegisterApplication; + +/** + * This is the internal message content to exchange control msg unregister app information between application and daemon. + */ +typedef struct +{ + char apid[DLT_ID_SIZE]; /**< application id */ + pid_t pid; /**< process id of user application */ +} PACKED DltUserControlMsgUnregisterApplication; + +/** + * This is the internal message content to exchange control msg register information between application and daemon. + */ +typedef struct +{ + char apid[DLT_ID_SIZE]; /**< application id */ + char ctid[DLT_ID_SIZE]; /**< context id */ + int32_t log_level_pos; /**< offset in management structure on user-application side */ + int8_t log_level; /**< log level */ + int8_t trace_status; /**< trace status */ + pid_t pid; /**< process id of user application */ + uint32_t description_length; /**< length of description */ +} PACKED DltUserControlMsgRegisterContext; + +/** + * This is the internal message content to exchange control msg unregister information between application and daemon. + */ +typedef struct +{ + char apid[DLT_ID_SIZE]; /**< application id */ + char ctid[DLT_ID_SIZE]; /**< context id */ + pid_t pid; /**< process id of user application */ +} PACKED DltUserControlMsgUnregisterContext; + +/** + * This is the internal message content to exchange control msg log level information between application and daemon. + */ +typedef struct +{ + uint8_t log_level; /**< log level */ + uint8_t trace_status; /**< trace status */ + int32_t log_level_pos; /**< offset in management structure on user-application side */ +} PACKED DltUserControlMsgLogLevel; + +/** + * This is the internal message content to exchange control msg injection information between application and daemon. + */ +typedef struct +{ + int32_t log_level_pos; /**< offset in management structure on user-application side */ + uint32_t service_id; /**< service id of injection */ + uint32_t data_length_inject; /**< length of injection message data field */ +} PACKED DltUserControlMsgInjection; + +/** + * This is the internal message content to exchange information about application log level and trace stats between + * application and daemon. + */ +typedef struct +{ + char apid[DLT_ID_SIZE]; /**< application id */ + uint8_t log_level; /**< log level */ + uint8_t trace_status; /**< trace status */ +} PACKED DltUserControlMsgAppLogLevelTraceStatus; + +/** + * This is the internal message content to set the logging mode: off, external, internal, both. + */ +typedef struct +{ + int8_t log_mode; /**< the mode to be used for logging: off, external, internal, both */ +} PACKED DltUserControlMsgLogMode; + +/** + * This is the internal message content to get the logging state: 0 = off, 1 = external client connected. + */ +typedef struct +{ + int8_t log_state; /**< the state to be used for logging state: 0 = off, 1 = external client connected */ +} PACKED DltUserControlMsgLogState; + +/** + * This is the internal message content to get the number of lost messages reported to the daemon. + */ +typedef struct +{ + uint32_t overflow_counter; /**< counts the number of lost messages */ + char apid[4]; /**< application which lost messages */ +} PACKED DltUserControlMsgBufferOverflow; + +/************************************************************************************************** +* The folowing functions are used shared between the user lib and the daemon implementation +**************************************************************************************************/ + +/** + * Set user header marker and store message type in user header + * @param userheader pointer to the userheader + * @param mtype user message type of internal message * @return negative value if there was an error { return -1; - } - */ -int dlt_user_set_userheader(DltUserHeader *userheader, uint32_t mtype); - -/** - * Check if user header contains its marker - * @param userheader pointer to the userheader - * @return 0 no, 1 yes, negative value if there was an error - */ -int dlt_user_check_userheader(DltUserHeader *userheader); - -/** - * Atomic write to file descriptor, using vector of 2 elements - * @param handle file descriptor - * @param ptr1 generic pointer to first segment of data to be written - * @param len1 length of first segment of data to be written - * @param ptr2 generic pointer to second segment of data to be written - * @param len2 length of second segment of data to be written - * @return Value from DltReturnValue enum - */ -DltReturnValue dlt_user_log_out2(int handle, void *ptr1, size_t len1, void* ptr2, size_t len2); - -/** - * Atomic write to file descriptor, using vector of 3 elements - * @param handle file descriptor - * @param ptr1 generic pointer to first segment of data to be written - * @param len1 length of first segment of data to be written - * @param ptr2 generic pointer to second segment of data to be written - * @param len2 length of second segment of data to be written - * @param ptr3 generic pointer to third segment of data to be written - * @param len3 length of third segment of data to be written - * @return Value from DltReturnValue enum - */ -DltReturnValue dlt_user_log_out3(int handle, void *ptr1, size_t len1, void* ptr2, size_t len2, void *ptr3, size_t len3); - -#endif /* DLT_USER_SHARED_H */ + } + */ +int dlt_user_set_userheader(DltUserHeader *userheader, uint32_t mtype); + +/** + * Check if user header contains its marker + * @param userheader pointer to the userheader + * @return 0 no, 1 yes, negative value if there was an error + */ +int dlt_user_check_userheader(DltUserHeader *userheader); + +/** + * Atomic write to file descriptor, using vector of 2 elements + * @param handle file descriptor + * @param ptr1 generic pointer to first segment of data to be written + * @param len1 length of first segment of data to be written + * @param ptr2 generic pointer to second segment of data to be written + * @param len2 length of second segment of data to be written + * @return Value from DltReturnValue enum + */ +DltReturnValue dlt_user_log_out2(int handle, void *ptr1, size_t len1, void* ptr2, size_t len2); + +/** + * Atomic write to file descriptor, using vector of 3 elements + * @param handle file descriptor + * @param ptr1 generic pointer to first segment of data to be written + * @param len1 length of first segment of data to be written + * @param ptr2 generic pointer to second segment of data to be written + * @param len2 length of second segment of data to be written + * @param ptr3 generic pointer to third segment of data to be written + * @param len3 length of third segment of data to be written + * @return Value from DltReturnValue enum + */ +DltReturnValue dlt_user_log_out3(int handle, void *ptr1, size_t len1, void* ptr2, size_t len2, void *ptr3, size_t len3); + +#endif /* DLT_USER_SHARED_H */ diff --git a/src/shared/dlt_user_shared_cfg.h b/src/shared/dlt_user_shared_cfg.h index 36d628a..a8576f5 100755 --- a/src/shared/dlt_user_shared_cfg.h +++ b/src/shared/dlt_user_shared_cfg.h @@ -1,106 +1,106 @@ -/** - * @licence app begin@ - * Copyright (C) 2012 BMW AG - * - * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps. - * - * Contributions are licensed to the GENIVI Alliance under one or more - * Contribution License Agreements. - * - * \copyright - * This Source Code Form is subject to the terms of the - * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with - * this file, You can obtain one at http://mozilla.org/MPL/2.0/. - * - * - * \author Alexander Wenzel BMW 2011-2012 - * - * \file dlt_user_shared_cfg.h - * For further information see http://www.genivi.org/. - * @licence end@ - */ - - - -/******************************************************************************* -** ** -** SRC-MODULE: dlt_user_shared_cfg.h ** -** ** -** TARGET : linux ** -** ** -** PROJECT : DLT ** -** ** -** AUTHOR : Alexander Wenzel Alexander.AW.Wenzel@bmw.de ** -** Markus Klein ** -** ** -** PURPOSE : ** -** ** -** REMARKS : ** -** ** -** PLATFORM DEPENDANT [yes/no]: yes ** -** ** -** TO BE CHANGED BY USER [yes/no]: no ** -** ** -*******************************************************************************/ - -/******************************************************************************* -** Author Identity ** -******************************************************************************** -** ** -** Initials Name Company ** -** -------- ------------------------- ---------------------------------- ** -** aw Alexander Wenzel BMW ** -** mk Markus Klein Fraunhofer ESK ** -*******************************************************************************/ - -/******************************************************************************* -** Author Identity ** -******************************************************************************** -** ** -** Initials Name Company ** -** -------- ------------------------- ---------------------------------- ** -** aw Alexander Wenzel BMW ** -** mk Markus Klein Fraunhofer ESK ** -*******************************************************************************/ - -#ifndef DLT_USER_SHARED_CFG_H -#define DLT_USER_SHARED_CFG_H - -/*************/ -/* Changable */ -/*************/ - -/* Directory, where the named pipes to the DLT daemon resides */ -#define DLT_USER_DIR "/tmp/dltpipes" - -/* Name of named pipe to DLT daemon */ -#define DLT_USER_FIFO "/tmp/dlt" - -/************************/ -/* Don't change please! */ -/************************/ - -/* The different types of internal messages between user application and daemon. */ -#define DLT_USER_MESSAGE_LOG 1 -#define DLT_USER_MESSAGE_REGISTER_APPLICATION 2 -#define DLT_USER_MESSAGE_UNREGISTER_APPLICATION 3 -#define DLT_USER_MESSAGE_REGISTER_CONTEXT 4 -#define DLT_USER_MESSAGE_UNREGISTER_CONTEXT 5 -#define DLT_USER_MESSAGE_LOG_LEVEL 6 -#define DLT_USER_MESSAGE_INJECTION 7 -#define DLT_USER_MESSAGE_OVERFLOW 8 -#define DLT_USER_MESSAGE_APP_LL_TS 9 -#define DLT_USER_MESSAGE_LOG_SHM 10 -#define DLT_USER_MESSAGE_LOG_MODE 11 -#define DLT_USER_MESSAGE_LOG_STATE 12 -#define DLT_USER_MESSAGE_MARKER 13 - +/** + * @licence app begin@ + * Copyright (C) 2012 BMW AG + * + * This file is part of GENIVI Project Dlt - Diagnostic Log and Trace console apps. + * + * Contributions are licensed to the GENIVI Alliance under one or more + * Contribution License Agreements. + * + * \copyright + * This Source Code Form is subject to the terms of the + * Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with + * this file, You can obtain one at http://mozilla.org/MPL/2.0/. + * + * + * \author Alexander Wenzel BMW 2011-2012 + * + * \file dlt_user_shared_cfg.h + * For further information see http://www.genivi.org/. + * @licence end@ + */ + + + +/******************************************************************************* +** ** +** SRC-MODULE: dlt_user_shared_cfg.h ** +** ** +** TARGET : linux ** +** ** +** PROJECT : DLT ** +** ** +** AUTHOR : Alexander Wenzel Alexander.AW.Wenzel@bmw.de ** +** Markus Klein ** +** ** +** PURPOSE : ** +** ** +** REMARKS : ** +** ** +** PLATFORM DEPENDANT [yes/no]: yes ** +** ** +** TO BE CHANGED BY USER [yes/no]: no ** +** ** +*******************************************************************************/ + +/******************************************************************************* +** Author Identity ** +******************************************************************************** +** ** +** Initials Name Company ** +** -------- ------------------------- ---------------------------------- ** +** aw Alexander Wenzel BMW ** +** mk Markus Klein Fraunhofer ESK ** +*******************************************************************************/ + +/******************************************************************************* +** Author Identity ** +******************************************************************************** +** ** +** Initials Name Company ** +** -------- ------------------------- ---------------------------------- ** +** aw Alexander Wenzel BMW ** +** mk Markus Klein Fraunhofer ESK ** +*******************************************************************************/ + +#ifndef DLT_USER_SHARED_CFG_H +#define DLT_USER_SHARED_CFG_H + +/*************/ +/* Changable */ +/*************/ + +/* Directory, where the named pipes to the DLT daemon resides */ +#define DLT_USER_DIR "/tmp/dltpipes" + +/* Name of named pipe to DLT daemon */ +#define DLT_USER_FIFO "/tmp/dlt" + +/************************/ +/* Don't change please! */ +/************************/ + +/* The different types of internal messages between user application and daemon. */ +#define DLT_USER_MESSAGE_LOG 1 +#define DLT_USER_MESSAGE_REGISTER_APPLICATION 2 +#define DLT_USER_MESSAGE_UNREGISTER_APPLICATION 3 +#define DLT_USER_MESSAGE_REGISTER_CONTEXT 4 +#define DLT_USER_MESSAGE_UNREGISTER_CONTEXT 5 +#define DLT_USER_MESSAGE_LOG_LEVEL 6 +#define DLT_USER_MESSAGE_INJECTION 7 +#define DLT_USER_MESSAGE_OVERFLOW 8 +#define DLT_USER_MESSAGE_APP_LL_TS 9 +#define DLT_USER_MESSAGE_LOG_SHM 10 +#define DLT_USER_MESSAGE_LOG_MODE 11 +#define DLT_USER_MESSAGE_LOG_STATE 12 +#define DLT_USER_MESSAGE_MARKER 13 + /* Internal defined values */ -/* must be different from DltLogLevelType */ +/* must be different from DltLogLevelType */ #define DLT_USER_LOG_LEVEL_NOT_SET -2 -/* must be different from DltTraceStatusType */ -#define DLT_USER_TRACE_STATUS_NOT_SET -2 - -#endif /* DLT_USER_SHARED_CFG_H */ - +/* must be different from DltTraceStatusType */ +#define DLT_USER_TRACE_STATUS_NOT_SET -2 + +#endif /* DLT_USER_SHARED_CFG_H */ + diff --git a/systemd/dlt-dbus.service.cmake b/systemd/dlt-dbus.service.cmake index 2727c2d..e448523 100755 --- a/systemd/dlt-dbus.service.cmake +++ b/systemd/dlt-dbus.service.cmake @@ -1,32 +1,32 @@ -####### -# Dlt - Diagnostic Log and Trace -# @licence make begin@ -# -# Copyright (C) 2011-2012, BMW AG - Alexander Wenzel -# -# Contributions are licensed to the GENIVI Alliance under one or more -# Contribution License Agreements. -# -# This Source Code Form is subject to the terms of the -# Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with -# this file, You can obtain one at http://mozilla.org/MPL/2.0/. -# -# @licence end@ -######## - -[Unit] -Description=GENIVI DLT DBus. Application to forward DBus messages to DLT. -Documentation=man:dlt-dbus(1) man:dlt-dbus.conf(5) -Wants=dlt.service - -[Service] -Type=Simple -User=root -ExecStart=@CMAKE_INSTALL_PREFIX@/bin/dlt-dbus -WatchdogSec=@DLT_WatchdogSec@ -NotifyAccess=main -LimitCORE=infinity - -[Install] -WantedBy=basic.target - +####### +# Dlt - Diagnostic Log and Trace +# @licence make begin@ +# +# Copyright (C) 2011-2012, BMW AG - Alexander Wenzel +# +# Contributions are licensed to the GENIVI Alliance under one or more +# Contribution License Agreements. +# +# This Source Code Form is subject to the terms of the +# Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with +# this file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# @licence end@ +######## + +[Unit] +Description=GENIVI DLT DBus. Application to forward DBus messages to DLT. +Documentation=man:dlt-dbus(1) man:dlt-dbus.conf(5) +Wants=dlt.service + +[Service] +Type=Simple +User=root +ExecStart=@CMAKE_INSTALL_PREFIX@/bin/dlt-dbus +WatchdogSec=@DLT_WatchdogSec@ +NotifyAccess=main +LimitCORE=infinity + +[Install] +WantedBy=basic.target + diff --git a/systemd/dlt-system.service.cmake b/systemd/dlt-system.service.cmake index f5e844b..f1383dd 100755 --- a/systemd/dlt-system.service.cmake +++ b/systemd/dlt-system.service.cmake @@ -1,32 +1,32 @@ -####### -# Dlt - Diagnostic Log and Trace -# @licence make begin@ -# -# Copyright (C) 2011-2012, BMW AG - Alexander Wenzel -# -# Contributions are licensed to the GENIVI Alliance under one or more -# Contribution License Agreements. -# -# This Source Code Form is subject to the terms of the -# Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with -# this file, You can obtain one at http://mozilla.org/MPL/2.0/. -# -# @licence end@ -######## - -[Unit] -Description=GENIVI DLT system. Application to forward syslog messages to DLT, transfer system information, logs and files. -Documentation=man:dlt-system(1) man:dlt-system.conf(5) -Wants=dlt.service - -[Service] -Type=Simple -User=genivi -ExecStart=@CMAKE_INSTALL_PREFIX@/bin/dlt-system -WatchdogSec=@DLT_WatchdogSec@ -NotifyAccess=main -LimitCORE=infinity - -[Install] -WantedBy=basic.target - +####### +# Dlt - Diagnostic Log and Trace +# @licence make begin@ +# +# Copyright (C) 2011-2012, BMW AG - Alexander Wenzel +# +# Contributions are licensed to the GENIVI Alliance under one or more +# Contribution License Agreements. +# +# This Source Code Form is subject to the terms of the +# Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with +# this file, You can obtain one at http://mozilla.org/MPL/2.0/. +# +# @licence end@ +######## + +[Unit] +Description=GENIVI DLT system. Application to forward syslog messages to DLT, transfer system information, logs and files. +Documentation=man:dlt-system(1) man:dlt-system.conf(5) +Wants=dlt.service + +[Service] +Type=Simple +User=genivi +ExecStart=@CMAKE_INSTALL_PREFIX@/bin/dlt-system +WatchdogSec=@DLT_WatchdogSec@ +NotifyAccess=main +LimitCORE=infinity + +[Install] +WantedBy=basic.target + -- cgit v1.2.1