From b886c2297f1ba0b4b9688f1eb21705eb2af34efa Mon Sep 17 00:00:00 2001 From: Jonas 'Sortie' Termansen Date: Sat, 31 Aug 2013 15:06:56 +0200 Subject: [PATCH] Add pthread_mutex_init(3) and pthread_mutex_destroy(3). --- libpthread/Makefile | 2 ++ libpthread/include/pthread.h | 5 +++-- libpthread/pthread_mutex_destroy.c++ | 30 +++++++++++++++++++++++++ libpthread/pthread_mutex_init.c++ | 33 ++++++++++++++++++++++++++++ 4 files changed, 68 insertions(+), 2 deletions(-) create mode 100644 libpthread/pthread_mutex_destroy.c++ create mode 100644 libpthread/pthread_mutex_init.c++ diff --git a/libpthread/Makefile b/libpthread/Makefile index 4805d5de..22247d94 100644 --- a/libpthread/Makefile +++ b/libpthread/Makefile @@ -13,6 +13,8 @@ CXXFLAGS:=$(CXXFLAGS) -Wall -Wextra -fno-exceptions -fno-rtti OBJS=\ pthread_equal.o \ pthread_initialize.o \ +pthread_mutex_destroy.o \ +pthread_mutex_init.o \ pthread_mutex_lock.o \ pthread_mutex_trylock.o \ pthread_mutex_unlock.o \ diff --git a/libpthread/include/pthread.h b/libpthread/include/pthread.h index fec3d7ef..d4b1367e 100644 --- a/libpthread/include/pthread.h +++ b/libpthread/include/pthread.h @@ -204,9 +204,10 @@ int pthread_equal(pthread_t, pthread_t); /* TODO: pthread_key_create */ /* TODO: pthread_key_delete */ /* TODO: pthread_mutex_consistent */ -/* TODO: pthread_mutex_destroy */ +int pthread_mutex_destroy(pthread_mutex_t*); /* TODO: pthread_mutex_getprioceiling */ -/* TODO: pthread_mutex_init */ +int pthread_mutex_init(pthread_mutex_t* __restrict, + const pthread_mutexattr_t* __restrict); int pthread_mutex_lock(pthread_mutex_t*); /* TODO: pthread_mutex_setprioceiling */ /* TODO: pthread_mutex_timedlock */ diff --git a/libpthread/pthread_mutex_destroy.c++ b/libpthread/pthread_mutex_destroy.c++ new file mode 100644 index 00000000..6bf032f1 --- /dev/null +++ b/libpthread/pthread_mutex_destroy.c++ @@ -0,0 +1,30 @@ +/******************************************************************************* + + Copyright(C) Jonas 'Sortie' Termansen 2013. + + This file is part of Sortix libpthread. + + Sortix libpthread 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 3 of the License, or (at your + option) any later version. + + Sortix libpthread 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 Sortix libpthread. If not, see . + + pthread_mutex_destroy.c++ + Destroys a mutex. + +*******************************************************************************/ + +#include + +extern "C" int pthread_mutex_destroy(pthread_mutex_t* /*mutex*/) +{ + return 0; +} diff --git a/libpthread/pthread_mutex_init.c++ b/libpthread/pthread_mutex_init.c++ new file mode 100644 index 00000000..a23f459f --- /dev/null +++ b/libpthread/pthread_mutex_init.c++ @@ -0,0 +1,33 @@ +/******************************************************************************* + + Copyright(C) Jonas 'Sortie' Termansen 2013. + + This file is part of Sortix libpthread. + + Sortix libpthread 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 3 of the License, or (at your + option) any later version. + + Sortix libpthread 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 Sortix libpthread. If not, see . + + pthread_mutex_init.c++ + Initializes a mutex. + +*******************************************************************************/ + +#include + +extern "C" +int pthread_mutex_init(pthread_mutex_t* restrict mutex, + const pthread_mutexattr_t* restrict /*attr*/) +{ + *mutex = PTHREAD_MUTEX_INITIALIZER; + return 0; +}