[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Minios-devel] [UNIKRAFT/PTHREAD-EMBEDDED] Add pthread_atfork() function


  • To: minios-devel@xxxxxxxxxxxxx
  • From: Costin Lupu <costin.lupu@xxxxxxxxx>
  • Date: Tue, 9 Jul 2019 12:09:33 +0300
  • Cc: felipe.huici@xxxxxxxxx
  • Delivery-date: Tue, 09 Jul 2019 09:09:59 +0000
  • Ironport-phdr: 9a23:gWZc6xVX9N+ByYBdMIz3FbQ3T+bV8LGtZVwlr6E/grcLSJyIuqrYbBSOt8tkgFKBZ4jH8fUM07OQ7/m6HzBaqs/Y+Fk5M7V0HycfjssXmwFySOWkMmbcaMDQUiohAc5ZX0Vk9XzoeWJcGcL5ekGA6ibqtW1aFRrwLxd6KfroEYDOkcu3y/qy+5rOaAlUmTaxe7x/IAiooQnLucQan4RuJrssxhDUvnZGZuNayH9yK1mOhRj8/MCw/JBi8yRUpf0s8tNLXLv5caolU7FWFSwqPG8p6sLlsxnDVhaP6WAHUmoKiBpIAhPK4w/8U5zsryb1rOt92C2dPc3rUbA5XCmp4ql3RBP0jioMKjg0+3zVhMNtlqJWuBKvqQJizYDaY4+bM+Fzcr/Bcd4AWWZMRNpdWzBHD4ihb4UPFe0BPeNAooTjoFsOtge+BQiqBOjyzDFIm2f23bAn2OkmDQ7G2xcgH84PsHTSttn1MLoSUfiozKTT0TrDdOla2S/g6IfTaBwhu/aMUKt2fMHMykcvDxvIgkifpID4JT+Y1eQAv3KF4+Z+V++jkWAqpxlsrjWg28sgkIrEi4IPxlza+yh0zpw5KcC3RUJlZ9OvDYFeuDuAN4RsR8MvW2RouCEnxbIYoZO7Zy0KyIg/xx7YdvyHb5CE4hL9W+aVJjd1nGxleLeliBaz9Uis0PHzVtKu3FZSsypKicPAtmoK1xDL68iHTOVy/lu51DqS2A3f9/tILEM0mKbBNZIt3Lw9moAdvEjbGy/5gkT2jKuYdkU+/eio7vzqbanhpp+HK490iwf+Pr4qmsyiGeQ4LxMDUHSA+eimzL3j4Fb2TK9Qjv0xiqXZqozVJdwHpq6lBA9YyoMj6xe5Dzen19QYhmALI09bdxKZkYfpP0rDIPT5Dfekn1Ssiy1nxv/YMb3nGJnNKWLDkLj5d7Zn90Fc0BYzzcxY559MBLEOPvbzWk7ptNPGFBM5MxG0w+f7B9V8zY4eX3yADbOdMKzIqlCE/PwgI/TfLLMS7TP8Lfki/LvigGE0nXcZfLK1xt0HZXb+Ge5pcGuDZn+5qdAaDWYM9i4jVPGi3FaFSiJSYTC2QrohzjogTpq7B8HZQdb+0/S6wC6nE8gONSh9AVeWHCKweg==
  • Ironport-sdr: z/xZ0HPa/S2xlQMJ2EFiZNKCI8n1gvtHLT29r7bDmUjHDoxTGe/hSjFilfWYnxXj4lcWIAPb03 Me+Vwj+kjVuA==
  • List-id: Mini-os development list <minios-devel.lists.xenproject.org>

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

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.