blob: 846a4840e6e77ed140cf45b75593dacd5ff52830 [file] [log] [blame]
#ifndef __WILC_MSG_QUEUE_H__
#define __WILC_MSG_QUEUE_H__
#include <linux/semaphore.h>
#include <linux/list.h>
struct message {
void *buf;
u32 len;
struct list_head list;
};
struct message_queue {
struct semaphore sem;
spinlock_t lock;
bool exiting;
u32 recv_count;
struct list_head msg_list;
};
int wilc_mq_create(struct message_queue *mq);
int wilc_mq_send(struct message_queue *mq,
const void *send_buf, u32 send_buf_size);
int wilc_mq_recv(struct message_queue *mq,
void *recv_buf, u32 recv_buf_size, u32 *recv_len);
int wilc_mq_destroy(struct message_queue *mq);
#endif