summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authordimitri staessens <dimitri.staessens@intec.ugent.be>2016-06-20 23:49:35 +0200
committerdimitri staessens <dimitri.staessens@intec.ugent.be>2016-06-21 00:14:14 +0200
commita46114ec01e8d174a41744f4f1b49905613847dc (patch)
tree9a76d884afc10c276c0b4e3af989d68a9556551b /include
parent34f96731f5fb8ab8a1f7018366fc28fd041d73e2 (diff)
downloadouroboros-a46114ec01e8d174a41744f4f1b49905613847dc.tar.gz
ouroboros-a46114ec01e8d174a41744f4f1b49905613847dc.zip
lib, irmd, ipcp: robust mutexes
Update to POSIX 200112L to allow use of robust mutexes in the shm_du_map. Removed the implementation of the rw_lock in favor of pthread_rwlock_t. Placeholder for the shm_du_map_sanitize function.
Diffstat (limited to 'include')
-rw-r--r--include/ouroboros/config.h.in2
-rw-r--r--include/ouroboros/rw_lock.h41
-rw-r--r--include/ouroboros/shm_du_map.h12
3 files changed, 8 insertions, 47 deletions
diff --git a/include/ouroboros/config.h.in b/include/ouroboros/config.h.in
index 0657710e..a20715ac 100644
--- a/include/ouroboros/config.h.in
+++ b/include/ouroboros/config.h.in
@@ -26,7 +26,7 @@
#define PROJECT_NAME "@CMAKE_PROJECT_NAME@"
#define PROJECT_VERSION "@PACKAGE_VERSION@"
#define INSTALL_DIR "@CMAKE_INSTALL_PREFIX@"
-#define _POSIX_C_SOURCE 199506L
+#define _POSIX_C_SOURCE 200112L
#define IPCP_SHIM_UDP_EXEC "@IPCP_SHIM_UDP_TARGET@"
#define IPCP_SHIM_ETH_LLC_EXEC "@IPCP_SHIM_ETH_LLC_TARGET@"
#define IPCP_NORMAL_EXEC "@IPCP_NORMAL_TARGET@"
diff --git a/include/ouroboros/rw_lock.h b/include/ouroboros/rw_lock.h
deleted file mode 100644
index 03eee605..00000000
--- a/include/ouroboros/rw_lock.h
+++ /dev/null
@@ -1,41 +0,0 @@
-/*
- * Ouroboros - Copyright (C) 2016
- *
- * Read/Write locks
- *
- * Dimitri Staessens <dimitri.staessens@intec.ugent.be>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- */
-
-#ifndef OUROBOROS_RWLOCK_H
-#define OUROBOROS_RWLOCK_H
-
-#include <ouroboros/config.h>
-#include <pthread.h>
-
-typedef struct rw_lock {
- pthread_mutex_t lock;
- pthread_mutex_t i_lock;
- int i;
-} rw_lock_t;
-
-int rw_lock_init(rw_lock_t * lock);
-void rw_lock_destroy(rw_lock_t * lock);
-int rw_lock_rdlock(rw_lock_t * lock);
-int rw_lock_wrlock(rw_lock_t * lock);
-int rw_lock_unlock(rw_lock_t * lock);
-
-#endif /* OUROBOROS_RWLOCK_H */
diff --git a/include/ouroboros/shm_du_map.h b/include/ouroboros/shm_du_map.h
index 081a6f62..2d215651 100644
--- a/include/ouroboros/shm_du_map.h
+++ b/include/ouroboros/shm_du_map.h
@@ -38,15 +38,17 @@
#include "common.h"
#include <sys/types.h>
+#include <pthread.h>
struct shm_du_buff;
struct shm_du_map;
-struct shm_du_map * shm_du_map_create();
-struct shm_du_map * shm_du_map_open();
-void shm_du_map_close(struct shm_du_map * dum);
-void shm_du_map_destroy(struct shm_du_map * dum);
-pid_t shm_du_map_owner(struct shm_du_map * dum);
+struct shm_du_map * shm_du_map_create();
+struct shm_du_map * shm_du_map_open();
+void shm_du_map_close(struct shm_du_map * dum);
+void shm_du_map_destroy(struct shm_du_map * dum);
+pid_t shm_du_map_owner(struct shm_du_map * dum);
+void * shm_du_map_sanitize(void * o);
/* returns the index of the buffer in the DU map */
ssize_t shm_create_du_buff(struct shm_du_map * dum,