diff options
Diffstat (limited to 'librt/mq_send.c')
| -rw-r--r-- | librt/mq_send.c | 40 | 
1 files changed, 17 insertions, 23 deletions
diff --git a/librt/mq_send.c b/librt/mq_send.c index 4c1a492b4..f0fcfa35a 100644 --- a/librt/mq_send.c +++ b/librt/mq_send.c @@ -6,14 +6,18 @@  #include <stddef.h>  #include <sys/syscall.h>  #include <mqueue.h> +#warning FIXME: hard dependency on ADVANCED REALTIME feature +librt_hidden_proto(mq_timedsend) + +#ifndef __UCLIBC_HAS_THREADS_NATIVE__  #ifdef __NR_mq_timedsend  #define __NR___syscall_mq_timedsend __NR_mq_timedsend -static _syscall5(int, __syscall_mq_timedsend, int, mqdes, -		 const char *, msg_ptr, size_t, msg_len, unsigned int, -		 msg_prio, const void *, abs_timeout); +static __inline__ _syscall5(int, __syscall_mq_timedsend, int, mqdes, +			const char *, msg_ptr, size_t, msg_len, unsigned int, +			msg_prio, const void *, abs_timeout); +#endif -# if defined __USE_XOPEN2K && defined __UCLIBC_HAS_ADVANCED_REALTIME__  /*   * Add a message to queue. If O_NONBLOCK is set and queue is full, wait   * for sufficient room in the queue until abs_timeout expires. @@ -21,31 +25,21 @@ static _syscall5(int, __syscall_mq_timedsend, int, mqdes,  int mq_timedsend(mqd_t mqdes, const char *msg_ptr, size_t msg_len,  		 unsigned int msg_prio, const struct timespec *abs_timeout)  { +#ifdef __NR_mq_timedsend  	return __syscall_mq_timedsend(mqdes, msg_ptr, msg_len, msg_prio,  				      abs_timeout); +#else +	errno = ENOSYS; +	return -1; +#endif  } -# endif + +librt_hidden_def(mq_timedsend) +#endif  /* Add a message to queue */  int mq_send(mqd_t mqdes, const char *msg_ptr, size_t msg_len,  	    unsigned int msg_prio)  { -	return __syscall_mq_timedsend(mqdes, msg_ptr, msg_len, msg_prio, NULL); +	return mq_timedsend(mqdes, msg_ptr, msg_len, msg_prio, NULL);  } -#elif defined __UCLIBC_HAS_STUBS__ -# if defined __USE_XOPEN2K && defined __UCLIBC_HAS_ADVANCED_REALTIME__ -int mq_timedsend(mqd_t mqdes attribute_unused, const char *msg_ptr attribute_unused, -		 size_t msg_len attribute_unused, unsigned int msg_prio attribute_unused, -		 const struct timespec *abs_timeout attribute_unused) -{ -	__set_errno(ENOSYS); -	return -1; -} -# endif -int mq_send(mqd_t mqdes attribute_unused, const char *msg_ptr attribute_unused, -	    size_t msg_len attribute_unused, unsigned int msg_prio attribute_unused) -{ -	__set_errno(ENOSYS); -	return -1; -} -#endif  | 
