diff options
author | Norbert Schulz <norbert.schulz@intel.com> | 2018-04-23 18:17:53 +0200 |
---|---|---|
committer | Norbert Schulz <norbert.schulz@intel.com> | 2018-04-23 20:21:07 +0200 |
commit | 024e538bbb6916f1c3e6a8caf52be6fee7f7257c (patch) | |
tree | 53b9b48c888e539d8f1dc72aa6424f026b0a0e64 /examples/client/systclient.c | |
parent | f84309511ff6557a3df608a4e061345c87b9e2dc (diff) | |
download | mipisyst-024e538bbb6916f1c3e6a8caf52be6fee7f7257c.zip mipisyst-024e538bbb6916f1c3e6a8caf52be6fee7f7257c.tar.gz mipisyst-024e538bbb6916f1c3e6a8caf52be6fee7f7257c.tar.bz2 |
Adding MIPI System Software Trace Example Code
Populate the SyS-T GitHub repository with an example open source
implementation of a SyS-T instrumentation library. This source code
supports the public release edition 1.0 of the MIPI System Software
Trace specification.
https://www.mipi.org/specifications/sys-t
Diffstat (limited to 'examples/client/systclient.c')
-rw-r--r-- | examples/client/systclient.c | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/examples/client/systclient.c b/examples/client/systclient.c new file mode 100644 index 0000000..d0ab0bb --- /dev/null +++ b/examples/client/systclient.c @@ -0,0 +1,96 @@ +/* +Copyright (c) 2018, MIPI Alliance, Inc. +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +* Redistributions of source code must retain the above copyright +notice, this list of conditions and the following disclaimer. + +* Redistributions in binary form must reproduce the above copyright +notice, this list of conditions and the following disclaimer in +the documentation and/or other materials provided with the +distribution. + +* Neither the name of the copyright holder nor the names of its +contributors may be used to endorse or promote products derived +from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +*/ + +#include "mipi_syst.h" + +/* Example SyS-T client code using various instrumentation call types */ + +const struct mipi_syst_origin origin = +MIPI_SYST_GEN_ORIGIN_GUID(0x494E5443, 0x8A9C, 0x4014, 0xA65A, 0x2F36A36D96E4, 1); +struct mipi_syst_handle * systh; + +void banner(); +void sinewave(); +void raw(); +void printf_format_test(); +void catalog_format_test(); +void short_messages(); + +int main(int argc, char* argv[]) +{ +#if defined(MIPI_SYST_STATIC) + MIPI_SYST_INIT(mipi_syst_platform_init, 0); +#endif + + systh = MIPI_SYST_ALLOC_HANDLE(&origin); + + /* add optional fields */ + MIPI_SYST_ENABLE_HANDLE_CHECKSUM(systh, 1); + MIPI_SYST_ENABLE_HANDLE_TIMESTAMP(systh, 1); + + MIPI_SYST_BUILD(systh, MIPI_SYST_SEVERITY_MAX, 0x00010000, "version banner string", sizeof("version banner string")); + + MIPI_SYST_CATALOG32_3(systh, MIPI_SYST_SEVERITY_INFO, + MIPI_SYST_HASH("SyS-T Library version %d.%d.%d",0), + MIPI_SYST_VERSION_MAJOR, + MIPI_SYST_VERSION_MINOR, + MIPI_SYST_VERSION_PATCH); + + banner(); + catalog_format_test(); + printf_format_test(); + sinewave(); + raw(); + short_messages(); + + /* Different catalog calls */ + MIPI_SYST_CATPRINTF64_0(systh, MIPI_SYST_SEVERITY_INFO, 0x1122334455667788, "Hello world\n"); + MIPI_SYST_CATPRINTF32(systh, MIPI_SYST_SEVERITY_INFO, 2, "%s=%d\n", + MIPI_SYST_PARAM_CSTR("state"), + MIPI_SYST_PARAM_INT(10) + ); + MIPI_SYST_CATALOG32(systh, MIPI_SYST_SEVERITY_INFO, MIPI_SYST_HASH("%s=%d\n", 0), + MIPI_SYST_PARAM_CSTR("state"), + MIPI_SYST_PARAM_INT(10) + ); + + /* Release any resources associated with this SyS-T handle. + */ + MIPI_SYST_DELETE_HANDLE(systh); + +#if defined(MIPI_SYST_STATIC) + MIPI_SYST_SHUTDOWN(mipi_syst_platform_destroy); +#endif + + return 0; +}
\ No newline at end of file |