summaryrefslogtreecommitdiff
path: root/src/ipcpd/ipcp.h
diff options
context:
space:
mode:
authordimitri staessens <[email protected]>2016-09-18 06:27:43 +0200
committerdimitri staessens <[email protected]>2016-10-04 15:16:00 +0200
commitc96efb13edfaf9b2f2c626bd2a5d5d5afd38155f (patch)
treeacd08f09f5a094e897020e97961b2847209df043 /src/ipcpd/ipcp.h
parent2e561a634ae3e747b293a4e05eaf44726968dc1a (diff)
downloadouroboros-c96efb13edfaf9b2f2c626bd2a5d5d5afd38155f.tar.gz
ouroboros-c96efb13edfaf9b2f2c626bd2a5d5d5afd38155f.zip
lib, ipcp: Revise fast path and flow interfaces
IPCPs can now use ap_init() to initialize the memory. All flows are accessed using flow descriptors, this greatly simplifies IPCP development. Reverts the fast path to a single ap_rbuff per process. Splits lib/ipcp into irmd/ipcp and lib/ipcp-dev. Adds a lib/shim-dev holding tailored functions for shims. Moves the buffer_t to utils.h. Fixes the shim-eth-llc length field. Removes the flow from shared.h. Fixes #4 Fixes #5
Diffstat (limited to 'src/ipcpd/ipcp.h')
-rw-r--r--src/ipcpd/ipcp.h19
1 files changed, 9 insertions, 10 deletions
diff --git a/src/ipcpd/ipcp.h b/src/ipcpd/ipcp.h
index edaea0fd..87c0c5d1 100644
--- a/src/ipcpd/ipcp.h
+++ b/src/ipcpd/ipcp.h
@@ -24,7 +24,6 @@
#define IPCPD_IPCP_H
#include <ouroboros/config.h>
-#include <ouroboros/shared.h>
#include <pthread.h>
#include <time.h>
@@ -50,23 +49,23 @@ struct ipcp {
pthread_rwlock_t state_lock;
pthread_mutex_t state_mtx;
pthread_cond_t state_cond;
-};
-struct ipcp * ipcp_instance_create();
+ pthread_t mainloop;
+} ipcpi;
+
+int ipcp_init();
-void ipcp_set_state(struct ipcp * ipcp,
- enum ipcp_state state);
+void ipcp_fini();
-enum ipcp_state ipcp_get_state(struct ipcp * ipcp);
+void ipcp_set_state(enum ipcp_state state);
-int ipcp_wait_state(struct ipcp * ipcp,
- enum ipcp_state state,
+enum ipcp_state ipcp_get_state();
+
+int ipcp_wait_state(enum ipcp_state state,
const struct timespec * timeout);
void * ipcp_main_loop(void * o);
-void * ipcp_sdu_loop(void * o);
-
int ipcp_parse_arg(int argc,
char * argv[]);