diff options
| -rw-r--r-- | include/ouroboros/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | include/ouroboros/flow.h (renamed from src/ipcpd/flow.h) | 21 | ||||
| -rw-r--r-- | src/ipcpd/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | src/lib/CMakeLists.txt | 1 | ||||
| -rw-r--r-- | src/lib/flow.c (renamed from src/ipcpd/flow.c) | 22 | 
5 files changed, 18 insertions, 28 deletions
| diff --git a/include/ouroboros/CMakeLists.txt b/include/ouroboros/CMakeLists.txt index a196140b..9d1a623d 100644 --- a/include/ouroboros/CMakeLists.txt +++ b/include/ouroboros/CMakeLists.txt @@ -9,6 +9,7 @@ set(HEADER_FILES          da.h          dev.h          du_buff.h +        flow.h          ipcp.h          irm.h          list.h diff --git a/src/ipcpd/flow.h b/include/ouroboros/flow.h index 83f4076d..456a85c7 100644 --- a/src/ipcpd/flow.h +++ b/include/ouroboros/flow.h @@ -20,14 +20,12 @@   * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.   */ -#ifndef IPCPD_FLOW_H -#define IPCPD_FLOW_H +#ifndef OUROBOROS_FLOW_H +#define OUROBOROS_FLOW_H  #include <ouroboros/common.h> -#ifdef FLOW_MT_SAFE  #include <pthread.h> -#endif  /* same values as fcntl.h */  #define FLOW_O_RDONLY   00000000 @@ -40,8 +38,6 @@  #define FLOW_O_INVALID  00037777 -typedef long port_id_t; -  enum flow_state {          FLOW_INIT = 0,          FLOW_ALLOCATED, @@ -49,18 +45,17 @@ enum flow_state {  };  typedef struct flow { -        port_id_t       port_id; -        uint16_t        flags; -        uint8_t         state; -#ifdef FLOW_MT_SAFE +        int32_t         port_id; +        uint16_t        oflags; +        enum flow_state state; +          pthread_mutex_t lock; -#endif  } flow_t; -flow_t * flow_create(port_id_t port_id); +flow_t * flow_create(int32_t   port_id);  void     flow_destroy(flow_t * flow);  int      flow_set_opts(flow_t * flow, uint16_t opts);  uint16_t flow_get_opts(const flow_t * flow); -#endif /* IPCPD_FLOW_H */ +#endif /* OUROBOROS_FLOW_H */ diff --git a/src/ipcpd/CMakeLists.txt b/src/ipcpd/CMakeLists.txt index 27d41801..bcb5b986 100644 --- a/src/ipcpd/CMakeLists.txt +++ b/src/ipcpd/CMakeLists.txt @@ -9,7 +9,6 @@ set(SOURCE_FILES          main.c          pci.c          shm_pci.c -        flow.c  )  add_executable (ipcpd ${SOURCE_FILES}) diff --git a/src/lib/CMakeLists.txt b/src/lib/CMakeLists.txt index 42a4d5c0..7a78bf3e 100644 --- a/src/lib/CMakeLists.txt +++ b/src/lib/CMakeLists.txt @@ -21,6 +21,7 @@ set(SOURCE_FILES          da.c          dev.c          du_buff.c +        flow.c          ipcp.c          irm.c          list.c diff --git a/src/ipcpd/flow.c b/src/lib/flow.c index 395a0a0d..67b8e71b 100644 --- a/src/ipcpd/flow.c +++ b/src/lib/flow.c @@ -20,23 +20,22 @@   * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.   */ -#include "flow.h"  #include <malloc.h> +#include <ouroboros/flow.h>  #define OUROBOROS_PREFIX "ipcpd/flow"  #include <ouroboros/logs.h> -flow_t * flow_create(port_id_t port_id) +flow_t * flow_create(int32_t port_id)  {          flow_t * flow = malloc(sizeof *flow);          flow->port_id = port_id; -        flow->flags = FLOW_O_DEFAULT; +        flow->oflags = FLOW_O_DEFAULT;          flow->state = FLOW_INIT; -#ifdef FLOW_MT_SAFE          pthread_mutex_init(&flow->lock, NULL); -#endif +          return flow;  } @@ -52,23 +51,18 @@ int flow_set_opts(flow_t * flow, uint16_t opts)                  return -1;          } -#ifdef FLOW_MT_SAFE          pthread_mutex_lock(&flow->lock); -#endif          if ((opts & FLOW_O_ACCMODE) == FLOW_O_ACCMODE) { -#ifdef FLOW_MT_SAFE                  pthread_mutex_unlock(&flow->lock); -#endif                  LOG_WARN("Invalid flow options. Setting default.");                  opts = FLOW_O_DEFAULT;          } -        flow->flags = opts; +        flow->oflags = opts; + +        pthread_mutex_unlock(&flow->lock); -#ifdef FLOW_MT_SAFE -                pthread_mutex_unlock(&flow->lock); -#endif          return 0;  } @@ -79,5 +73,5 @@ uint16_t flow_get_opts(const flow_t * flow)                  return FLOW_O_INVALID;          } -        return flow->flags; +        return flow->oflags;  } | 
