From: Christian Muck Date: Thu, 10 Nov 2011 07:50:03 +0000 (+0100) Subject: Merge branch 'master' of https://git.genivi.org/srv/git/DLT-daemon X-Git-Tag: v2.4.1~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=575fa86ef3181e4ade5a6c341f86bb83558eca93;p=profile%2Fivi%2Fdlt-daemon.git Merge branch 'master' of https://git.genivi.org/srv/git/DLT-daemon Conflicts: src/shared/dlt_shm.c --- 575fa86ef3181e4ade5a6c341f86bb83558eca93 diff --cc src/shared/dlt_shm.c index 74e448e,5859af1..5ad4775 --- a/src/shared/dlt_shm.c +++ b/src/shared/dlt_shm.c @@@ -179,28 -184,29 +184,28 @@@ int dlt_shm_init_client(DltShm *buf,in // get the size of shm if (shmctl(buf->shmid, IPC_STAT, &shm_buf)) { - perror("SHM: shmctl"); - dlt_log(LOG_ERR,"SHM: shmctl"); -- return -1; /* ERROR */ ++ dlt_log(LOG_ERR,"SHM: shmctl"); ++ return -1; /* ERROR */ } -- // Now we attach the segment to our data space. -- if ((buf->shm = shmat(buf->shmid, NULL, 0)) == (char *) -1) { - perror("shmat"); - dlt_log(LOG_ERR,"shmat"); -- return -1; /* ERROR */ -- } ++ // Now we attach the segment to our data space. ++ if ((buf->shm = shmat(buf->shmid, NULL, 0)) == (char *) -1) { ++ dlt_log(LOG_ERR,"shmat"); ++ return -1; /* ERROR */ ++ } // Init semaphore if( (buf->semid = semget(DLT_SHM_SEM,0,0)) == -1 ) { - perror("SHM: semget"); - dlt_log(LOG_ERR,"SHM: semget"); -- return -1; /* ERROR */ ++ dlt_log(LOG_ERR,"SHM: semget"); ++ return -1; /* ERROR */ } - DLT_SHM_SEM_FREE(buf->semid); // Init pointers -- buf->mem = (char*)(&(((int*)(buf->shm))[3])); -- buf->size = shm_buf.shm_segsz - (buf->mem - buf->shm); ++ buf->mem = (char*)(&(((int*)(buf->shm))[3])); ++ buf->size = shm_buf.shm_segsz - (buf->mem - buf->shm); //dlt_shm_status(buf); -- //dlt_shm_info(buf); ++ //dlt_shm_info(buf); return 0; /* OK */ } @@@ -399,22 -411,21 +412,25 @@@ int dlt_shm_pull(DltShm *buf,unsigned c // check status if(status != 2 ) { + //printf("Buffer is not fully written\n"); + DLT_SHM_SEM_FREE(buf->semid); + dlt_log(LOG_ERR,"Buffer is not fully written\n"); return -1; // ERROR } // plausibility check of buffer size if( (read+size) > buf->size) { - printf("SHM: Buffers size bigger than shm buffer\n"); + DLT_SHM_SEM_FREE(buf->semid); + dlt_log(LOG_ERR,"SHM: Buffers size bigger than shm buffer\n"); + dlt_shm_reset(buf); return -1; // ERROR } // check max read size if(size > max_size) { - printf("SHM: Buffer is bigger than max size\n"); + DLT_SHM_SEM_FREE(buf->semid); + dlt_log(LOG_ERR,"SHM: Buffer is bigger than max size\n"); + dlt_shm_reset(buf); return -1; // ERROR } @@@ -448,9 -457,10 +464,9 @@@ int dlt_shm_copy(DltShm *buf,unsigned c if(!buf->mem) { // shm not initialised - printf("SHM: SHM not initialised\n"); + dlt_log(LOG_ERR,"SHM: SHM not initialised\n"); return -1; /* ERROR */ } - DLT_SHM_SEM_FREE(buf->semid); // get current write pointer DLT_SHM_SEM_GET(buf->semid); @@@ -488,22 -497,21 +504,24 @@@ // check status if(status != 2 ) { - //printf("Buffer is not fully written\n"); + DLT_SHM_SEM_FREE(buf->semid); + dlt_log(LOG_ERR,"Buffer is not fully written\n"); return -1; // ERROR } // plausibility check of buffer size if( (read+size) > buf->size) { - printf("SHM: Buffers size bigger than shm buffer\n"); + DLT_SHM_SEM_FREE(buf->semid); + dlt_log(LOG_ERR,"SHM: Buffers size bigger than shm buffer\n"); + dlt_shm_reset(buf); return -1; // ERROR } // check max read size if((size-sizeof(head)) > max_size) { - printf("SHM: Buffer is bigger than max size\n"); + DLT_SHM_SEM_FREE(buf->semid); + dlt_log(LOG_ERR,"SHM: Buffer is bigger than max size\n"); + dlt_shm_reset(buf); return -1; // ERROR } @@@ -562,15 -568,14 +580,16 @@@ int dlt_shm_remove(DltShm *buf // check status if(status != 2 ) { - //printf("Buffer is not fully written\n"); + DLT_SHM_SEM_FREE(buf->semid); + dlt_log(LOG_ERR,"Buffer is not fully written\n"); return -1; // ERROR } // plausibility check of buffer size if( (read+size) > buf->size) { - printf("SHM: Buffers size bigger than shm buffer\n"); + DLT_SHM_SEM_FREE(buf->semid); + dlt_log(LOG_ERR,"SHM: Buffers size bigger than shm buffer\n"); + dlt_shm_reset(buf); return -1; // ERROR } @@@ -589,9 -592,9 +608,9 @@@ int dlt_shm_reset(DltShm *buf) /* reset pointers and counters */ DLT_SHM_SEM_GET(buf->semid); -- ((int*)(buf->shm))[0] = 0; // pointer to write memory -- ((int*)(buf->shm))[1] = 0; // pointer to read memory -- ((int*)(buf->shm))[2] = 0; // number of packets ++ ((int*)(buf->shm))[0] = 0; // pointer to write memory ++ ((int*)(buf->shm))[1] = 0; // pointer to read memory ++ ((int*)(buf->shm))[2] = 0; // number of packets DLT_SHM_SEM_FREE(buf->semid); return 0; /* OK */