summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorAlexander Wenzel <Alexander.AW.Wenzel@bmw.de>2011-09-23 13:10:27 +0200
committerAlexander Wenzel <Alexander.AW.Wenzel@bmw.de>2011-09-23 13:10:27 +0200
commit7d6dab10064a6fc0c1902f8a747afb5ae0290eb6 (patch)
treef99e751f0e1e22301fef4824fbace589931b6001 /src/lib
parent5a0bf186ad0b3fc886daa163ecc4f336f8f9ad4f (diff)
parent50894750e987f38d1769eb1661ec77be3e2a8ba7 (diff)
downloadDLT-daemon-7d6dab10064a6fc0c1902f8a747afb5ae0290eb6.tar.gz
Merge genivialex:/home/alex/git/DLT-daemon
Conflicts: include/dlt/dlt_version.h
Diffstat (limited to 'src/lib')
-rwxr-xr-xsrc/lib/CMakeLists.txt2
-rwxr-xr-xsrc/lib/dlt_user.c22
2 files changed, 19 insertions, 5 deletions
diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt
index 8e81cfb..1d33d21 100755
--- a/src/lib/CMakeLists.txt
+++ b/src/lib/CMakeLists.txt
@@ -35,7 +35,7 @@
# @licence end@
########
-set(dlt_LIB_SRCS dlt_user dlt_client ${CMAKE_SOURCE_DIR}/src/shared/dlt_common.c ${CMAKE_SOURCE_DIR}/src/shared/dlt_user_shared.c )
+set(dlt_LIB_SRCS dlt_user dlt_client ${CMAKE_SOURCE_DIR}/src/shared/dlt_common.c ${CMAKE_SOURCE_DIR}/src/shared/dlt_user_shared.c ${CMAKE_SOURCE_DIR}/src/shared/dlt_shm.c)
add_library(dlt ${dlt_LIB_SRCS})
diff --git a/src/lib/dlt_user.c b/src/lib/dlt_user.c
index 4f153d5..ebba325 100755
--- a/src/lib/dlt_user.c
+++ b/src/lib/dlt_user.c
@@ -159,9 +159,17 @@ int dlt_init(void)
dlt_user.dlt_is_file = 0;
dlt_user.overflow = 0;
+ /* init shared memory */
+ if (dlt_shm_init_client(&dlt_user.dlt_shm,DLT_SHM_KEY,DLT_SHM_SIZE) < 0)
+ {
+ sprintf(str,"Loging disabled, Shared memory %d cannot be created!\n",DLT_SHM_KEY);
+ dlt_log(LOG_WARNING, str);
+ return 0;
+ }
+
/* create and open DLT user FIFO */
sprintf(filename,"%s/dlt%d",DLT_USER_DIR,getpid());
-
+
/* Try to delete existing pipe, ignore result of unlink */
unlink(filename);
@@ -358,6 +366,9 @@ int dlt_free(void)
unlink(filename);
}
+ /* free shared memory */
+ dlt_shm_free_client(&dlt_user.dlt_shm);
+
if (dlt_user.dlt_log_handle!=-1)
{
/* close log file/output fifo to daemon */
@@ -2157,12 +2168,15 @@ int dlt_user_log_send_log(DltContextData *log, int mtype)
}
}
+ dlt_shm_push(&dlt_user.dlt_shm,msg.headerbuffer+sizeof(DltStorageHeader), msg.headersize-sizeof(DltStorageHeader),
+ log->buffer, log->size,0,0);
+
/* log to FIFO */
ret = dlt_user_log_out3(dlt_user.dlt_log_handle,
&(userheader), sizeof(DltUserHeader),
- msg.headerbuffer+sizeof(DltStorageHeader), msg.headersize-sizeof(DltStorageHeader),
- log->buffer, log->size);
-
+ 0, 0,
+ 0, 0);
+
/* store message in ringbuffer, if an error has occured */
if (ret!=DLT_RETURN_OK)
{