Select Git revision
userspace_comm.c 938 B
#include "../include/userspace_comm.h"
#include <sys/ipc.h>
#include <sys/msg.h>
key_t msg_queue_key() { return ftok(MSG_QUEUE_KEY, MSG_QUEUE_PROJ_ID); }
int create_userspace_send_handle(userspace_send_handle_t *handle) {
int key;
int msg_queue_id;
if ((key = msg_queue_key()) == -1) {
return -1;
}
if ((msg_queue_id = msgget(key, IPC_NOWAIT)) == -1) {
return -1;
}
handle->msg_queue_id = msg_queue_id;
return 0;
}
int send_userspace_message(userspace_send_handle_t *handle,
measurement_t measurement) {
message_queue_message_t message_queue_message = {
.message_type = MESSAGE_MEASUREMENT_ID,
.measurement = measurement,
};
int read = msgsnd(handle->msg_queue_id, &message_queue_message, sizeof(measurement_t),
0);
if (read == -1) {
return -1;
}
return 0;
}
int destroy_userspace_send_handle(userspace_send_handle_t *handle) { return 0; }