+// Pausing
+
+//GDB: handle SIG34 nostop noprint
+#define PTHREAD_XSIG_STOP (SIGRTMIN+0)
+#define PTHREAD_XSIG_CONT (SIGRTMIN+1)
+#define PTHREAD_XSIGRTMIN (SIGRTMIN+2) //First unused RT signal
+
+int pthread_extra_create(pthread_t *restrict thread,
+ const pthread_attr_t *restrict attr,
+ void *(*start_routine)(void *),
+ void *restrict arg);
+void pthread_unpause_handler();
+void pthread_pause_handler();
+void pthread_pause_enable();
+void pthread_pause_disable();
+int pthread_pause(pthread_t thread);
+int pthread_unpause(pthread_t thread);
+int pthread_pause_all();
+int pthread_unpause_all();
+int pthread_pause_reschedule(pthread_t thread);
+int pthread_extra_yield();
+
+// Message queues
+
+//Flags
+typedef uint8_t pthread_mq_flags_t;
+#define PTHREAD_XMQ_NONE 0 ///< No flags specified (default behaviour)
+#define PTHREAD_XMQ_FRONT 1 ///< Send to front of the queue (scheduled for next receive)
+#define PTHREAD_XMQ_BACK PTHREAD_XMQ_NONE ///< Send to back of the queue (default)
+#define PTHREAD_XMQ_PEEK 2 ///< Only peek, do not remove received item
+#define PTHREAD_XMQ_RECV PTHREAD_XMQ_NONE ///< Remove received item from queue (default)
+#define PTHREAD_XMQ_OVERW 4 ///< Overwrite item if queue full