|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Minios-devel] [UNIKRAFT/PTHREAD-EMBEDDED PATCH 4/8] Initial port of pthread-embedded to Unikraft
Hi Costin,I have some remarks inline, but one remark that I don't know where to put best, so I'll put it at the top. My understanding is that at the moment, to use pthread's version of thread-local storage (the keycreate/setspecific/getspecific functions), the user needs to call pthread_init() first. This would probably be a good use of a constructor, either in pte_osal.c or a new init.c (or whatever name), with a call of the form:
void __constructor this_is_my_init_function_for_pthread_storage(void)
{
pthread_init();
}
On 4/15/19 2:43 PM, Costin Lupu wrote:
This is our initial port of pthread-embedded to Unikraft as external library. For now you need newlib to make it work. When adding the library in the dependency list, pthread-embedded should stay before newlib (e.g. ...:$(UK_LIBS)/pthread-embedded:$(UK_LIBS)/newlib.git:...). Signed-off-by: Costin Lupu <costin.lupu@xxxxxxxxx> --- Config.uk | 30 +++ Makefile.uk | 325 ++++++++++++++++++++++++++ README.md | 8 +- exportsyms.uk | 90 ++++++++ include/pte_osal.h | 16 ++ include/pte_types.h | 10 + include/sys/_pthreadtypes.h | 6 + pte_osal.c | 538 ++++++++++++++++++++++++++++++++++++++++++++ 8 files changed, 1022 insertions(+), 1 deletion(-) create mode 100644 Config.uk create mode 100644 Makefile.uk create mode 100644 exportsyms.uk create mode 100644 include/pte_osal.h create mode 100644 include/pte_types.h create mode 100644 include/sys/_pthreadtypes.h create mode 100644 pte_osal.c diff --git a/Config.uk b/Config.uk new file mode 100644 index 0000000..3587c55 --- /dev/null +++ b/Config.uk @@ -0,0 +1,30 @@ +menuconfig LIBPTHREAD_EMBEDDED + bool "libpthread-embedded - An embedded pthread library" + default n + select LIBNOLIBC if !HAVE_LIBC + select LIBUKDEBUG + select LIBUKALLOC + select LIBUKSCHED + select LIBUKLOCK + select LIBUKLOCK_MUTEX + select LIBUKLOCK_SEMAPHORE + +if LIBPTHREAD_EMBEDDED +config LIBPTHREAD_EMBEDDED_MAX_SIMUL_THREADS + int "Maximum number of simultaneous threads" + default 32 + help + Maximum number of simultaneous threads. + +config LIBPTHREAD_EMBEDDED_MAX_TLS + int "Maximum number of TLS values" + default 32 + help + Maximum number of supported TLS values. + +config LIBPTHREAD_EMBEDDED_UTEST + bool "Build unit tests" + default n + help + Builds the unit tests for running them from an external application. +endif diff --git a/Makefile.uk b/Makefile.uk new file mode 100644 index 0000000..1076a7f --- /dev/null +++ b/Makefile.uk @@ -0,0 +1,325 @@ +# +# 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 +# + +################################################################################ +# Library registration +################################################################################ +$(eval $(call addlib_s,libpthread-embedded,$(CONFIG_LIBPTHREAD_EMBEDDED))) + +################################################################################ +# Sources +################################################################################ +LIBPTHREAD-EMBEDDED_VERSION=hermit I think it's better to provide a fixed revision here. Since "hermit" is a branch name, when they push to that branch, our uk-pthread-embedded might break, for example, because they change files that we apply patches to. I would suggest to instead take a commit hash that works, such as the current tip "44b41d76". +LIBPTHREAD-EMBEDDED_URL=https://github.com/RWTH-OS/pthread-embedded/archive/$(LIBPTHREAD-EMBEDDED_VERSION).zip +LIBPTHREAD-EMBEDDED_PATCHDIR=$(LIBPTHREAD-EMBEDDED_BASE)/patches +$(eval $(call fetch,libpthread-embedded,$(LIBPTHREAD-EMBEDDED_URL))) +$(eval $(call patch,libpthread-embedded,$(LIBPTHREAD-EMBEDDED_PATCHDIR),pthread-embedded-$(LIBPTHREAD-EMBEDDED_VERSION))) + +################################################################################ +# Helpers +################################################################################ +LIBPTHREAD-EMBEDDED_EXTRACTED = $(LIBPTHREAD-EMBEDDED_ORIGIN)/pthread-embedded-$(LIBPTHREAD-EMBEDDED_VERSION) + +################################################################################ +# Library includes +################################################################################ +CINCLUDES-$(CONFIG_LIBPTHREAD_EMBEDDED) += -I$(LIBPTHREAD-EMBEDDED_BASE)/include +CINCLUDES-$(CONFIG_LIBPTHREAD_EMBEDDED) += -I$(LIBPTHREAD-EMBEDDED_EXTRACTED) +CINCLUDES-$(CONFIG_LIBPTHREAD_EMBEDDED) += -I$(LIBPTHREAD-EMBEDDED_EXTRACTED)/platform/helper + +CXXINCLUDES-$(CONFIG_LIBPTHREAD_EMBEDDED) += -I$(LIBPTHREAD-EMBEDDED_BASE)/include +CXXINCLUDES-$(CONFIG_LIBPTHREAD_EMBEDDED) += -I$(LIBPTHREAD-EMBEDDED_EXTRACTED) +CXXINCLUDES-$(CONFIG_LIBPTHREAD_EMBEDDED) += -I$(LIBPTHREAD-EMBEDDED_EXTRACTED)/platform/helper + +################################################################################ +# Global flags +################################################################################ +SUPPRESS_FLAGS += -Wno-unused-parameter \ +-Wno-pointer-to-int-cast -Wno-int-to-pointer-cast + +LIBPTHREAD-EMBEDDED_CFLAGS-y += $(SUPPRESS_FLAGS) +LIBPTHREAD-EMBEDDED_CXXFLAGS-y += $(SUPPRESS_FLAGS) + +LIBPTHREAD-EMBEDDED_EXPORTS = $(LIBPTHREAD-EMBEDDED_BASE)/exportsyms.uk + +################################################################################ +# OS dependencies code - Glue between Unikraft and pthread-embedded +################################################################################ +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_BASE)/pte_osal.c|glue + +################################################################################ +# pthread-embedded code +################################################################################ +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/cleanup.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/create.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/global.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/platform/helper/tls-helper.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pte_callUserDestroyRoutines.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pte_cancellable_wait.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pte_cond_check_need_init.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pte_detach.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pte_getprocessors.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pte_is_attr.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pte_mutex_check_need_init.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pte_new.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pte_relmillisecs.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pte_reuse.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pte_rwlock_cancelwrwait.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pte_rwlock_check_need_init.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pte_spinlock_check_need_init.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pte_threadDestroy.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pte_threadStart.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pte_throw.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pte_tkAssocCreate.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pte_tkAssocDestroy.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_attr_destroy.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_attr_getdetachstate.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_attr_getinheritsched.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_attr_getschedparam.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_attr_getschedpolicy.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_attr_getscope.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_attr_getstackaddr.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_attr_getstacksize.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_attr_init.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_attr_setdetachstate.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_attr_setinheritsched.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_attr_setschedparam.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_attr_setschedpolicy.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_attr_setscope.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_attr_setstackaddr.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_attr_setstacksize.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_barrierattr_destroy.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_barrierattr_getpshared.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_barrierattr_init.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_barrierattr_setpshared.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_barrier_destroy.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_barrier_init.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_barrier_wait.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_cancel.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_condattr_destroy.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_condattr_getpshared.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_condattr_init.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_condattr_setpshared.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_cond_destroy.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_cond_init.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_cond_signal.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_cond_wait.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_delay_np.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_detach.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_equal.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_exit.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_getconcurrency.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_getschedparam.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_getspecific.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_init.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_join.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_key_create.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_key_delete.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_kill.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_mutexattr_destroy.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_mutexattr_getkind_np.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_mutexattr_getpshared.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_mutexattr_gettype.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_mutexattr_init.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_mutexattr_setkind_np.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_mutexattr_setpshared.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_mutexattr_settype.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_mutex_destroy.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_mutex_init.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_mutex_lock.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_mutex_timedlock.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_mutex_trylock.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_mutex_unlock.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_num_processors_np.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_once.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_rwlockattr_destroy.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_rwlockattr_getpshared.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_rwlockattr_init.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_rwlockattr_setpshared.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_rwlock_destroy.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_rwlock_init.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_rwlock_rdlock.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_rwlock_timedrdlock.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_rwlock_timedwrlock.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_rwlock_tryrdlock.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_rwlock_trywrlock.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_rwlock_unlock.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_rwlock_wrlock.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_self.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_setcancelstate.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_setcanceltype.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_setconcurrency.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_setschedparam.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_setspecific.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_spin_destroy.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_spin_init.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_spin_lock.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_spin_trylock.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_spin_unlock.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_terminate.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_testcancel.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/pthread_timechange_handler_np.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/sched_get_priority_max.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/sched_get_priority_min.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/sched_setscheduler.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/sched_yield.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/sem_close.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/sem_destroy.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/sem_getvalue.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/sem_init.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/sem_open.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/sem_post_multiple.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/sem_post.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/sem_timedwait.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/sem_trywait.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/sem_unlink.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/sem_wait.c + +ifeq ($(CONFIG_LIBPTHREAD_EMBEDDED_UTEST),y) +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/barrier1.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/barrier2.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/barrier3.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/barrier4.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/barrier5.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/benchlib.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/benchtest1.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/benchtest2.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/benchtest3.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/benchtest4.c +#LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/benchtest5.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/cancel1.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/cancel2.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/cancel3.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/cancel4.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/cancel5.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/cancel6a.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/cancel6d.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/cleanup0.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/cleanup1.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/cleanup2.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/cleanup3.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/condvar1_1.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/condvar1_2.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/condvar1.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/condvar2_1.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/condvar2.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/condvar3_1.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/condvar3_2.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/condvar3_3.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/condvar3.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/condvar4.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/condvar5.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/condvar6.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/condvar7.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/condvar8.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/condvar9.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/count1.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/create1.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/create2.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/create3.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/delay1.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/delay2.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/detach1.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/equal1.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/errno1.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/exception1.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/exception2.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/exception3.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/exit1.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/exit2.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/exit3.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/exit4.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/exit5.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/inherit1.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/join0.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/join1.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/join2.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/join3.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/join4.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/kill1.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/mutex1.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/mutex1e.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/mutex1n.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/mutex1r.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/mutex2.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/mutex2e.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/mutex2r.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/mutex3.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/mutex3e.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/mutex3r.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/mutex4.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/mutex5.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/mutex6.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/mutex6e.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/mutex6es.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/mutex6n.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/mutex6r.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/mutex6rs.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/mutex6s.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/mutex7.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/mutex7e.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/mutex7n.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/mutex7r.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/mutex8.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/mutex8e.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/mutex8n.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/mutex8r.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/once1.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/once2.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/once3.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/once4.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/priority1.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/priority2.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/reuse1.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/reuse2.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/rwlock1.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/rwlock2.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/rwlock2_t.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/rwlock3.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/rwlock3_t.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/rwlock4.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/rwlock4_t.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/rwlock5.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/rwlock5_t.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/rwlock6.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/rwlock6_t2.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/rwlock6_t.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/rwlock7.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/rwlock8.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/self1.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/self2.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/semaphore1.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/semaphore2.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/semaphore3.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/semaphore4.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/semaphore4t.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/semaphore5.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/semaphore6.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/spin1.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/spin2.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/spin3.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/spin4.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/stress1.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/test_main.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/tsd1.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/tsd2.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/valid1.c +LIBPTHREAD-EMBEDDED_SRCS-y += $(LIBPTHREAD-EMBEDDED_EXTRACTED)/tests/valid2.c +endif diff --git a/README.md b/README.md index 2ecc239..e06de09 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,11 @@ pthread-embedded for Unikraft =============================+This is the port of pthread-embedded for Unikraft as external library. You will It's not a big deal, and this is fine, but as an aside, you could streamline the malloc/memset into one calloc call if you prefer. -- Dr. Florian Schmidt フローリアン・シュミット Research Scientist, Systems and Machine Learning Group NEC Laboratories Europe Kurfürsten-Anlage 36, D-69115 Heidelberg Tel. +49 (0)6221 4342-265 Fax: +49 (0)6221 4342-155 e-mail: florian.schmidt@xxxxxxxxx ============================================================ Registered at Amtsgericht Mannheim, Germany, HRB728558 _______________________________________________ Minios-devel mailing list Minios-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/minios-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |