53 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			53 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
|  | /*
 | ||
|  |  * Copyright (c) 2006-2021, RT-Thread Development Team | ||
|  |  * | ||
|  |  * SPDX-License-Identifier: Apache-2.0 | ||
|  |  * | ||
|  |  * Change Logs: | ||
|  |  * Date           Author       Notes | ||
|  |  */ | ||
|  | 
 | ||
|  | #ifndef __MQUEUE_H__
 | ||
|  | #define __MQUEUE_H__
 | ||
|  | 
 | ||
|  | #include <rtthread.h>
 | ||
|  | #include <sys/signal.h>
 | ||
|  | 
 | ||
|  | #ifdef RT_USING_DFS_MQUEUE
 | ||
|  | #include "dfs_mqueue.h"
 | ||
|  | #endif
 | ||
|  | 
 | ||
|  | typedef int mqd_t; | ||
|  | 
 | ||
|  | struct mq_attr | ||
|  | { | ||
|  |     long mq_flags;      /* Message queue flags. */ | ||
|  |     long mq_maxmsg;     /* Maximum number of messages. */ | ||
|  |     long mq_msgsize;    /* Maximum message size. */ | ||
|  |     long mq_curmsgs;    /* Number of messages currently queued. */ | ||
|  | }; | ||
|  | 
 | ||
|  | int     mq_close(mqd_t mqdes); | ||
|  | int     mq_getattr(mqd_t mqdes, struct mq_attr *mqstat); | ||
|  | int     mq_notify(mqd_t mqdes, const struct sigevent *notification); | ||
|  | mqd_t   mq_open(const char *name, int oflag, ...); | ||
|  | ssize_t mq_receive(mqd_t mqdes, char *msg_ptr, size_t msg_len, unsigned *msg_prio); | ||
|  | int     mq_send(mqd_t mqdes, const char *msg_ptr, size_t msg_len, unsigned msg_prio); | ||
|  | int     mq_setattr(mqd_t                 mqdes, | ||
|  |                    const struct mq_attr *mqstat, | ||
|  |                    struct mq_attr       *omqstat); | ||
|  | ssize_t mq_timedreceive(mqd_t                  mqdes, | ||
|  |                         char                  *msg_ptr, | ||
|  |                         size_t                 msg_len, | ||
|  |                         unsigned              *msg_prio, | ||
|  |                         const struct timespec *abs_timeout); | ||
|  | int     mq_timedsend(mqd_t                  mqdes, | ||
|  |                      const char            *msg_ptr, | ||
|  |                      size_t                 msg_len, | ||
|  |                      unsigned               msg_prio, | ||
|  |                      const struct timespec *abs_timeout); | ||
|  | 
 | ||
|  | int     mq_unlink(const char *name); | ||
|  | 
 | ||
|  | #endif
 |