mirror of
https://github.com/apache/nuttx.git
synced 2026-09-27 18:58:27 +08:00
Separate mqueue allocation logic from mq_open() and put it in sched/mqueue/mq_msgqalloc.c
This commit is contained in:
+14
-14
@@ -90,15 +90,15 @@ enum mqalloc_e
|
||||
|
||||
struct mqueue_msg_s
|
||||
{
|
||||
FAR struct mqmsg *next; /* Forward link to next message */
|
||||
uint8_t type; /* (Used to manage allocations) */
|
||||
uint8_t priority; /* priority of message */
|
||||
FAR struct mqueue_msg_s *next; /* Forward link to next message */
|
||||
uint8_t type; /* (Used to manage allocations) */
|
||||
uint8_t priority; /* priority of message */
|
||||
#if MQ_MAX_BYTES < 256
|
||||
uint8_t msglen; /* Message data length */
|
||||
uint8_t msglen; /* Message data length */
|
||||
#else
|
||||
uint16_t msglen; /* Message data length */
|
||||
uint16_t msglen; /* Message data length */
|
||||
#endif
|
||||
uint8_t mail[MQ_MAX_BYTES]; /* Message data */
|
||||
uint8_t mail[MQ_MAX_BYTES]; /* Message data */
|
||||
};
|
||||
|
||||
/****************************************************************************
|
||||
@@ -141,10 +141,10 @@ EXTERN sq_queue_t g_desfree;
|
||||
void weak_function mq_initialize(void);
|
||||
void mq_desblockalloc(void);
|
||||
|
||||
mqd_t mq_descreate(FAR struct tcb_s* mtcb, FAR msgq_t* msgq, int oflags);
|
||||
FAR msgq_t *mq_findnamed(const char *mq_name);
|
||||
mqd_t mq_descreate(FAR struct tcb_s* mtcb, FAR struct mqueue_inode_s* msgq,
|
||||
int oflags);
|
||||
FAR struct mqueue_inode_s *mq_findnamed(FAR const char *mq_name);
|
||||
void mq_msgfree(FAR struct mqueue_msg_s *mqmsg);
|
||||
void mq_msgqfree(FAR msgq_t *msgq);
|
||||
|
||||
/* mq_waitirq.c ************************************************************/
|
||||
|
||||
@@ -154,16 +154,16 @@ void mq_waitirq(FAR struct tcb_s *wtcb, int errcode);
|
||||
|
||||
int mq_verifyreceive(mqd_t mqdes, void *msg, size_t msglen);
|
||||
FAR struct mqueue_msg_s *mq_waitreceive(mqd_t mqdes);
|
||||
ssize_t mq_doreceive(mqd_t mqdes, struct mqueue_msg_s *mqmsg, void *ubuffer,
|
||||
int *prio);
|
||||
ssize_t mq_doreceive(mqd_t mqdes, FAR struct mqueue_msg_s *mqmsg,
|
||||
FAR void *ubuffer, FAR int *prio);
|
||||
|
||||
/* mq_sndinternal.c ********************************************************/
|
||||
|
||||
int mq_verifysend(mqd_t mqdes, const void *msg, size_t msglen, int prio);
|
||||
int mq_verifysend(mqd_t mqdes, FAR const void *msg, size_t msglen, int prio);
|
||||
FAR struct mqueue_msg_s *mq_msgalloc(void);
|
||||
int mq_waitsend(mqd_t mqdes);
|
||||
int mq_dosend(mqd_t mqdes, FAR struct mqueue_msg_s *mqmsg, const void *msg,
|
||||
size_t msglen, int prio);
|
||||
int mq_dosend(mqd_t mqdes, FAR struct mqueue_msg_s *mqmsg,
|
||||
FAR const void *msg, size_t msglen, int prio);
|
||||
|
||||
/* mq_release.c ************************************************************/
|
||||
|
||||
|
||||
Reference in New Issue
Block a user