This patch is an update of the original.
Signed-off-by: Mihai Pogonaru <pogonarumihai@gmail.com>
Signed-off-by: Teodora Serbanescu <teo.serbanescu16@gmail.com>
Signed-off-by: Felipe Huici <felipe.huici@neclab.eu>
Reviewed-by: ARGINT DRAGOS IULIAN <dragosargint21@gmail.com>
select LIBUKDEBUG
select LIBUKALLOC
select LIBUKSCHED
+ select LIBUKSIGNAL
select LIBUKLOCK
select LIBUKLOCK_MUTEX
select LIBUKLOCK_SEMAPHORE
#include <uk/mutex.h>
#include <uk/semaphore.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+
typedef struct uk_thread* pte_osThreadHandle;
typedef struct uk_semaphore *pte_osSemaphoreHandle;
typedef struct uk_mutex *pte_osMutexHandle;
#define OS_MAX_SIMUL_THREADS \
CONFIG_LIBPTHREAD_EMBEDDED_MAX_SIMUL_THREADS
+#ifdef __cplusplus
+}
+#endif
+
+
#include "pte_generic_osal.h"
#endif /* __PTE_OSAL_H__ */
#include <sys/timeb.h>
+#ifdef __cplusplus
+extern "C" {
+#endif
+
typedef unsigned int tid_t;
typedef int pid_t;
+#ifdef __cplusplus
+}
+#endif
+
#endif /* __PTE_TYPES_H__ */
--- /dev/null
+diff --git a/pthread_kill.c b/pthread_kill.c
+index 3a6daf6..4ea7448 100644
+--- a/pthread_kill.c
++++ b/pthread_kill.c
+@@ -47,7 +47,9 @@
+ #include "pthread.h"
+ #include "implement.h"
+
+-#ifdef __hermit__
++#include <uk/config.h>
++
++#if CONFIG_LIBUKSIGNAL
+ int pte_kill(pte_osThreadHandle threadId, int sig);
+ #endif
+
+@@ -98,7 +100,7 @@ pthread_kill (pthread_t thread, int sig)
+
+ pte_osMutexUnlock(pte_thread_reuse_lock);
+
+-#ifdef __hermit__
++#if CONFIG_LIBUKSIGNAL
+ result = pte_kill(tp->threadId, sig);
+ #else
+ if (0 == result && 0 != sig)
return result;
}
+/***************************************************************************
+ *
+ * Signal handling
+ *
+ **************************************************************************/
+#if CONFIG_LIBUKSIGNAL
+int pte_kill(pte_osThreadHandle threadId, int sig)
+{
+ return uk_sig_thread_kill(threadId, sig);
+}
+#endif
+
+
/****************************************************************************
*
* Threads
return PTE_OS_NO_RESOURCES;
}
+#if CONFIG_LIBUKSIGNAL
+ /* inherit signal mask */
+ ptd->uk_thread->signals_container.mask =
+ uk_thread_current()->signals_container.mask;
+#endif
+
ptd->uk_thread->prv = ptd;
*ph = ptd->uk_thread;
#include <uk/print.h>
#include <signal.h>
+#include <uk/uk_signal.h>
int pthread_sigmask(int how, const sigset_t *set, sigset_t *oldset)
{
- WARN_STUBBED();
- return 0;
+ return uk_thread_sigmask(how, set, oldset);
}