Skip to content
Snippets Groups Projects
Select Git revision
  • master
1 result

README.md

Blame
  • 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; }