summaryrefslogtreecommitdiff
path: root/src/offlinelogstorage
diff options
context:
space:
mode:
authorS. Hameed <shameed@jp.adit-jv.com>2015-11-23 18:00:33 +0900
committerLutz Helwing <lutz_helwing@mentor.com>2015-12-07 10:07:26 +0100
commit979364a42e12b1bb473a5bcc1554ef0b2ce80fde (patch)
tree0a2dc7a4c79b958a4ad096eb33d6556284ded288 /src/offlinelogstorage
parent1e697cc45d8771fe15e6271ac722798f2a90d048 (diff)
downloadDLT-daemon-979364a42e12b1bb473a5bcc1554ef0b2ce80fde.tar.gz
Offline logstorage: Fixed extended header size to support configuration in dlt_user_cfg.h
Signed-off-by: S. Hameed <shameed@jp.adit-jv.com>
Diffstat (limited to 'src/offlinelogstorage')
-rw-r--r--src/offlinelogstorage/dlt_offline_logstorage.c20
1 files changed, 19 insertions, 1 deletions
diff --git a/src/offlinelogstorage/dlt_offline_logstorage.c b/src/offlinelogstorage/dlt_offline_logstorage.c
index 3e964bd..e6be6f9 100644
--- a/src/offlinelogstorage/dlt_offline_logstorage.c
+++ b/src/offlinelogstorage/dlt_offline_logstorage.c
@@ -1311,6 +1311,9 @@ int dlt_logstorage_write(DltLogStorage *handle,
* DltExtendedHeader. We are interested in ecuid, apid, ctid and loglevel */
DltExtendedHeader *extendedHeader;
DltStandardHeaderExtra *extraHeader;
+ DltStandardHeader *standardHeader;
+ int standardHeaderExtraLen = 0;
+
int log_level = -1;
if (handle == NULL || uconfig == NULL ||
@@ -1320,10 +1323,25 @@ int dlt_logstorage_write(DltLogStorage *handle,
{
return 0;
}
+ /* Calculate real length of DltStandardHeaderExtra */
+ standardHeader = (DltStandardHeader *)data2;
+ standardHeaderExtraLen = sizeof(DltStandardHeaderExtra);
+ if (!DLT_IS_HTYP_WEID(standardHeader->htyp))
+ {
+ standardHeaderExtraLen -= DLT_ID_SIZE;
+ }
+ if (!DLT_IS_HTYP_WSID(standardHeader->htyp))
+ {
+ standardHeaderExtraLen -= DLT_SIZE_WSID;
+ }
+ if (!DLT_IS_HTYP_WTMS(standardHeader->htyp))
+ {
+ standardHeaderExtraLen -= DLT_SIZE_WTMS;
+ }
extendedHeader = (DltExtendedHeader *)(data2 +
sizeof(DltStandardHeader) +
- sizeof(DltStandardHeaderExtra));
+ standardHeaderExtraLen);
extraHeader = (DltStandardHeaderExtra *)(data2 + sizeof(DltStandardHeader));
log_level = DLT_GET_MSIN_MTIN(extendedHeader->msin);