From c96efb13edfaf9b2f2c626bd2a5d5d5afd38155f Mon Sep 17 00:00:00 2001 From: dimitri staessens Date: Sun, 18 Sep 2016 06:27:43 +0200 Subject: 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 --- src/ipcpd/ipcp.h | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) (limited to 'src/ipcpd/ipcp.h') 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 -#include #include #include @@ -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[]); -- cgit v1.2.3