Browse Source

make sure mq_timedsend() and mq_send() is always defined

Mike Frysinger 19 years ago
parent
commit
0b01e4471f
1 changed files with 8 additions and 5 deletions
  1. 8 5
      librt/mq_send.c

+ 8 - 5
librt/mq_send.c

@@ -9,11 +9,11 @@
 #include <mqueue.h>
 
 #ifdef __NR_mq_timedsend
-
 #define __NR___syscall_mq_timedsend __NR_mq_timedsend
 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
 
 /*
  * Add a message to queue. If O_NONBLOCK is set and queue is full, wait
@@ -23,14 +23,17 @@ int mq_timedsend(mqd_t mqdes, const char *msg_ptr, size_t msg_len,
 		unsigned int msg_prio,
 		const struct timespec *abs_timeout)
 {
-    return __syscall_mq_timedsend(mqdes, msg_ptr, msg_len, msg_prio, 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
 }
 
 /* Add a message to queue */
 int mq_send(mqd_t mqdes, const char *msg_ptr, size_t msg_len,
 		unsigned int msg_prio)
 {
-    return mq_timedsend(mqdes, msg_ptr, msg_len, msg_prio, NULL);
+	return mq_timedsend(mqdes, msg_ptr, msg_len, msg_prio, NULL);
 }
-
-#endif