summaryrefslogtreecommitdiff
path: root/src/shared/dlt_shm.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/shared/dlt_shm.c')
-rw-r--r--src/shared/dlt_shm.c156
1 files changed, 82 insertions, 74 deletions
diff --git a/src/shared/dlt_shm.c b/src/shared/dlt_shm.c
index 78e5951..b45b3c0 100644
--- a/src/shared/dlt_shm.c
+++ b/src/shared/dlt_shm.c
@@ -63,119 +63,119 @@
#include <string.h>
#if !defined(_MSC_VER)
-#include <unistd.h>
-#include <syslog.h>
+# include <unistd.h>
+# include <syslog.h>
#endif
#include <dlt_shm.h>
#include <dlt_common.h>
-void dlt_shm_print_hex(char *ptr,int size)
+void dlt_shm_print_hex(char *ptr, int size)
{
int num;
- for (num=0;num<size;num++)
- {
- if((num%16)==15)
- printf("%.2x\n",((unsigned char*)ptr)[num]);
+ for (num = 0; num < size; num++) {
+ if ((num % 16) == 15)
+ printf("%.2x\n", ((unsigned char *)ptr)[num]);
else
- printf("%.2x ",((unsigned char*)ptr)[num]);
+ printf("%.2x ", ((unsigned char *)ptr)[num]);
}
+
printf("\n");
}
-void dlt_shm_pv(int id,int operation)
+void dlt_shm_pv(int id, int operation)
{
static struct sembuf semaphor;
semaphor.sem_op = operation;
semaphor.sem_flg = SEM_UNDO;
- if(semop(id, &semaphor,1) == -1) {
- dlt_log(LOG_WARNING,"SHM: semop() failed");
- }
+ if (semop(id, &semaphor, 1) == -1)
+ dlt_log(LOG_WARNING, "SHM: semop() failed");
}
-int dlt_shm_init_server(DltShm *buf,int key,int size) {
+int dlt_shm_init_server(DltShm *buf, int key, int size)
+{
struct shmid_ds shm_buf;
unsigned char *ptr;
- // Init parameters
+ /* Init parameters */
buf->shmid = 0;
buf->semid = 0;
- // Create the segment.
+ /* Create the segment. */
if ((buf->shmid = shmget(key, size, IPC_CREAT | 0666)) < 0) {
- dlt_log(LOG_WARNING,"SHM: shmget() failed");
+ dlt_log(LOG_WARNING, "SHM: shmget() failed");
return DLT_RETURN_ERROR; /* ERROR */
}
- // get the size of shm
- if (shmctl(buf->shmid, IPC_STAT, &shm_buf))
- {
- dlt_log(LOG_WARNING,"SHM: shmctl() failed");
+ /* get the size of shm */
+ if (shmctl(buf->shmid, IPC_STAT, &shm_buf)) {
+ dlt_log(LOG_WARNING, "SHM: shmctl() failed");
return DLT_RETURN_ERROR; /* ERROR */
}
- // Now we attach the segment to our data space.
- if ((ptr = shmat(buf->shmid, NULL, 0)) == (unsigned char *) -1) {
- dlt_log(LOG_WARNING,"SHM: shmat() failed");
+ /* Now we attach the segment to our data space. */
+ if ((ptr = shmat(buf->shmid, NULL, 0)) == (unsigned char *)-1) {
+ dlt_log(LOG_WARNING, "SHM: shmat() failed");
return DLT_RETURN_ERROR; /* ERROR */
}
- // Init semaphore
- if( (buf->semid = semget(DLT_SHM_SEM,1,S_IRWXU|S_IRWXG|S_IRWXO|IPC_CREAT|IPC_EXCL)) == -1 ) {
- if( (buf->semid = semget(DLT_SHM_SEM,1,S_IRWXU|S_IRWXG|S_IRWXO|IPC_EXCL)) == -1 ) {
- dlt_log(LOG_WARNING,"SHM: semget() failed");
+ /* Init semaphore */
+ if ((buf->semid = semget(DLT_SHM_SEM, 1, S_IRWXU | S_IRWXG | S_IRWXO | IPC_CREAT | IPC_EXCL)) == -1) {
+ if ((buf->semid = semget(DLT_SHM_SEM, 1, S_IRWXU | S_IRWXG | S_IRWXO | IPC_EXCL)) == -1) {
+ dlt_log(LOG_WARNING, "SHM: semget() failed");
return DLT_RETURN_ERROR; /* ERROR */
}
}
- if( semctl(buf->semid,0,SETVAL,(int)1) == -1 ) {
- dlt_log(LOG_WARNING,"SHM: semctl() failed");
+
+ if (semctl(buf->semid, 0, SETVAL, (int)1) == -1) {
+ dlt_log(LOG_WARNING, "SHM: semctl() failed");
return DLT_RETURN_ERROR; /* ERROR */
}
- // init buffer
- dlt_buffer_init_static_server(&(buf->buffer),ptr,shm_buf.shm_segsz);
+ /* init buffer */
+ dlt_buffer_init_static_server(&(buf->buffer), ptr, shm_buf.shm_segsz);
return DLT_RETURN_OK; /* OK */
}
-DltReturnValue dlt_shm_init_client(DltShm *buf,int key) {
+DltReturnValue dlt_shm_init_client(DltShm *buf, int key)
+{
struct shmid_ds shm_buf;
unsigned char *ptr;
- // init parameters
+ /* init parameters */
buf->shmid = 0;
buf->semid = 0;
- // Create the segment.
+ /* Create the segment. */
if ((buf->shmid = shmget(key, 0, 0666)) < 0) {
- dlt_log(LOG_WARNING,"SHM: shmget() failed");
+ dlt_log(LOG_WARNING, "SHM: shmget() failed");
return DLT_RETURN_ERROR; /* ERROR */
}
- // get the size of shm
- if (shmctl(buf->shmid, IPC_STAT, &shm_buf))
- {
- dlt_log(LOG_WARNING,"SHM: shmctl() failed");
- return DLT_RETURN_ERROR; /* ERROR */
+ /* get the size of shm */
+ if (shmctl(buf->shmid, IPC_STAT, &shm_buf)) {
+ dlt_log(LOG_WARNING, "SHM: shmctl() failed");
+ return DLT_RETURN_ERROR; /* ERROR */
}
- // Now we attach the segment to our data space.
- if ((ptr = shmat(buf->shmid, NULL, 0)) == (unsigned char *) -1) {
- dlt_log(LOG_WARNING,"shmat() failed");
+ /* Now we attach the segment to our data space. */
+ if ((ptr = shmat(buf->shmid, NULL, 0)) == (unsigned char *)-1) {
+ dlt_log(LOG_WARNING, "shmat() failed");
return DLT_RETURN_ERROR; /* ERROR */
}
- // Init semaphore
- if( (buf->semid = semget(DLT_SHM_SEM,0,0)) == -1 ) {
- dlt_log(LOG_WARNING,"SHM: semget() failed");
- return DLT_RETURN_ERROR; /* ERROR */
+ /* Init semaphore */
+ if ((buf->semid = semget(DLT_SHM_SEM, 0, 0)) == -1) {
+ dlt_log(LOG_WARNING, "SHM: semget() failed");
+ return DLT_RETURN_ERROR; /* ERROR */
}
- // init buffer
- dlt_buffer_init_static_client(&(buf->buffer),ptr,shm_buf.shm_segsz);
+ /* init buffer */
+ dlt_buffer_init_static_client(&(buf->buffer), ptr, shm_buf.shm_segsz);
return DLT_RETURN_OK; /* OK */
}
@@ -200,11 +200,11 @@ int dlt_shm_get_used_size(DltShm *buf)
int ret;
/* check if buffer available */
- if(!buf->buffer.mem)
+ if (!buf->buffer.mem)
return -1;
DLT_SHM_SEM_GET(buf->semid);
- ret = dlt_buffer_get_used_size(&(buf->buffer));
+ ret = dlt_buffer_get_used_size(&(buf->buffer));
DLT_SHM_SEM_FREE(buf->semid);
return ret;
@@ -215,46 +215,52 @@ int dlt_shm_get_message_count(DltShm *buf)
return dlt_buffer_get_message_count(&(buf->buffer));
}
-int dlt_shm_push(DltShm *buf,const unsigned char *data1,unsigned int size1,const unsigned char *data2,unsigned int size2,const unsigned char *data3,unsigned int size3)
+int dlt_shm_push(DltShm *buf,
+ const unsigned char *data1,
+ unsigned int size1,
+ const unsigned char *data2,
+ unsigned int size2,
+ const unsigned char *data3,
+ unsigned int size3)
{
int ret;
/* check if buffer available */
- if(!buf->buffer.mem)
+ if (!buf->buffer.mem)
return -1;
DLT_SHM_SEM_GET(buf->semid);
- ret = dlt_buffer_push3(&(buf->buffer),data1,size1,data2,size2,data3,size3);
+ ret = dlt_buffer_push3(&(buf->buffer), data1, size1, data2, size2, data3, size3);
DLT_SHM_SEM_FREE(buf->semid);
return ret;
}
-int dlt_shm_pull(DltShm *buf,unsigned char *data, int max_size)
+int dlt_shm_pull(DltShm *buf, unsigned char *data, int max_size)
{
int ret;
/* check if buffer available */
- if(!buf->buffer.mem)
+ if (!buf->buffer.mem)
return -1;
DLT_SHM_SEM_GET(buf->semid);
- ret = dlt_buffer_pull(&(buf->buffer),data,max_size);
+ ret = dlt_buffer_pull(&(buf->buffer), data, max_size);
DLT_SHM_SEM_FREE(buf->semid);
return ret;
}
-int dlt_shm_copy(DltShm *buf,unsigned char *data, int max_size)
+int dlt_shm_copy(DltShm *buf, unsigned char *data, int max_size)
{
int ret;
/* check if buffer available */
- if(!buf->buffer.mem)
+ if (!buf->buffer.mem)
return -1;
DLT_SHM_SEM_GET(buf->semid);
- ret = dlt_buffer_copy(&(buf->buffer),data,max_size);
+ ret = dlt_buffer_copy(&(buf->buffer), data, max_size);
DLT_SHM_SEM_FREE(buf->semid);
return ret;
@@ -265,34 +271,35 @@ int dlt_shm_remove(DltShm *buf)
int ret;
/* check if buffer available */
- if(!buf->buffer.mem)
+ if (!buf->buffer.mem)
return -1;
DLT_SHM_SEM_GET(buf->semid);
- ret = dlt_buffer_remove(&(buf->buffer));
+ ret = dlt_buffer_remove(&(buf->buffer));
DLT_SHM_SEM_FREE(buf->semid);
return ret;
}
-DltReturnValue dlt_shm_free_server(DltShm *buf) {
+DltReturnValue dlt_shm_free_server(DltShm *buf)
+{
- if(shmdt(buf->buffer.shm)) {
- dlt_log(LOG_WARNING,"SHM: shmdt() failed");
+ if (shmdt(buf->buffer.shm)) {
+ dlt_log(LOG_WARNING, "SHM: shmdt() failed");
return DLT_RETURN_ERROR; /* ERROR */
}
- if(shmctl(buf->shmid,IPC_RMID,NULL) == -1) {
- dlt_log(LOG_WARNING,"SHM: shmdt() failed");
+ if (shmctl(buf->shmid, IPC_RMID, NULL) == -1) {
+ dlt_log(LOG_WARNING, "SHM: shmdt() failed");
return DLT_RETURN_ERROR; /* ERROR */
}
- if(semctl(buf->semid,0,IPC_RMID,(int)0) == -1) {
- dlt_log(LOG_WARNING,"SHM: shmdt() failed");
+ if (semctl(buf->semid, 0, IPC_RMID, (int)0) == -1) {
+ dlt_log(LOG_WARNING, "SHM: shmdt() failed");
return DLT_RETURN_ERROR; /* ERROR */
}
- // Reset parameters
+ /* Reset parameters */
buf->shmid = 0;
buf->semid = 0;
@@ -300,14 +307,15 @@ DltReturnValue dlt_shm_free_server(DltShm *buf) {
}
-DltReturnValue dlt_shm_free_client(DltShm *buf) {
+DltReturnValue dlt_shm_free_client(DltShm *buf)
+{
- if(shmdt(buf->buffer.shm)) {
- dlt_log(LOG_WARNING,"SHM: shmdt() failed");
+ if (shmdt(buf->buffer.shm)) {
+ dlt_log(LOG_WARNING, "SHM: shmdt() failed");
return DLT_RETURN_ERROR; /* ERROR */
}
- // Reset parameters
+ /* Reset parameters */
buf->shmid = 0;
buf->semid = 0;