summaryrefslogtreecommitdiff
path: root/include/dlt/dlt_shm.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/dlt/dlt_shm.h')
-rw-r--r--include/dlt/dlt_shm.h28
1 files changed, 28 insertions, 0 deletions
diff --git a/include/dlt/dlt_shm.h b/include/dlt/dlt_shm.h
new file mode 100644
index 0000000..9727f4b
--- /dev/null
+++ b/include/dlt/dlt_shm.h
@@ -0,0 +1,28 @@
+
+#define DLT_SHM_KEY 10002
+#define DLT_SHM_SIZE (1024*4000)
+#define DLT_SHM_SEM 20013
+
+typedef struct
+{
+ int shmid; // Id of shared memory
+ int semid; // Id of semaphore
+ char* shm; // pointer to beginning of shared memory
+ int size; // size of data areay in shared memory
+ char* mem; // pointer to data area in shared memory
+} DltShm;
+
+#define DLT_SHM_SEM_GET(id) dlt_shm_pv(id,-1)
+#define DLT_SHM_SEM_FREE(id) dlt_shm_pv(id,1)
+
+extern int dlt_shm_init_client(DltShm *buf,int key,int size);
+extern int dlt_shm_init_server(DltShm *buf,int key,int size);
+
+extern int dlt_shm_push(DltShm *buf,const char *data1, int size1,const char *data2, int size2,const char *data3, int size3);
+extern int dlt_shm_pull(DltShm *buf,char *data, int size);
+
+extern void dlt_shm_info(DltShm *buf);
+extern void dlt_shm_status(DltShm *buf);
+
+extern int dlt_shm_free_client(DltShm *buf);
+extern int dlt_shm_free_server(DltShm *buf);