diff options
author | Alexander Wenzel <Alexander.AW.Wenzel@bmw.de> | 2014-05-13 12:53:36 +0200 |
---|---|---|
committer | Alexander Wenzel <Alexander.AW.Wenzel@bmw.de> | 2014-05-16 08:37:37 +0200 |
commit | e7fa1ec4a264f01165707e88d67bbbc4a4eb052a (patch) | |
tree | 086db6d507f79adce697a255398c541bbc5b138d | |
parent | 52ee97e9a6e336b6cd03b0603b783502f9f34880 (diff) | |
download | DLT-daemon-e7fa1ec4a264f01165707e88d67bbbc4a4eb052a.tar.gz |
Send session/process id by default and add configuration API.
Signed-off-by: Alexander Wenzel <Alexander.AW.Wenzel@bmw.de>
-rw-r--r-- | include/dlt/dlt_user.h | 9 | ||||
-rw-r--r-- | src/lib/dlt_user.c | 30 | ||||
-rwxr-xr-x | src/lib/dlt_user_cfg.h | 3 |
3 files changed, 42 insertions, 0 deletions
diff --git a/include/dlt/dlt_user.h b/include/dlt/dlt_user.h index 564f56b..75cf9a7 100644 --- a/include/dlt/dlt_user.h +++ b/include/dlt/dlt_user.h @@ -230,6 +230,7 @@ typedef struct int8_t verbose_mode; /**< Verbose mode enabled: 1 enabled, 0 disabled */ int8_t use_extende_header_for_non_verbose; /**< Use extended header for non verbose: 1 enabled, 0 disabled */ + int8_t with_session_id; /**< Send always session id: 1 enabled, 0 disabled */ int8_t enable_local_print; /**< Local printing of log messages: 1 enabled, 0 disabled */ int8_t local_print_mode; /**< Local print mode, controlled by environment variable */ @@ -551,6 +552,14 @@ int dlt_nonverbose_mode(void); int dlt_use_extended_header_for_non_verbose(int8_t use_extende_header_for_non_verbose); /** + * Send session id configuration. + * Enabled by default. + * @param with_session_id Send session id in each message if enabled + * @return negative value if no success + */ +int dlt_with_session_id(int8_t with_session_id); + +/** * Set maximum logged log level and trace status of application * * @param loglevel This is the log level to be set for the whole application diff --git a/src/lib/dlt_user.c b/src/lib/dlt_user.c index dc81c27..6c55a3b 100644 --- a/src/lib/dlt_user.c +++ b/src/lib/dlt_user.c @@ -47,6 +47,10 @@ #include <sys/prctl.h> #endif +#include <sys/types.h> /* needed for getpid() */ +#include <unistd.h> + + #include "dlt_user.h" #include "dlt_user_shared.h" #include "dlt_user_shared_cfg.h" @@ -398,6 +402,9 @@ int dlt_init_common(void) /* Use extended header for non verbose is enabled by default */ dlt_user.use_extende_header_for_non_verbose = DLT_USER_USE_EXTENDED_HEADER_FOR_NONVERBOSE; + /* WIth session id is enabled by default */ + dlt_user.with_session_id = DLT_USER_WITH_SESSION_ID; + /* Local print is disabled by default */ dlt_user.enable_local_print = 0; @@ -2719,6 +2726,22 @@ int dlt_use_extended_header_for_non_verbose(int8_t use_extende_header_for_non_ve return 0; } +int dlt_with_session_id(int8_t with_session_id) +{ + if (dlt_user_initialised==0) + { + if (dlt_init()<0) + { + return -1; + } + } + + /* Set use_extende_header_for_non_verbose */ + dlt_user.with_session_id = with_session_id; + + return 0; +} + int dlt_enable_local_print(void) { if (dlt_user_initialised==0) @@ -2900,6 +2923,13 @@ DltReturnValue dlt_user_log_send_log(DltContextData *log, int mtype) msg.standardheader = (DltStandardHeader*)(msg.headerbuffer + sizeof(DltStorageHeader)); msg.standardheader->htyp = DLT_HTYP_WEID | DLT_HTYP_WTMS | DLT_HTYP_PROTOCOL_VERSION1 ; + /* send session id */ + if(dlt_user.with_session_id) + { + msg.standardheader->htyp |= DLT_HTYP_WSID; + msg.headerextra.seid = getpid(); + } + if (dlt_user.verbose_mode) { /* In verbose mode, send extended header */ diff --git a/src/lib/dlt_user_cfg.h b/src/lib/dlt_user_cfg.h index a94cb8f..ca53c95 100755 --- a/src/lib/dlt_user_cfg.h +++ b/src/lib/dlt_user_cfg.h @@ -108,6 +108,9 @@ /* 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
+
/* default message id for non-verbose mode, if no message id was provided */
#define DLT_USER_DEFAULT_MSGID 0xffff
|