diff options
author | dimitri staessens <dimitri.staessens@intec.ugent.be> | 2016-09-18 06:27:43 +0200 |
---|---|---|
committer | dimitri staessens <dimitri.staessens@intec.ugent.be> | 2016-10-04 15:16:00 +0200 |
commit | c96efb13edfaf9b2f2c626bd2a5d5d5afd38155f (patch) | |
tree | acd08f09f5a094e897020e97961b2847209df043 /src/ipcpd/ipcp-data.h | |
parent | 2e561a634ae3e747b293a4e05eaf44726968dc1a (diff) | |
download | ouroboros-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-data.h')
-rw-r--r-- | src/ipcpd/ipcp-data.h | 41 |
1 files changed, 24 insertions, 17 deletions
diff --git a/src/ipcpd/ipcp-data.h b/src/ipcpd/ipcp-data.h index 36245eea..4971dbb5 100644 --- a/src/ipcpd/ipcp-data.h +++ b/src/ipcpd/ipcp-data.h @@ -30,7 +30,6 @@ #include <pthread.h> #include "ipcp-ops.h" -#include "flow.h" struct ipcp_data { enum ipcp_type type; @@ -46,24 +45,32 @@ struct ipcp_data { }; struct ipcp_data * ipcp_data_create(); + struct ipcp_data * ipcp_data_init(struct ipcp_data * dst, enum ipcp_type ipcp_type); + void ipcp_data_destroy(struct ipcp_data * data); -int ipcp_data_add_reg_entry(struct ipcp_data * data, - char * name); -int ipcp_data_del_reg_entry(struct ipcp_data * data, - const char * name); -int ipcp_data_add_dir_entry(struct ipcp_data * data, - char * ap_name, - uint64_t addr); -int ipcp_data_del_dir_entry(struct ipcp_data * data, - const char * ap_name, - uint64_t addr); -bool ipcp_data_is_in_registry(struct ipcp_data * data, - const char * name); -bool ipcp_data_is_in_directory(struct ipcp_data * data, - const char * ap_name); -uint64_t ipcp_data_get_addr(struct ipcp_data * data, - const char * ap_name); +int ipcp_data_add_reg_entry(struct ipcp_data * data, + char * name); + +int ipcp_data_del_reg_entry(struct ipcp_data * data, + const char * name); + +int ipcp_data_add_dir_entry(struct ipcp_data * data, + char * ap_name, + uint64_t addr); + +int ipcp_data_del_dir_entry(struct ipcp_data * data, + const char * ap_name, + uint64_t addr); + +bool ipcp_data_is_in_registry(struct ipcp_data * data, + const char * name); + +bool ipcp_data_is_in_directory(struct ipcp_data * data, + const char * ap_name); + +uint64_t ipcp_data_get_addr(struct ipcp_data * data, + const char * ap_name); #endif /* IPCPD_IPCP_DATA_H */ |