|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Minios-devel] [UNIKRAFT/PTHREAD-EMBEDDED] Add pthread_atfork() function
For now, Unikraft does not support fork(), so we will just print an
warning saying that.
Signed-off-by: Costin Lupu <costin.lupu@xxxxxxxxx>
---
Makefile.uk | 1 +
exportsyms.uk | 1 +
include/pthread.h | 3 +++
pthread_atfork.c | 31 +++++++++++++++++++++++++++++++
4 files changed, 36 insertions(+)
create mode 100644 pthread_atfork.c
diff --git a/Makefile.uk b/Makefile.uk
index 8ee5d36..9b6b3b6 100644
--- a/Makefile.uk
+++ b/Makefile.uk
@@ -66,6 +66,7 @@ LIBPTHREAD-EMBEDDED_EXPORTS =
$(LIBPTHREAD-EMBEDDED_BASE)/exportsyms.uk
################################################################################
LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_BASE)/pte_osal.c|glue
LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_BASE)/attributes.c|glue
+LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_BASE)/pthread_atfork.c|glue
################################################################################
# pthread-embedded code
diff --git a/exportsyms.uk b/exportsyms.uk
index 24b5c02..1855b63 100644
--- a/exportsyms.uk
+++ b/exportsyms.uk
@@ -83,6 +83,7 @@ pthread_rwlockattr_destroy
pthread_rwlockattr_getpshared
pthread_rwlockattr_setpshared
pthread_kill
+pthread_atfork
sched_yield
sched_get_priority_min
sched_get_priority_max
diff --git a/include/pthread.h b/include/pthread.h
index 799f39b..c1ebcea 100644
--- a/include/pthread.h
+++ b/include/pthread.h
@@ -29,6 +29,9 @@ extern "C" {
/* The C code in pthread.h is not guarded for C++ */
#include_next <pthread.h>
+int pthread_atfork(void (*prepare)(void),
+ void (*parent)(void), void (*child)(void));
+
/* C functions not implemented in pthread-embedded */
int pthread_attr_setguardsize(pthread_attr_t *attr, size_t guardsize);
int pthread_attr_getguardsize(const pthread_attr_t *attr, size_t *guardsize);
diff --git a/pthread_atfork.c b/pthread_atfork.c
new file mode 100644
index 0000000..0daf1b8
--- /dev/null
+++ b/pthread_atfork.c
@@ -0,0 +1,31 @@
+/* SPDX-License-Identifier: LGPL-2.0-or-later */
+/*
+ * Unikraft port of POSIX Threads Library for embedded systems
+ * Copyright(C) 2019 Costin Lupu, University Politehnica of Bucharest
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library in the file COPYING.LIB;
+ * if not, write to the Free Software Foundation, Inc.,
+ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ */
+
+#include <pthread.h>
+#include <uk/print.h>
+
+
+int pthread_atfork(void (*prepare)(void),
+ void (*parent)(void), void (*child)(void))
+{
+ uk_pr_warn("Unikraft does not support fork yet!");
+ return 0;
+}
--
2.11.0
_______________________________________________
Minios-devel mailing list
Minios-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/minios-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |