Skip to content

Commit

Permalink
Add pthread_atfork() function
Browse files Browse the repository at this point in the history
For now, Unikraft does not support fork(), so we will just print an
warning saying that.

Signed-off-by: Costin Lupu <[email protected]>
Reviewed-by: Felipe Huici <[email protected]>
  • Loading branch information
clupuishere authored and felipehuici committed Jul 10, 2019
1 parent 7a38d3f commit 1060362
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 0 deletions.
1 change: 1 addition & 0 deletions Makefile.uk
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
1 change: 1 addition & 0 deletions exportsyms.uk
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
3 changes: 3 additions & 0 deletions include/pthread.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down
31 changes: 31 additions & 0 deletions pthread_atfork.c
Original file line number Diff line number Diff line change
@@ -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;
}

0 comments on commit 1060362

Please sign in to comment.