diff options
author | Alexander Wenzel <Alexander.AW.Wenzel@bmw.de> | 2011-11-22 10:57:33 +0100 |
---|---|---|
committer | Alexander Wenzel <Alexander.AW.Wenzel@bmw.de> | 2011-11-22 10:57:33 +0100 |
commit | c8cd582507923a1f7ddcc05af47ea30a452e8c34 (patch) | |
tree | 0769d18dd9935f4228a32a6744707bc64d2331ad /src/shared/dlt_shm.c | |
parent | c870bcb94957fcbab7f56b6cd3ff5a0fc659f24c (diff) | |
download | DLT-daemon-c8cd582507923a1f7ddcc05af47ea30a452e8c34.tar.gz |
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.
Diffstat (limited to 'src/shared/dlt_shm.c')
-rw-r--r-- | src/shared/dlt_shm.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/shared/dlt_shm.c b/src/shared/dlt_shm.c index 5f54f88..f330864 100644 --- a/src/shared/dlt_shm.c +++ b/src/shared/dlt_shm.c @@ -211,6 +211,10 @@ int dlt_shm_get_used_size(DltShm *buf) { int ret; + /* check if buffer available */ + if(!buf->buffer.mem) + return -1; + DLT_SHM_SEM_GET(buf->semid); ret = dlt_buffer_get_used_size(&(buf->buffer)); DLT_SHM_SEM_FREE(buf->semid); @@ -227,6 +231,10 @@ int dlt_shm_push(DltShm *buf,const unsigned char *data1,unsigned int size1,const { int ret; + /* check if buffer available */ + if(!buf->buffer.mem) + return -1; + DLT_SHM_SEM_GET(buf->semid); ret = dlt_buffer_push3(&(buf->buffer),data1,size1,data2,size2,data3,size3); DLT_SHM_SEM_FREE(buf->semid); @@ -238,6 +246,10 @@ int dlt_shm_pull(DltShm *buf,unsigned char *data, int max_size) { int ret; + /* check if buffer available */ + if(!buf->buffer.mem) + return -1; + DLT_SHM_SEM_GET(buf->semid); ret = dlt_buffer_pull(&(buf->buffer),data,max_size); DLT_SHM_SEM_FREE(buf->semid); @@ -249,6 +261,10 @@ int dlt_shm_copy(DltShm *buf,unsigned char *data, int max_size) { int ret; + /* check if buffer available */ + if(!buf->buffer.mem) + return -1; + DLT_SHM_SEM_GET(buf->semid); ret = dlt_buffer_copy(&(buf->buffer),data,max_size); DLT_SHM_SEM_FREE(buf->semid); @@ -260,6 +276,10 @@ int dlt_shm_remove(DltShm *buf) { int ret; + /* check if buffer available */ + if(!buf->buffer.mem) + return -1; + DLT_SHM_SEM_GET(buf->semid); ret = dlt_buffer_remove(&(buf->buffer)); DLT_SHM_SEM_FREE(buf->semid); |