summaryrefslogtreecommitdiff
path: root/src/lib/dev.c
diff options
context:
space:
mode:
authordimitri staessens <[email protected]>2016-06-28 17:02:42 +0200
committerdimitri staessens <[email protected]>2016-06-28 17:02:42 +0200
commita19521aa74edfa4a2eb62466b04c9264c3b6576c (patch)
tree36b94730d8690c2d131f39b3cc3ff715674f9fcc /src/lib/dev.c
parentacd29da104d0d8ddace2b2693314542bb5a56fcc (diff)
parent99d19307fae8f1370f52a62aee88fded624ad464 (diff)
downloadouroboros-a19521aa74edfa4a2eb62466b04c9264c3b6576c.tar.gz
ouroboros-a19521aa74edfa4a2eb62466b04c9264c3b6576c.zip
Merged in sandervrijders/ouroboros/be (pull request #144)
lib, irmd, ipcpd: Change of IRM API
Diffstat (limited to 'src/lib/dev.c')
-rw-r--r--src/lib/dev.c46
1 files changed, 15 insertions, 31 deletions
diff --git a/src/lib/dev.c b/src/lib/dev.c
index ad311f7f..ac995b2d 100644
--- a/src/lib/dev.c
+++ b/src/lib/dev.c
@@ -28,7 +28,6 @@
#include <ouroboros/dev.h>
#include <ouroboros/sockets.h>
#include <ouroboros/bitmap.h>
-#include <ouroboros/instance_name.h>
#include <ouroboros/shm_du_map.h>
#include <ouroboros/shm_ap_rbuff.h>
#include <ouroboros/utils.h>
@@ -45,7 +44,8 @@ struct flow {
};
struct ap_data {
- instance_name_t * api;
+ char * ap_name;
+ pid_t api;
struct shm_du_map * dum;
struct bmp * fds;
struct shm_ap_rbuff * rb;
@@ -66,30 +66,17 @@ int ap_init(char * ap_name)
return -ENOMEM;
}
- _ap_instance->api = instance_name_create();
- if (_ap_instance->api == NULL) {
- free(_ap_instance);
- return -ENOMEM;
- }
-
- if (instance_name_init_from(_ap_instance->api,
- ap_name,
- getpid()) == NULL) {
- instance_name_destroy(_ap_instance->api);
- free(_ap_instance);
- return -ENOMEM;
- }
+ _ap_instance->api = getpid();
+ _ap_instance->ap_name = ap_name;
_ap_instance->fds = bmp_create(AP_MAX_FLOWS, 0);
if (_ap_instance->fds == NULL) {
- instance_name_destroy(_ap_instance->api);
free(_ap_instance);
return -ENOMEM;
}
_ap_instance->dum = shm_du_map_open();
if (_ap_instance->dum == NULL) {
- instance_name_destroy(_ap_instance->api);
bmp_destroy(_ap_instance->fds);
free(_ap_instance);
return -1;
@@ -97,7 +84,6 @@ int ap_init(char * ap_name)
_ap_instance->rb = shm_ap_rbuff_create();
if (_ap_instance->rb == NULL) {
- instance_name_destroy(_ap_instance->api);
shm_du_map_close(_ap_instance->dum);
bmp_destroy(_ap_instance->fds);
free(_ap_instance);
@@ -124,8 +110,6 @@ void ap_fini(void)
pthread_rwlock_wrlock(&_ap_instance->data_lock);
- if (_ap_instance->api != NULL)
- instance_name_destroy(_ap_instance->api);
if (_ap_instance->fds != NULL)
bmp_destroy(_ap_instance->fds);
if (_ap_instance->dum != NULL)
@@ -164,12 +148,12 @@ int flow_accept(char ** ae_name)
int cfd = -1;
msg.code = IRM_MSG_CODE__IRM_FLOW_ACCEPT;
- msg.has_pid = true;
+ msg.has_api = true;
pthread_rwlock_rdlock(&_ap_instance->data_lock);
- msg.ap_name = _ap_instance->api->name;
- msg.pid = _ap_instance->api->id;
+ msg.ap_name = _ap_instance->ap_name;
+ msg.api = _ap_instance->api;
pthread_rwlock_unlock(&_ap_instance->data_lock);
@@ -178,7 +162,7 @@ int flow_accept(char ** ae_name)
return -1;
}
- if (!recv_msg->has_pid || !recv_msg->has_port_id) {
+ if (!recv_msg->has_api || !recv_msg->has_port_id) {
irm_msg__free_unpacked(recv_msg, NULL);
return -1;
}
@@ -194,7 +178,7 @@ int flow_accept(char ** ae_name)
return -1;
}
- _ap_instance->flows[cfd].rb = shm_ap_rbuff_open(recv_msg->pid);
+ _ap_instance->flows[cfd].rb = shm_ap_rbuff_open(recv_msg->api);
if (_ap_instance->flows[cfd].rb == NULL) {
bmp_release(_ap_instance->fds, cfd);
pthread_rwlock_unlock(&_ap_instance->flows_lock);
@@ -237,8 +221,8 @@ int flow_alloc_resp(int fd,
return -EBADF;
msg.code = IRM_MSG_CODE__IRM_FLOW_ALLOC_RESP;
- msg.has_pid = true;
- msg.pid = _ap_instance->api->id;
+ msg.has_api = true;
+ msg.api = _ap_instance->api;
msg.has_port_id = true;
pthread_rwlock_rdlock(&_ap_instance->data_lock);
@@ -295,11 +279,11 @@ int flow_alloc(char * dst_name,
msg.code = IRM_MSG_CODE__IRM_FLOW_ALLOC;
msg.dst_name = dst_name;
msg.ae_name = src_ae_name;
- msg.has_pid = true;
+ msg.has_api = true;
pthread_rwlock_rdlock(&_ap_instance->data_lock);
- msg.pid = _ap_instance->api->id;
+ msg.api = _ap_instance->api;
pthread_rwlock_unlock(&_ap_instance->data_lock);
@@ -308,7 +292,7 @@ int flow_alloc(char * dst_name,
return -1;
}
- if (!recv_msg->has_pid || !recv_msg->has_port_id) {
+ if (!recv_msg->has_api || !recv_msg->has_port_id) {
irm_msg__free_unpacked(recv_msg, NULL);
return -1;
}
@@ -324,7 +308,7 @@ int flow_alloc(char * dst_name,
return -1;
}
- _ap_instance->flows[fd].rb = shm_ap_rbuff_open(recv_msg->pid);
+ _ap_instance->flows[fd].rb = shm_ap_rbuff_open(recv_msg->api);
if (_ap_instance->flows[fd].rb == NULL) {
bmp_release(_ap_instance->fds, fd);
pthread_rwlock_unlock(&_ap_instance->flows_lock);