2
* Copyright (c) 1995 John Birrell <jb@cimlogic.com.au>.
5
* Modified and extended by Antony T Curtis <antony.curtis@olcs.net>
8
* Redistribution and use in source and binary forms, with or without
9
* modification, are permitted provided that the following conditions
11
* 1. Redistributions of source code must retain the above copyright
12
* notice, this list of conditions and the following disclaimer.
13
* 2. Redistributions in binary form must reproduce the above copyright
14
* notice, this list of conditions and the following disclaimer in the
15
* documentation and/or other materials provided with the distribution.
16
* 3. All advertising materials mentioning features or use of this software
17
* must display the following acknowledgement:
18
* This product includes software developed by John Birrell.
19
* 4. Neither the name of the author nor the names of any co-contributors
20
* may be used to endorse or promote products derived from this software
21
* without specific prior written permission.
23
* THIS SOFTWARE IS PROVIDED BY JOHN BIRRELL AND CONTRIBUTORS ``AS IS'' AND
24
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
26
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
27
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
29
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
31
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
32
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
41
pthread_mutex_init(pthread_mutex_t * mutex,
42
const pthread_mutexattr_t * mutex_attr)
44
(void) DosCreateMutexSem(NULL,mutex,0,0);
45
return (0); /* Return the completion status: */
50
pthread_mutex_destroy(pthread_mutex_t * mutex)
56
rc = DosCloseMutexSem(*mutex);
57
if (rc == 301) DosReleaseMutexSem(*mutex);
61
return (0); /* Return the completion status: */
66
pthread_mutex_lock(pthread_mutex_t * mutex)
70
rc = DosRequestMutexSem(*mutex,SEM_INDEFINITE_WAIT);
73
return (0); /* Return the completion status: */
78
pthread_mutex_unlock(pthread_mutex_t * mutex)
80
(void) DosReleaseMutexSem(*mutex);
81
return (0); /* Return the completion status: */