From cb39ab1184dff957d84ffac94c24cfcde1e71968 Mon Sep 17 00:00:00 2001 From: Pavel Pisa Date: Mon, 28 Oct 2013 21:46:36 +0100 Subject: [PATCH] Update of local copy of Windows pthreads library to MinGW-w64 winpthreads. Signed-off-by: Pavel Pisa --- README.windows | 28 + orte/contrib/win_pthread/copyright | 836 ++++++++ orte/contrib/win_pthread/libpthread.a | Bin 0 -> 173142 bytes orte/contrib/win_pthread/libpthread.dll.a | Bin 0 -> 87706 bytes orte/contrib/win_pthread/libwinpthread-1.dll | Bin 0 -> 229227 bytes orte/contrib/win_pthread/libwinpthread.a | Bin 0 -> 173142 bytes orte/contrib/win_pthread/libwinpthread.dll.a | Bin 0 -> 87706 bytes orte/contrib/win_pthread/pthread.dll | Bin 66280 -> 0 bytes orte/contrib/win_pthread/pthreadVC.dll | Bin 61521 -> 0 bytes orte/contrib/win_pthread/pthreadVC.lib | Bin 29148 -> 0 bytes orte/include/win32/config.h | 134 -- orte/include/win32/pthread.h | 1917 ++++++------------ orte/include/win32/pthread_compat.h | 86 + orte/include/win32/pthread_time.h | 98 + orte/include/win32/pthread_unistd.h | 212 ++ orte/include/win32/sched.h | 217 +- orte/include/win32/semaphore.h | 191 +- orte/liborte/Makefile.omk | 2 +- 18 files changed, 2012 insertions(+), 1709 deletions(-) create mode 100644 README.windows create mode 100644 orte/contrib/win_pthread/copyright create mode 100644 orte/contrib/win_pthread/libpthread.a create mode 100644 orte/contrib/win_pthread/libpthread.dll.a create mode 100644 orte/contrib/win_pthread/libwinpthread-1.dll create mode 100644 orte/contrib/win_pthread/libwinpthread.a create mode 100644 orte/contrib/win_pthread/libwinpthread.dll.a delete mode 100644 orte/contrib/win_pthread/pthread.dll delete mode 100644 orte/contrib/win_pthread/pthreadVC.dll delete mode 100644 orte/contrib/win_pthread/pthreadVC.lib delete mode 100644 orte/include/win32/config.h create mode 100644 orte/include/win32/pthread_compat.h create mode 100644 orte/include/win32/pthread_time.h create mode 100644 orte/include/win32/pthread_unistd.h diff --git a/README.windows b/README.windows new file mode 100644 index 0000000..fd458ce --- /dev/null +++ b/README.windows @@ -0,0 +1,28 @@ +Instructions how to compile ORTE for Windows: +============================================= + +ORTE for windows can be compiled by MinGW and Microsoft +Visual C. The library providing pthread API is required +in both cases. + + +When ORTE is build by Microsoft Visual C the Pthreads-w32 +should be used + + http://sourceware.org/pthreads-win32/ + +When build by MinGW32 then current version (3.0) versions +of MinGW-w64 integrates winpthreads directly in the standard +development tools distribution + + http://mingw-w64.sourceforge.net/ + +There is inluded local copy of winpthreads library for +the case that older MinGW version is used. + +The cross-compilation of ORTE from GNU/Linux system +--------------------------------------------------- + +The Debian package mingw-w64-i686-dev provides GCC +cross-compiler and libraries. The actual package +used for the build was mingw-w64-i686-dev_3.0.0-2_all.deb. diff --git a/orte/contrib/win_pthread/copyright b/orte/contrib/win_pthread/copyright new file mode 100644 index 0000000..d568c10 --- /dev/null +++ b/orte/contrib/win_pthread/copyright @@ -0,0 +1,836 @@ +Format: http://svn.debian.org/wsvn/dep/web/deps/dep5.mdwn?op=file&rev=174 +Upstream-Name: mingw-w64 +Source: http://mingw-w64.sourceforge.net/ + +Files: * +Copyright: 2009-2013 mingw-w64 project +License: ZPL-2.1 + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + . + 1. Redistributions in source code must retain the accompanying + copyright notice, this list of conditions, and the following + disclaimer. + 2. Redistributions in binary form must reproduce the accompanying + copyright notice, this list of conditions, and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + 3. Names of the copyright holders must not be used to endorse or + promote products derived from this software without prior + written permission from the copyright holders. + 4. The right to distribute this software or to use it for any + purpose does not give you the right to use Servicemarks (sm) or + Trademarks (tm) of the copyright holders. Use of them is + covered by separate agreement with the copyright holders. + 5. If any files are modified, you must cause the modified files to + carry prominent notices stating that you changed the files and + the date of any change. + . + Disclaimer + . + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY + EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR + BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, + WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, + EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Files: mingw-w64-crt/crt/* + mingw-w64-crt/include/* + mingw-w64-crt/intrics/cpuid.c + mingw-w64-crt/intrics/in*.c + mingw-w64-crt/intrics/out*.c + mingw-w64-crt/intrics/rdtsc.c + mingw-w64-crt/intrics/readcr*.c + mingw-w64-crt/intrics/readmsr.c + mingw-w64-crt/intrics/writecr*.c + mingw-w64-crt/intrics/writemsr.c + mingw-w64-crt/lib32/crtdll.def + mingw-w64-crt/lib64/moldname-msvcrt.def + mingw-w64-crt/libsrc/agt*.c + mingw-w64-crt/libsrc/cdo*.c + mingw-w64-crt/libsrc/dxva-uuid.c + mingw-w64-crt/libsrc/emostore_i.c + mingw-w64-crt/libsrc/iisext_i.c + mingw-w64-crt/libsrc/mtsadmin_i.c + mingw-w64-crt/libsrc/mtxadmin_i.c + mingw-w64-crt/libsrc/scard*.c + mingw-w64-crt/libsrc/scrnsave.c + mingw-w64-crt/libsrc/tsuserex_i.c + mingw-w64-crt/math/acosf.c + mingw-w64-crt/math/acosl.c + mingw-w64-crt/math/asin*.c + mingw-w64-crt/math/atan*.c + mingw-w64-crt/math/cbrt*.c + mingw-w64-crt/math/ceil*.S + mingw-w64-crt/math/cephes_emath.* + mingw-w64-crt/math/_chgsignl.S + mingw-w64-crt/math/copysign* + mingw-w64-crt/math/cosf.c + mingw-w64-crt/math/cosh*.c + mingw-w64-crt/math/cosl_internal.S + mingw-w64-crt/math/cossin.c + mingw-w64-crt/math/erfl.c + mingw-w64-crt/math/exp2*.S + mingw-w64-crt/math/expf.c + mingw-w64-crt/math/fabs*.c + mingw-w64-crt/math/fastmath.h + mingw-w64-crt/math/fdim*.c + mingw-w64-crt/math/floor*.S + mingw-w64-crt/math/fm* + mingw-w64-crt/math/fp*.c + mingw-w64-crt/math/i* + mingw-w64-crt/math/ldexp*.c + mingw-w64-crt/math/lgamma*.c + mingw-w64-crt/math/llr* + mingw-w64-crt/math/log10f.c + mingw-w64-crt/math/log*.S + mingw-w64-crt/math/logb*.c + mingw-w64-crt/math/logf.c + mingw-w64-crt/math/lr*.c + mingw-w64-crt/math/m* + mingw-w64-crt/math/n* + mingw-w64-crt/math/powf.c + mingw-w64-crt/math/r* + mingw-w64-crt/math/scalbn*.S + mingw-w64-crt/math/signbit*.c + mingw-w64-crt/math/sinf.c + mingw-w64-crt/math/sinh* + mingw-w64-crt/math/sinl_internal.S + mingw-w64-crt/math/t* + mingw-w64-crt/misc/* + mingw-w64-crt/profile/mcountFunc.S + mingw-w64-crt/stdio/atoll.c + mingw-w64-crt/stdio/_Exit.c + mingw-w64-crt/stdio/fopen64.c + mingw-w64-crt/stdio/fseeko64.c + mingw-w64-crt/stdio/ftello64.c + mingw-w64-crt/stdio/lltoa.c + mingw-w64-crt/stdio/lltow.c + mingw-w64-crt/stdio/lseek64.c + mingw-w64-crt/stdio/mingw_fprintfw.c + mingw-w64-crt/stdio/mingw_pformatw.c + mingw-w64-crt/stdio/mingw_printfw.c + mingw-w64-crt/stdio/mingw_snprintfw.c + mingw-w64-crt/stdio/mingw_sprintfw.c + mingw-w64-crt/stdio/mingw_vfprintfw.c + mingw-w64-crt/stdio/mingw_vprintfw.c + mingw-w64-crt/stdio/mingw_vsnprintfw.c + mingw-w64-crt/stdio/mingw_vsprintfw.c + mingw-w64-crt/stdio/snprintf.c + mingw-w64-crt/stdio/snwprintf.c + mingw-w64-crt/stdio/strtof.c + mingw-w64-crt/stdio/ulltoa.c + mingw-w64-crt/stdio/ulltow.c + mingw-w64-crt/stdio/v*scanf* + mingw-w64-crt/stdio/vs*printf* + mingw-w64-crt/stdio/wtoll.c + mingw-w64-crt/testcases/tstmainc.c + mingw-w64-crt/testcases/tstmaincpp.cpp + mingw-w64-crt/testcases/tstmain_sys_xxx.c + mingw-w64-crt/testcases/tstwassert.c + mingw-w64-crt/testcases/tstwassert_win.c + mingw-w64-crt/testcases/tstwinmain.c + mingw-w64-headers/crt/* + mingw-w64-headers/ddk/include/d3dnthal.h + mingw-w64-headers/ddk/include/ddk/afilter.h + mingw-w64-headers/ddk/include/ddk/atm.h + mingw-w64-headers/ddk/include/ddk/csq.h + mingw-w64-headers/ddk/include/ddk/d4drvif.h + mingw-w64-headers/ddk/include/ddkernel.h + mingw-w64-headers/ddk/include/ddk/hidclass.h + mingw-w64-headers/ddk/include/ddk/ide.h + mingw-w64-headers/ddk/include/ddk/ioaccess.h + mingw-w64-headers/ddk/include/ddk/kbdmou.h + mingw-w64-headers/ddk/include/ddk/ddkmapi.h + mingw-w64-headers/ddk/include/ddk/mcd.h + mingw-w64-headers/ddk/include/ddk/miniport.h + mingw-w64-headers/ddk/include/ddk/minitape.h + mingw-w64-headers/ddk/include/ddk/ndis*.h + mingw-w64-headers/ddk/include/ddk/ntagp.h + mingw-w64-headers/ddk/include/ddk/ntddk.h + mingw-w64-headers/ddk/include/ddk/ntddpcm.h + mingw-w64-headers/ddk/include/ddk/ntddsnd.h + mingw-w64-headers/ddk/include/ddk/ntifs.h + mingw-w64-headers/ddk/include/ddk/ntpoapi.h + mingw-w64-headers/ddk/include/ddk/ntstrsafe.h + mingw-w64-headers/ddk/include/ddk/parallel.h + mingw-w64-headers/ddk/include/ddk/pfhook.h + mingw-w64-headers/ddk/include/ddk/poclass.h + mingw-w64-headers/ddk/include/ddk/portcls.h + mingw-w64-headers/ddk/include/ddk/punknown.h + mingw-w64-headers/ddk/include/ddk/scsi*.h + mingw-w64-headers/ddk/include/ddk/smbus.h + mingw-w64-headers/ddk/include/ddk/srb.h + mingw-w64-headers/ddk/include/ddk/stdunk.h + mingw-w64-headers/ddk/include/ddk/storport.h + mingw-w64-headers/ddk/include/ddk/tdikrnl.h + mingw-w64-headers/ddk/include/ddk/tdistat.h + mingw-w64-headers/ddk/include/ddk/upssvc.h + mingw-w64-headers/ddk/include/ddk/usbscan.h + mingw-w64-headers/ddk/include/ddk/video*.h + mingw-w64-headers/ddk/include/ddk/wdm*.h + mingw-w64-headers/ddk/include/ddk/ws2san.h + mingw-w64-headers/ddk/include/ddk/xfilter.h + mingw-w64-headers/ddk/include/ddrawint.h + mingw-w64-headers/ddk/include/dmemmgr.h + mingw-w64-headers/ddk/include/dvp.h + mingw-w64-headers/direct-x/include/dvdevcod.h + mingw-w64-headers/direct-x/include/edevdefs.h + mingw-w64-headers/direct-x/include/_mingw_dxhelper.h + mingw-w64-headers/include/* + mingw-w64-libraries/winpthreads/src/clock.c + mingw-w64-libraries/winpthreads/src/nanosleep.c +Copyright: public-domain +License: public-domain + This file has no copyright assigned and is placed in the Public + Domain. + +Files: mingw-w64-crt/gdtoa/* + mingw-w64-crt/stdio/mingw_pformat.c +Copyright: 1997-2001 Lucent Technologies +License: + Permission to use, copy, modify, and distribute this software and + its documentation for any purpose and without fee is hereby + granted, provided that the above copyright notice appear in all + copies and that both that the copyright notice and this + permission notice and warranty disclaimer appear in supporting + documentation, and that the name of Lucent or any of its entities + not be used in advertising or publicity pertaining to + distribution of the software without specific, written prior + permission. + . + LUCENT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. + IN NO EVENT SHALL LUCENT OR ANY OF ITS ENTITIES BE LIABLE FOR ANY + SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES + WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER + IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, + ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF + THIS SOFTWARE. + +Files: mingw-w64-crt/gdtoa/qnan.c + mingw-w64-crt/gdtoa/strtodnrp.c +Copyright: 2004, 2005 David M. Gay + 1998, 2000 Lucent Technologies +License: + Permission to use, copy, modify, and distribute this software and its + documentation for any purpose and without fee is hereby granted, + provided that the above copyright notice appear in all copies and + that both that the copyright notice and this permission notice and + warranty disclaimer appear in supporting documentation, and that the + name of the author or any of his current or former employers not be + used in advertising or publicity pertaining to distribution of the + software without specific, written prior permission. + . + THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, + INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN + NO EVENT SHALL THE AUTHOR OR ANY OF HIS CURRENT OR FORMER EMPLOYERS + BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY + DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, + WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS + ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE + OF THIS SOFTWARE. + +Files: mingw-w64-crt/math/s_erf.c + mingw-w64-crt/math/sf_erf.c +Copyright: 1993 Sun Microsystems, Inc. +License: + Permission to use, copy, modify, and distribute this software is + freely granted, provided that this notice is preserved. + +Files: mingw-w64-crt/misc/basename.c + mingw-w64-crt/misc/dirname.c + mingw-w64-crt/stdio/mingw_fprintf.c + mingw-w64-crt/stdio/mingw_pformat.* + mingw-w64-crt/stdio/mingw_printf.c + mingw-w64-crt/stdio/mingw_snprintf.c + mingw-w64-crt/stdio/mingw_sprintf.c + mingw-w64-crt/stdio/mingw_vfprintf.c + mingw-w64-crt/stdio/mingw_vprintf.c + mingw-w64-crt/stdio/mingw_vsnprintf.c + mingw-w64-crt/stdio/mingw_vsprintf.c +Copyright: Keith Marshall +License: + This is free software. You may redistribute and/or modify it as you + see fit, without restriction of copyright. + . + This software is provided "as is", in the hope that it may be useful, + but WITHOUT WARRANTY OF ANY KIND, not even any implied warranty of + MERCHANTABILITY, nor of FITNESS FOR ANY PARTICULAR PURPOSE. At no + time will the author accept any form of liability for any damages, + however caused, resulting from the use of this software. + +Files: mingw-w64-crt/misc/getopt.c +Copyright: 2000 The NetBSD Foundation, Inc. +License: + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + . + THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND + CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF + MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS BE LIABLE FOR ANY + DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE + GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER + IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR + OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN + IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +Files: mingw-w64-crt/misc/getopt.c +Copyright: 2002 Todd C. Miller +License: + Permission to use, copy, modify, and distribute this software for any + purpose with or without fee is hereby granted, provided that the + above copyright notice and this permission notice appear in all + copies. + . + THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL + WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED + WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE + AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL + DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR + PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER + TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR + PERFORMANCE OF THIS SOFTWARE. + +Files: mingw-w64-crt/profile/gcrt0.c + mingw-w64-crt/profile/profil.* +Copyright: 1998-2002 Red Hat, Inc. +License: Cygwin + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License (GPL) as + published by the Free Software Foundation; either version 2 of the + License, or (at your option) any later version. + . + This program 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 + General Public License for more details. + . + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, + USA. + . + *** NOTE *** + . + In accordance with section 10 of the GPL, Red Hat permits programs + whose sources are distributed under a license that complies with the + Open Source definition to be linked with libcygwin.a without + libcygwin.a itself causing the resulting program to be covered by the + GNU GPL. + . + This means that you can port an Open Source(tm) application to + cygwin, and distribute that executable as if it didn't include a copy + of libcygwin.a linked into it. Note that this does not apply to the + cygwin DLL itself. If you distribute a (possibly modified) version + of the DLL you must adhere to the terms of the GPL, i.e. you must + provide sources for the cygwin DLL. + . + See http://www.opensource.org/docs/definition_plain.html for the + precise Open Source Definition referenced above. + . + Red Hat sells a special Cygwin License for customers who are unable + to provide their application in open source code form. For more + information, please see: + http://www.redhat.com/software/tools/cygwin/, or call 866-2REDHAT + ext. 3007 + +Files: mingw-w64-crt/profile/gmon.* + mingw-w64-crt/profile/mcount.c +Copyright: 1983, 1992, 1993 The Regents of the University of California +License: BSD + +Files: mingw-w64-headers/crt/stdarg.h +Copyright: 1989, 1997, 1998, 1999, 2000 Free Software Foundation, Inc. +License: GPL-2+ + +Files: mingw-w64-headers/ddk/include/ddk/csq.h +Copyright: 2004 Vizzini (vizzini@plasmic.com) +License: + THIS SOFTWARE IS NOT COPYRIGHTED + . + This source code is offered for use in the public domain. You may + use, modify or distribute it freely. + . + This code is distributed in the hope that it will be useful but + WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + DISCLAIMED. This includes but is not limited to warranties of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +Files: mingw-w64-headers/ddk/include/ddk/d3dhal.h + mingw-w64-headers/ddk/include/ddk/ddrawi.h + mingw-w64-headers/direct-x/include/d3dhal.h + mingw-w64-headers/direct-x/include/d3dvec.inl + mingw-w64-headers/direct-x/include/ddrawi.h + mingw-w64-headers/direct-x/include/dsdriver.h +Copyright: 2000, 2001 Ove Kaaven +License: LGPL-2.1+ + +Files: mingw-w64-headers/ddk/include/ddk/imm.h +Copyright: 2007 CodeWeavers, Aric Stewart +License: LGPL-2.1+ + +Files: mingw-w64-headers/direct-x/include/amaudio.h +Copyright: 2010 Maarten Lankhorst for CodeWeavers +License: LGPL-2.1+ + +Files: mingw-w64-headers/direct-x/include/amstream.idl + mingw-w64-headers/direct-x/include/austream.idl + mingw-w64-headers/direct-x/include/d3dx9effect.h + mingw-w64-headers/direct-x/include/d3dx9shape.h + mingw-w64-headers/direct-x/include/ddstream.idl + mingw-w64-headers/direct-x/include/dxfile.h + mingw-w64-headers/direct-x/include/evcode.h + mingw-w64-headers/direct-x/include/mmstream.idl +Copyright: 2004, 2010 Christian Costa +License: LGPL-2.1+ + +Files: mingw-w64-headers/direct-x/include/amvideo.idl + mingw-w64-headers/include/ax*.idl +Copyright: 2002, 2003 Robert Shearman +License: LGPL-2.1+ + +Files: mingw-w64-headers/direct-x/include/audevcod.h + mingw-w64-headers/direct-x/include/dmo.h + mingw-w64-headers/direct-x/include/dmoreg.h + mingw-w64-headers/direct-x/include/dmort.h + mingw-w64-headers/direct-x/include/dshow.h + mingw-w64-headers/direct-x/include/mediaerr.h + mingw-w64-headers/direct-x/include/vfwmsgs.h +Copyright: 2002 Alexandre Julliard +License: LGPL-2.1+ + +Files: mingw-w64-headers/direct-x/include/d3d10_1.idl + mingw-w64-headers/include/objectarray.idl + mingw-w64-headers/include/optary.idl + mingw-w64-headers/include/uiautomation* + mingw-w64-headers/include/urlhist.idl + mingw-w64-headers/include/wpcapi.idl +Copyright: 2006, 2010, 2011, 2012 Jacek Caban for CodeWeavers +License: LGPL-2.1+ + +Files: mingw-w64-headers/direct-x/include/d3d10_1shader.h +Copyright: 2010 Rico Schüller +License: LGPL-2.1+ + +Files: mingw-w64-headers/direct-x/include/d3d10effect.h + mingw-w64-headers/direct-x/include/d3d10misc.h + mingw-w64-headers/direct-x/include/d3d10shader.h +Copyright: 2008, 2009 Henri Verbeet for CodeWeavers +License: LGPL-2.1+ + +Files: mingw-w64-headers/direct-x/include/d3d10.idl +Copyright: 2007 Andras Kovacs +License: LGPL-2.1+ + +Files: mingw-w64-headers/direct-x/include/d3d11.idl +Copyright: 2010 Rico Schüller + 2013 Austin English +License: LGPL-2.1+ + +Files: mingw-w64-headers/direct-x/include/d3d11shader.h + mingw-w64-headers/direct-x/include/d3dcommon.idl + mingw-w64-headers/direct-x/include/d3dcompiler.h +Copyright: 2010 Matteo Bruni for CodeWeavers +License: LGPL-2.1+ + +Files: mingw-w64-headers/direct-x/include/d3d8.h + mingw-w64-headers/direct-x/include/d3d8caps.h + mingw-w64-headers/direct-x/include/d3d8types.h +Copyright: 2002-2003 Jason Edmeades +License: LGPL-2.1+ + +Files: mingw-w64-headers/direct-x/include/d3d9caps.h + mingw-w64-headers/direct-x/include/d3d9.h +Copyright: 2002-2003 Jason Edmeades + Raphael Junqueria +License: LGPL-2.1+ + +Files: mingw-w64-headers/direct-x/include/d3d9types.h +Copyright: 2002-2003 Jason Edmeades + 2002-2003 Raphael Junqueria + 2005 Oliver Steiber +License: LGPL-2.1+ + +Files: mingw-w64-headers/direct-x/include/d3d.h + mingw-w64-headers/direct-x/include/ddraw.h + mingw-w64-headers/direct-x/include/dinput.h + mingw-w64-headers/direct-x/include/dplay.h + mingw-w64-headers/direct-x/include/dsound.h +Copyright: the Wine project +License: LGPL-2.1+ + +Files: mingw-w64-headers/direct-x/include/d3drmdef.h +Copyright: 2007, 2010 Vijay Kiran Kamuju + 2007 David Adam + 2010 Christian Costa +License: LGPL-2.1+ + +Files: mingw-w64-headers/direct-x/include/d3drm.h +Copyright: 2005 Peter Berg Larsen + 2010 Christian Costa +License: LGPL-2.1+ + +Files: mingw-w64-headers/direct-x/include/d3drmobj.h +Copyright: 2008 Vijay Kiran Kamuju + 2010 Christian Costa +License: LGPL-2.1+ + +Files: mingw-w64-headers/direct-x/include/d3dtypes.h + mingw-w64-headers/direct-x/include/d3dcaps.h + mingw-w64-headers/direct-x/include/dplobby.h +Copyright: 1999, 2000 Peter Hunnisett +License: LGPL-2.1+ + +Files: mingw-w64-headers/direct-x/include/d3dx8core.h + mingw-w64-headers/direct-x/include/dpaddr.h + mingw-w64-headers/direct-x/include/dplay8.h + mingw-w64-headers/direct-x/include/dplobby8.h + mingw-w64-headers/direct-x/include/dxdiag.h +Copyright: 2002-2005 Raphael Junqueira +License: LGPL-2.1+ + +Files: mingw-w64-headers/direct-x/include/d3dx9.h +Copyright: 2007 David Adam +License: LGPL-2.1+ + +Files: mingw-w64-headers/direct-x/include/d3dx9math.* + mingw-w64-headers/direct-x/include/d3dx9mesh.h +Copyright: 2007 David Adam + 2007 Tony Wasserka +License: LGPL-2.1+ + +Files: mingw-w64-headers/direct-x/include/d3dx9shader.h +Copyright: 2008 Luis Busquets +License: LGPL-2.1+ + +Files: mingw-w64-headers/direct-x/include/d3dxanim.h + mingw-w64-headers/direct-x/include/d3dx9xof.h +Copyright: 2011 Dylan Smith +License: LGPL-2.1+ + +Files: mingw-w64-headers/direct-x/include/d3dxcore.h + mingw-w64-headers/direct-x/include/d3dx9tex.h +Copyright: 2007, 2008 Tony Wasserka +License: LGPL-2.1+ + +Files: mingw-w64-headers/direct-x/include/dls1.h + mingw-w64-headers/direct-x/include/dls2.h + mingw-w64-headers/direct-x/include/dmdls.h + mingw-w64-headers/direct-x/include/dmerror.h + mingw-w64-headers/direct-x/include/dmplugin.h + mingw-w64-headers/direct-x/include/dmusbuff.h + mingw-w64-headers/direct-x/include/dmusicc.h + mingw-w64-headers/direct-x/include/dmusicf.h + mingw-w64-headers/direct-x/include/dmusici.h + mingw-w64-headers/direct-x/include/dmusics.h +Copyright: 2003-2004 Rok Mandeljc +License: LGPL-2.1+ + +Files: mingw-w64-headers/direct-x/include/dmodshow.idl + mingw-w64-headers/direct-x/include/medparam.idl + mingw-w64-headers/direct-x/include/qnetwork.idl +Copyright: 2007 Shane King +License: LGPL-2+ + +Files: mingw-w64-headers/direct-x/include/dplobby.h +Copyright: 1999 Francois Gouget + 1999 Peter Hunnisett +License: LGPL-2.1+ + +Files: mingw-w64-headers/direct-x/include/dpnathlp.h + mingw-w64-headers/direct-x/include/dvdmedia.h + mingw-w64-headers/direct-x/include/vmr9.idl +Copyright: 2006, 2008 Maarten Lankhorst +License: LGPL-2.1+ + +Files: mingw-w64-headers/direct-x/include/dsconf.h + mingw-w64-headers/direct-x/include/dxerr8.h + mingw-w64-headers/direct-x/include/dxerr9.h +Copyright: 2003, 2004 Robert Reif +License: LGPL-2.1+ + +Files: mingw-w64-headers/direct-x/include/dxgiformat.h + mingw-w64-headers/direct-x/include/dxgi.idl +Copyright: 2007 Andras Kovacs +License: LGPL-2.1+ + +Files: mingw-w64-headers/direct-x/include/errors.h +Copyright: 2006 Hans Leideker +License: LGPL-2.1+ + +Files: mingw-w64-headers/direct-x/include/mediaobj.idl +Copyright: 2002 Alexandre Julliard + 2004 Vincent Béron +License: LGPL-2.1+ + +Files: mingw-w64-headers/direct-x/include/qedit.idl +Copyright: 2008 Google (Lei Zhang) +License: LGPL-2.1+ + +Files: mingw-w64-headers/direct-x/include/xinput.h +Copyright: 2008 Andrew Fenn +License: LGPL-2.1+ + +Files: mingw-w64-headers/include/GL/* +Copyright: 2013 The Khronos Group Inc. +License: expat + +Files: mingw-w64-headers/include/audioclient.idl + mingw-w64-headers/include/audiopolicy.idl + mingw-w64-headers/include/devicetopology.idl + mingw-w64-headers/include/endpointvolume.idl + mingw-w64-headers/include/mmdeviceapi.idl + mingw-w64-headers/include/propkeydef.h + mingw-w64-headers/include/propsys.idl + mingw-w64-headers/include/structuredquerycondition.idl +Copyright: 2009 Maarten Lankhorst +License: LGPL-2.1+ + +Files: mingw-w64-headers/include/corerror.h + mingw-w64-headers/include/fusion.idl +Copyright: 2008 James Hawkins +License: LGPL-2.1+ + +Files: mingw-w64-headers/include/ctfutb.idl +Copyright: 2010 Justin Chevrier +License: LGPL-2.1+ + +Files: mingw-w64-headers/include/downloadmgr.idl +Copyright: 2005 Jacek Caban +License: LGPL-2.1+ + +Files: mingw-w64-headers/include/knownfolders.h +Copyright: 2010 Hans Leidekker for CodeWeavers +License: LGPL-2.1+ + +Files: mingw-w64-headers/include/mscat.h + mingw-w64-headers/include/rpcsal.h + mingw-w64-headers/include/winhttp.h + mingw-w64-headers/include/winineti.h +Copyright: 2004, 2007, 2011 Francois Gouget +License: LGPL-2.1+ + +Files: mingw-w64-headers/include/mscoree.idl +Copyright: 2007 Francois Gouget + 2008 Alistair Leslie-Hughes +License: LGPL-2.1+ + +Files: mingw-w64-headers/include/profile.h +Copyright: 1992, 1993 The Regents of the University of California +License: BSD + +Files: mingw-w64-headers/include/propkey.h +Copyright: 2010 Maarten Lankhorst for CodeWeavers +License: LGPL-2.1+ + +Files: mingw-w64-headers/include/propvarutil.h +Copyright: 2008 James Hawkins for CodeWeavers +License: LGPL-2.1+ + +Files: mingw-w64-headers/include/t2embapi.h +Copyright: 2009 Andrew Nguyen +License: LGPL-2.1+ + +Files: mingw-w64-headers/include/textstor.idl +Copyright: 2009 Aric Stewart, CodeWeavers +License: LGPL-2.1+ + +Files: mingw-w64-headers/include/wincodec.idl +Copyright: 2009 Vincent Povirk for CodeWeavers +License: LGPL-2.1+ + +Files: mingw-w64-headers/include/winddiui.h +Copyright: 2007 Marcel Partap +License: LGPL-2.1+ + +Files: mingw-w64-headers/include/xmllite.idl +Copyright: 2010 Nikolay Sivov +License: LGPL-2.1+ + +Files: mingw-w64-libraries/libmangle/* +Copyright: 2009, 2010 mingw-w64 project +License: expat + +Files: mingw-w64-libraries/pseh/* +Copyright: 2004/2005, 2008, 2009, 2010 KJK::Hyperion +License: expat + +Files: mingw-w64-libraries/winpthreads/* +Copyright: 2011-2013 mingw-w64 project +License: expat + +Files: mingw-w64-libraries/winpthreads/* +Copyright: 2010 Lockless Inc. +License: BSD + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + . + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + * Neither the name of Lockless Inc. nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + . + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + "AS IS" AN ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY + WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +Files: mingw-w64-libraries/winpthreads/src/libgcc/dll_math.c +Copyright: 1992, 1993 The Regents of the University of California +License: BSD + +Files: mingw-w64-libraries/winpthreads/tests_pthread/* +Copyright: 1998 John E. Bossom + 1999, 2005 Pthreads-win32 contributors +License: LGPL-2+ + +Files: mingw-w64-libraries/winstorecompat/* +Copyright: 2013 mingw-w64 project +License: expat + +Files: mingw-w64-tools/gendef/* +Copyright: 2009-2013 mingw-w64 project +License: GPL-3+ + +Files: mingw-w64-tools/genidl/* +Copyright: 2009-2013 mingw-w64 project +License: GPL-3+ + +Files: mingw-w64-tools/genpeimg/* +Copyright: 2009-2013 mingw-w64 project +License: GPL-3+ + +Files: mingw-w64-tools/widl/* +Copyright: 1996, 2000, 2002, 2010 Alexandre Julliard + 1998-2000 Bertho A. Stultiens + 1999 Corel Corporation + 1999 Patrick Stridvall + 1999 Rein Klazes + 2001-2003 Jon Griffiths + 2002, 2004 Ove Kaaven + 2004 Alastair Bridgewater + 2004 Mike McCormack + 2004, 2005 Huw Davies + 2005-2006 Eric Kohl + 2005-2008 Robert Shearman + 2006 Jacek Caban for CodeWeavers + The Wine project +License: LGPL-2.1+ + +Files: mingw-w64-tools/widl/src/port/getopt*.c +Copyright: 1987-2002 Free Software Foundation, Inc. +License: LGPL-2.1+ + +Files: mingw-w64-tools/widl/src/port/port.c +Copyright: 1991, 1992, 1996, 1998 Free Software Foundation, Inc. +License: LGPL-2+ + +Files: debian/* +Copyright: 2009, 2010 Robert Millan + 2010-2013 Stephen Kitt +License: GPL-2+ + +Files: debian/*widl.1 +Copyright: 1993-2013 The Wine project authors +License: LGPL-2.1+ + + +License: BSD + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + 4. Neither the name of the University nor the names of its + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + . + THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, + THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR + CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +License: LGPL-2+ + On Debian systems the full text of the GNU Library General Public + License Version 2 can be found in the + `/usr/share/common-licenses/LGPL-2' file. + +License: LGPL-2.1+ + On Debian systems the full text of the GNU Lesser General Public + License Version 2.1 can be found in the + `/usr/share/common-licenses/LGPL-2.1' file. + +License: GPL-2+ + On Debian systems the full text of the GNU General Public + License Version 2 can be found in the + `/usr/share/common-licenses/GPL-2' file. + +License: GPL-3+ + On Debian systems the full text of the GNU General Public + License Version 3 can be found in the + `/usr/share/common-licenses/GPL-3' file. + +License: expat + Permission is hereby granted, free of charge, to any person obtaining + a copy of this software and associated documentation files (the + "Software"), to deal in the Software without restriction, including + without limitation the rights to use, copy, modify, merge, publish, + distribute, sublicense, and/or sell copies of the Software, and to + permit persons to whom the Software is furnished to do so, subject to + the following conditions: + . + The above copyright notice and this permission notice shall be + included in all copies or substantial portions of the Software. + . + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND + NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS + BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN + ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN + CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. diff --git a/orte/contrib/win_pthread/libpthread.a b/orte/contrib/win_pthread/libpthread.a new file mode 100644 index 0000000000000000000000000000000000000000..df6207c2d9e67b76b0dc04d62b8ab04d45cd216f GIT binary patch literal 173142 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 AWB>pF literal 0 HcmV?d00001 diff --git a/orte/contrib/win_pthread/libwinpthread-1.dll b/orte/contrib/win_pthread/libwinpthread-1.dll new file mode 100644 index 0000000000000000000000000000000000000000..549457d1bca6c2b4207b2923262f96e4abd844e1 GIT binary patch literal 229227 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 literal 0 HcmV?d00001 diff --git a/orte/contrib/win_pthread/libwinpthread.a b/orte/contrib/win_pthread/libwinpthread.a new file mode 100644 index 0000000000000000000000000000000000000000..df6207c2d9e67b76b0dc04d62b8ab04d45cd216f GIT binary patch literal 173142 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 AWB>pF literal 0 HcmV?d00001 diff --git a/orte/contrib/win_pthread/pthread.dll b/orte/contrib/win_pthread/pthread.dll deleted file mode 100644 index 01ce7ab3a4f9ae162283dfd4ccacdd1c170ecff9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 66280 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

H^EUFZb;GS_ zfHK)z5=`qqAb_S2@>C_=ecHbvnyldkS|cJ2-u*fmt(-wU^;#-PuSnVw1B17&)@bp> z2OdH@%VlL~Nl=Y9DV%^ai{00I7s}~JMOwj%G8<3oAy)N0LHOJlY6JI$i=UZ4VdtCJ zdf5mR!k#Z5eu_DgR^Q8X@CYxH*icQ_ z--Bzwf*zL2skh`n)il!Lhy_0tbw8E)w>NoJIbUb(_jU#(!Ib2=IqpvQI5KWK{`f6^*}l)a!toNqdSDHIO8C!>rlp2>;fXU$kp!vfYx zB1T!wIXddQnjT=?nv#o0c0ui>Xq=`{@|C9ks;vPECDAS}wkjED3mI?yc%c~7KagR- zQwGM)y*TlK$CWUqpGTYAb6l$U@NOuvz2Eh39bhCXz+OZcJfAMsuXAFU{$Q#!-qCvc z6=c^%}z;E3x{3JL9Q?&KSXID#^!IBsLMektNtpbnnC{g%R(3dCr8x3u=XRHpR z6FY~oqW&m*^U@M^8TgM>{=>?+dDqwo_X ztsZ4`pi|%fK@ZUW6H%mT=)@~F&HgP$`~BDC|H_uH&qr98#DY$G3W@eZ&_S4w6g#W( zaz7kDEN~2uNQ&yW^h9iB(-raq z$~cW)2Ls7aX}HH7eU#Vn3;&3x)7bKCE?b_RNz1b}^;4qcd0F&Lqv`1sJ~J0^yB$nvfs)JmXPkgfd=vIUd0B@)l}R`iUc zJOgF7i*1efgZ9Xe2K(^#83Y?! z5P4A4@$u*IwXK2Ib;C2(i&%WhPCCzIVZ&6gz>Yb|Y0wHIoZYe`Bxc1B^~3HOl`G#E z z%txE0$6si4*D#`i*@M6@B8=81LLczsbv=BW4=$j)s4ML^7BhetJhKgJ$M2?QJz?gO7O;ht!wZ8f&?tNR~gzN^Ql@PFcfhw^t|Z>J+p zvqj_Q@LGkfvGQbi3F^sub{df;UJHeQliqaUTMmH5sdN76Y%6M0myq$oj~@J${Ie5j zvk)%sHZTs(cB)I`>OUPQ&uN>@!hZ2UxCG}NP}#W7#~Idwo80Mc*o^uaLkHMe8G*<{1(|XyB2c~wy#d- zB_XM8eD2H1X*x_WM`JZqkFaQfIy+uL_>Z8B_ORGO%n&$5EI2Mi32p#|%p&+C7^4o` zkLM8sdJ^a-iD_3}#O7J8vRms02TD|yoCO5f&4@umy~-vyd^#v#eS(&apU7a7Hd`*b z4hz{~+1oI11zs}Z7xugsUJpqQ>^k)}jPt%Z>L`@=-xi~727YyGG+BDDZw!>K%|mT^ z;=hHxpg<>i$;EtpfLHzDYwReId?wJYE{ukBpQWQUd`$ft_6nH65gNSmVM=}5SQ_De z&*9ettF{rdCW74!XUECupoNq;ygvdE-qBEOF^UC#E&K(E5T}Rv`-6p<%gNeSP=� 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 diff --git a/orte/contrib/win_pthread/pthreadVC.dll b/orte/contrib/win_pthread/pthreadVC.dll deleted file mode 100644 index 6c8b61f0aecd737a719875719b9d2007de4ca2c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 61521 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 diff --git a/orte/contrib/win_pthread/pthreadVC.lib b/orte/contrib/win_pthread/pthreadVC.lib deleted file mode 100644 index f7811174a678f45c98a02ba471b250ec7e978678..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29148 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 header file. */ -#undef HAVE_SIGNAL_H - -/* Define if you have the Borland TASM32 or compatible assembler. */ -#undef HAVE_TASM32 - -/* Define if you don't have Win32 DuplicateHandle. (eg. WinCE) */ -#undef NEED_DUPLICATEHANDLE - -/* Define if you don't have Win32 _beginthreadex. (eg. WinCE) */ -#undef NEED_CREATETHREAD - -/* Define if you don't have Win32 errno. (eg. WinCE) */ -#undef NEED_ERRNO - -/* Define if you don't have Win32 calloc. (eg. WinCE) */ -#undef NEED_CALLOC - -/* Define if you don't have Win32 ftime. (eg. WinCE) */ -#undef NEED_FTIME - -/* Define if you don't have Win32 semaphores. (eg. WinCE 2.1 or earlier) */ -#undef NEED_SEM - -/* Define if you need to convert string parameters to unicode. (eg. WinCE) */ -#undef NEED_UNICODE_CONSTS - -/* Define if your C (not C++) compiler supports "inline" functions. */ -#undef HAVE_C_INLINE - -/* Do we know about type mode_t? */ -#undef HAVE_MODE_T - -/* Define if you have the timespec struct */ -#undef HAVE_STRUCT_TIMESPEC - -/* Define if you don't have the GetProcessAffinityMask() */ -#undef NEED_PROCESS_AFFINITY_MASK - -/* -# ---------------------------------------------------------------------- -# The library can be built with some alternative behaviour to better -# facilitate development of applications on Win32 that will be ported -# to other POSIX systems. -# -# Nothing described here will make the library non-compliant and strictly -# compliant applications will not be affected in any way, but -# applications that make assumptions that POSIX does not guarantee are -# not strictly compliant and may fail or misbehave with some settings. -# -# PTW32_THREAD_ID_REUSE_INCREMENT -# Purpose: -# POSIX says that applications should assume that thread IDs can be -# recycled. However, Solaris (and some other systems) use a [very large] -# sequence number as the thread ID, which provides virtual uniqueness. -# This provides a very high but finite level of safety for applications -# that are not meticulous in tracking thread lifecycles e.g. applications -# that call functions which target detached threads without some form of -# thread exit synchronisation. -# -# Usage: -# Set to any value in the range: 0 <= value < 2^wordsize. -# Set to 0 to emulate reusable thread ID behaviour like Linux or *BSD. -# Set to 1 for unique thread IDs like Solaris (this is the default). -# Set to some factor of 2^wordsize to emulate smaller word size types -# (i.e. will wrap sooner). This might be useful to emulate some embedded -# systems. -# -# define PTW32_THREAD_ID_REUSE_INCREMENT 0 -# -# ---------------------------------------------------------------------- - */ -#undef PTW32_THREAD_ID_REUSE_INCREMENT - - -/********************************************************************* - * Target specific groups - * - * If you find that these are incorrect or incomplete please report it - * to the pthreads-win32 maintainer. Thanks. - *********************************************************************/ -#ifdef WINCE -#define NEED_DUPLICATEHANDLE -#define NEED_CREATETHREAD -#define NEED_ERRNO -#define NEED_CALLOC -#define NEED_FTIME -//#define NEED_SEM -#define NEED_UNICODE_CONSTS -#define NEED_PROCESS_AFFINITY_MASK -#endif - -#ifdef _UWIN -#define HAVE_MODE_T -#define HAVE_STRUCT_TIMESPEC -#endif - -#ifdef __GNUC__ -#define HAVE_C_INLINE -#endif - -#ifdef __MINGW32__ -#define HAVE_MODE_T -#endif - -#ifdef __BORLANDC__ -#endif - -#ifdef __WATCOMC__ -#endif - -#ifdef __DMC__ -#define HAVE_SIGNAL_H -#define HAVE_C_INLINE -#endif - - - -#endif diff --git a/orte/include/win32/pthread.h b/orte/include/win32/pthread.h index 1525b63..5202291 100644 --- a/orte/include/win32/pthread.h +++ b/orte/include/win32/pthread.h @@ -1,1368 +1,729 @@ -/* This is an implementation of the threads API of POSIX 1003.1-2001. - * - * -------------------------------------------------------------------------- - * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright(C) 1998 John E. Bossom - * Copyright(C) 1999,2005 Pthreads-win32 contributors - * - * Contact Email: rpj@callisto.canberra.edu.au - * - * The current list of contributors is contained - * in the file CONTRIBUTORS included with the source - * code distribution. The list can also be seen at the - * following World Wide Web location: - * http://sources.redhat.com/pthreads-win32/contributors.html - * - * 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 - */ - -#if !defined( PTHREAD_H ) -#define PTHREAD_H - -/* - * See the README file for an explanation of the pthreads-win32 version - * numbering scheme and how the DLL is named etc. - */ -#define PTW32_VERSION 2,7,0,0 -#define PTW32_VERSION_STRING "2, 7, 0, 0\0" - -/* There are three implementations of cancel cleanup. - * Note that pthread.h is included in both application - * compilation units and also internally for the library. - * The code here and within the library aims to work - * for all reasonable combinations of environments. - * - * The three implementations are: - * - * WIN32 SEH - * C - * C++ - * - * Please note that exiting a push/pop block via - * "return", "exit", "break", or "continue" will - * lead to different behaviour amongst applications - * depending upon whether the library was built - * using SEH, C++, or C. For example, a library built - * with SEH will call the cleanup routine, while both - * C++ and C built versions will not. - */ - -/* - * Define defaults for cleanup code. - * Note: Unless the build explicitly defines one of the following, then - * we default to standard C style cleanup. This style uses setjmp/longjmp - * in the cancelation and thread exit implementations and therefore won't - * do stack unwinding if linked to applications that have it (e.g. - * C++ apps). This is currently consistent with most/all commercial Unix - * POSIX threads implementations. - */ -#if !defined( __CLEANUP_SEH ) && !defined( __CLEANUP_CXX ) && !defined( __CLEANUP_C ) -# define __CLEANUP_C -#endif - -#if defined( __CLEANUP_SEH ) && ( !defined( _MSC_VER ) && !defined(PTW32_RC_MSC)) -#error ERROR [__FILE__, line __LINE__]: SEH is not supported for this compiler. -#endif - /* - * Stop here if we are being included by the resource compiler. - */ -#ifndef RC_INVOKED + Copyright (c) 2011-2013 mingw-w64 project -#undef PTW32_LEVEL + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: -#if defined(_POSIX_SOURCE) -#define PTW32_LEVEL 0 -/* Early POSIX */ -#endif + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. -#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 199309 -#undef PTW32_LEVEL -#define PTW32_LEVEL 1 -/* Include 1b, 1c and 1d */ -#endif - -#if defined(INCLUDE_NP) -#undef PTW32_LEVEL -#define PTW32_LEVEL 2 -/* Include Non-Portable extensions */ -#endif - -#define PTW32_LEVEL_MAX 3 - -#if !defined(PTW32_LEVEL) -#define PTW32_LEVEL PTW32_LEVEL_MAX -/* Include everything */ -#endif - -#ifdef _UWIN -# define HAVE_STRUCT_TIMESPEC 1 -# define HAVE_SIGNAL_H 1 -# undef HAVE_CONFIG_H -# pragma comment(lib, "pthread") -#endif + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. +*/ /* - * ------------------------------------------------------------- - * - * - * Module: pthread.h - * - * Purpose: - * Provides an implementation of PThreads based upon the - * standard: - * - * POSIX 1003.1-2001 - * and - * The Single Unix Specification version 3 - * - * (these two are equivalent) + * Parts of this library are derived by: * - * in order to enhance code portability between Windows, - * various commercial Unix implementations, and Linux. + * Posix Threads library for Microsoft Windows * - * See the ANNOUNCE file for a full list of conforming - * routines and defined constants, and a list of missing - * routines and constants not defined in this implementation. + * Use at own risk, there is no implied warranty to this code. + * It uses undocumented features of Microsoft Windows that can change + * at any time in the future. * - * Authors: - * There have been many contributors to this library. - * The initial implementation was contributed by - * John Bossom, and several others have provided major - * sections or revisions of parts of the implementation. - * Often significant effort has been contributed to - * find and fix important bugs and other problems to - * improve the reliability of the library, which sometimes - * is not reflected in the amount of code which changed as - * result. - * As much as possible, the contributors are acknowledged - * in the ChangeLog file in the source code distribution - * where their changes are noted in detail. + * (C) 2010 Lockless Inc. + * All rights reserved. * - * Contributors are listed in the CONTRIBUTORS file. + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: * - * As usual, all bouquets go to the contributors, and all - * brickbats go to the project maintainer. * - * Maintainer: - * The code base for this project is coordinated and - * eventually pre-tested, packaged, and made available by + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * * Neither the name of Lockless Inc. nor the names of its contributors may be + * used to endorse or promote products derived from this software without + * specific prior written permission. * - * Ross Johnson - * - * QA Testers: - * Ultimately, the library is tested in the real world by - * a host of competent and demanding scientists and - * engineers who report bugs and/or provide solutions - * which are then fixed or incorporated into subsequent - * versions of the library. Each time a bug is fixed, a - * test case is written to prove the fix and ensure - * that later changes to the code don't reintroduce the - * same error. The number of test cases is slowly growing - * and therefore so is the code reliability. - * - * Compliance: - * See the file ANNOUNCE for the list of implemented - * and not-implemented routines and defined options. - * Of course, these are all defined is this file as well. - * - * Web site: - * The source code and other information about this library - * are available from - * - * http://sources.redhat.com/pthreads-win32/ - * - * ------------------------------------------------------------- + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AN + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. */ +#ifndef WIN_PTHREADS_H +#define WIN_PTHREADS_H -/* Try to avoid including windows.h */ -#if defined(__MINGW32__) && defined(__cplusplus) -#define PTW32_INCLUDE_WINDOWS_H -#endif - -#ifdef PTW32_INCLUDE_WINDOWS_H -#include -#endif - -#if defined(_MSC_VER) && _MSC_VER < 1300 || defined(__DMC__) -/* - * VC++6.0 or early compiler's header has no DWORD_PTR type. - */ -typedef unsigned long DWORD_PTR; -#endif -/* - * ----------------- - * autoconf switches - * ----------------- - */ - -#if HAVE_CONFIG_H -#include "config.h" -#endif /* HAVE_CONFIG_H */ - -#ifndef NEED_FTIME -#include -#else /* NEED_FTIME */ -/* use native WIN32 time API */ -#endif /* NEED_FTIME */ - -#if HAVE_SIGNAL_H -#include -#endif /* HAVE_SIGNAL_H */ +#include +#include +#include -#include +#include #include +#include -/* - * Boolean values to make us independent of system includes. - */ -enum { - PTW32_FALSE = 0, - PTW32_TRUE = (! PTW32_FALSE) -}; +#include -/* - * This is a duplicate of what is in the autoconf config.h, - * which is only used when building the pthread-win32 libraries. - */ +#include "pthread_compat.h" -#ifndef PTW32_CONFIG_H -# if defined(WINCE) -# define NEED_ERRNO -# define NEED_SEM -# endif -# if defined(_UWIN) || defined(__MINGW32__) -# define HAVE_MODE_T -# endif +#ifdef __cplusplus +extern "C" { #endif -/* - * - */ - -#if PTW32_LEVEL >= PTW32_LEVEL_MAX -#ifdef NEED_ERRNO -#include "need_errno.h" -#else -#include -#endif -#endif /* PTW32_LEVEL >= PTW32_LEVEL_MAX */ +#define __WINPTHREADS_VERSION_MAJOR 0 +#define __WINPTHREADS_VERSION_MINOR 5 +#define __WINPTHREADS_VERSION_PATCHLEVEL 0 -/* - * Several systems don't define some error numbers. - */ -#ifndef ENOTSUP -# define ENOTSUP 48 /* This is the value in Solaris. */ -#endif +/* MSB 8-bit major version, 8-bit minor version, 16-bit patch level. */ +#define __WINPTHREADS_VERSION 0x00050000 -#ifndef ETIMEDOUT -# define ETIMEDOUT 10060 /* This is the value in winsock.h. */ +#if defined DLL_EXPORT +#ifdef IN_WINPTHREAD +#define WINPTHREAD_API __declspec(dllexport) +#else +#define WINPTHREAD_API __declspec(dllimport) #endif - -#ifndef ENOSYS -# define ENOSYS 140 /* Semi-arbitrary value */ +#else +#define WINPTHREAD_API #endif -#ifndef EDEADLK -# ifdef EDEADLOCK -# define EDEADLK EDEADLOCK -# else -# define EDEADLK 36 /* This is the value in MSVC. */ -# endif -#endif +/* #define WINPTHREAD_DBG 1 */ -#include "sched.h" +/* Compatibility stuff: */ +#define RWLS_PER_THREAD 8 -/* - * To avoid including windows.h we define only those things that we - * actually need from it. - */ -#ifndef PTW32_INCLUDE_WINDOWS_H -#ifndef HANDLE -# define PTW32__HANDLE_DEF -# define HANDLE void * +/* Error-codes. */ +#ifndef ETIMEDOUT +#define ETIMEDOUT 138 #endif -#ifndef DWORD -# define PTW32__DWORD_DEF -# define DWORD unsigned long +#ifndef ENOTSUP +#define ENOTSUP 129 #endif +#ifndef EWOULDBLOCK +#define EWOULDBLOCK 140 #endif -#ifndef HAVE_STRUCT_TIMESPEC -#define HAVE_STRUCT_TIMESPEC 1 -struct timespec { - long tv_sec; - long tv_nsec; -}; -#endif /* HAVE_STRUCT_TIMESPEC */ +/* pthread specific defines. */ -#ifndef SIG_BLOCK -#define SIG_BLOCK 0 -#endif /* SIG_BLOCK */ +#define PTHREAD_CANCEL_DISABLE 0 +#define PTHREAD_CANCEL_ENABLE 0x01 -#ifndef SIG_UNBLOCK -#define SIG_UNBLOCK 1 -#endif /* SIG_UNBLOCK */ +#define PTHREAD_CANCEL_DEFERRED 0 +#define PTHREAD_CANCEL_ASYNCHRONOUS 0x02 -#ifndef SIG_SETMASK -#define SIG_SETMASK 2 -#endif /* SIG_SETMASK */ +#define PTHREAD_CREATE_JOINABLE 0 +#define PTHREAD_CREATE_DETACHED 0x04 -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ +#define PTHREAD_EXPLICIT_SCHED 0 +#define PTHREAD_INHERIT_SCHED 0x08 -/* - * ------------------------------------------------------------- - * - * POSIX 1003.1-2001 Options - * ========================= - * - * Options are normally set in , which is not provided - * with pthreads-win32. - * - * For conformance with the Single Unix Specification (version 3), all of the - * options below are defined, and have a value of either -1 (not supported) - * or 200112L (supported). - * - * These options can neither be left undefined nor have a value of 0, because - * either indicates that sysconf(), which is not implemented, may be used at - * runtime to check the status of the option. - * - * _POSIX_THREADS (== 200112L) - * If == 200112L, you can use threads - * - * _POSIX_THREAD_ATTR_STACKSIZE (== 200112L) - * If == 200112L, you can control the size of a thread's - * stack - * pthread_attr_getstacksize - * pthread_attr_setstacksize - * - * _POSIX_THREAD_ATTR_STACKADDR (== -1) - * If == 200112L, you can allocate and control a thread's - * stack. If not supported, the following functions - * will return ENOSYS, indicating they are not - * supported: - * pthread_attr_getstackaddr - * pthread_attr_setstackaddr - * - * _POSIX_THREAD_PRIORITY_SCHEDULING (== -1) - * If == 200112L, you can use realtime scheduling. - * This option indicates that the behaviour of some - * implemented functions conforms to the additional TPS - * requirements in the standard. E.g. rwlocks favour - * writers over readers when threads have equal priority. - * - * _POSIX_THREAD_PRIO_INHERIT (== -1) - * If == 200112L, you can create priority inheritance - * mutexes. - * pthread_mutexattr_getprotocol + - * pthread_mutexattr_setprotocol + - * - * _POSIX_THREAD_PRIO_PROTECT (== -1) - * If == 200112L, you can create priority ceiling mutexes - * Indicates the availability of: - * pthread_mutex_getprioceiling - * pthread_mutex_setprioceiling - * pthread_mutexattr_getprioceiling - * pthread_mutexattr_getprotocol + - * pthread_mutexattr_setprioceiling - * pthread_mutexattr_setprotocol + - * - * _POSIX_THREAD_PROCESS_SHARED (== -1) - * If set, you can create mutexes and condition - * variables that can be shared with another - * process.If set, indicates the availability - * of: - * pthread_mutexattr_getpshared - * pthread_mutexattr_setpshared - * pthread_condattr_getpshared - * pthread_condattr_setpshared - * - * _POSIX_THREAD_SAFE_FUNCTIONS (== 200112L) - * If == 200112L you can use the special *_r library - * functions that provide thread-safe behaviour - * - * _POSIX_READER_WRITER_LOCKS (== 200112L) - * If == 200112L, you can use read/write locks - * - * _POSIX_SPIN_LOCKS (== 200112L) - * If == 200112L, you can use spin locks - * - * _POSIX_BARRIERS (== 200112L) - * If == 200112L, you can use barriers - * - * + These functions provide both 'inherit' and/or - * 'protect' protocol, based upon these macro - * settings. - * - * ------------------------------------------------------------- - */ +#define PTHREAD_SCOPE_PROCESS 0 +#define PTHREAD_SCOPE_SYSTEM 0x10 -/* - * POSIX Options - */ -#undef _POSIX_THREADS -#define _POSIX_THREADS 200112L +#define PTHREAD_DEFAULT_ATTR (PTHREAD_CANCEL_ENABLE) -#undef _POSIX_READER_WRITER_LOCKS -#define _POSIX_READER_WRITER_LOCKS 200112L +#define PTHREAD_CANCELED ((void *) (intptr_t) 0xDEADBEEF) -#undef _POSIX_SPIN_LOCKS -#define _POSIX_SPIN_LOCKS 200112L +#define _PTHREAD_NULL_THREAD ((pthread_t) 0) -#undef _POSIX_BARRIERS -#define _POSIX_BARRIERS 200112L +#define PTHREAD_ONCE_INIT 0 -#undef _POSIX_THREAD_SAFE_FUNCTIONS -#define _POSIX_THREAD_SAFE_FUNCTIONS 200112L +#define PTHREAD_DESTRUCTOR_ITERATIONS 256 +#define PTHREAD_KEYS_MAX (1<<20) -#undef _POSIX_THREAD_ATTR_STACKSIZE -#define _POSIX_THREAD_ATTR_STACKSIZE 200112L +#define PTHREAD_MUTEX_NORMAL 0 +#define PTHREAD_MUTEX_ERRORCHECK 1 +#define PTHREAD_MUTEX_RECURSIVE 2 +#define PTHREAD_MUTEX_DEFAULT PTHREAD_MUTEX_NORMAL -/* - * The following options are not supported - */ -#undef _POSIX_THREAD_ATTR_STACKADDR -#define _POSIX_THREAD_ATTR_STACKADDR -1 - -#undef _POSIX_THREAD_PRIO_INHERIT -#define _POSIX_THREAD_PRIO_INHERIT -1 +#define PTHREAD_MUTEX_SHARED 1 +#define PTHREAD_MUTEX_PRIVATE 0 -#undef _POSIX_THREAD_PRIO_PROTECT -#define _POSIX_THREAD_PRIO_PROTECT -1 +#define PTHREAD_PRIO_NONE 0 +#define PTHREAD_PRIO_INHERIT 8 +#define PTHREAD_PRIO_PROTECT 16 +#define PTHREAD_PRIO_MULT 32 +#define PTHREAD_PROCESS_SHARED 1 +#define PTHREAD_PROCESS_PRIVATE 0 -/* TPS is not fully supported. */ -#undef _POSIX_THREAD_PRIORITY_SCHEDULING -#define _POSIX_THREAD_PRIORITY_SCHEDULING -1 +#define PTHREAD_MUTEX_FAST_NP PTHREAD_MUTEX_NORMAL +#define PTHREAD_MUTEX_TIMED_NP PTHREAD_MUTEX_FAST_NP +#define PTHREAD_MUTEX_ADAPTIVE_NP PTHREAD_MUTEX_FAST_NP +#define PTHREAD_MUTEX_ERRORCHECK_NP PTHREAD_MUTEX_ERRORCHECK +#define PTHREAD_MUTEX_RECURSIVE_NP PTHREAD_MUTEX_RECURSIVE -#undef _POSIX_THREAD_PROCESS_SHARED -#define _POSIX_THREAD_PROCESS_SHARED -1 - - -/* - * POSIX 1003.1-2001 Limits - * =========================== - * - * These limits are normally set in , which is not provided with - * pthreads-win32. - * - * PTHREAD_DESTRUCTOR_ITERATIONS - * Maximum number of attempts to destroy - * a thread's thread-specific data on - * termination (must be at least 4) - * - * PTHREAD_KEYS_MAX - * Maximum number of thread-specific data keys - * available per process (must be at least 128) - * - * PTHREAD_STACK_MIN - * Minimum supported stack size for a thread - * - * PTHREAD_THREADS_MAX - * Maximum number of threads supported per - * process (must be at least 64). - * - * SEM_NSEMS_MAX - * The maximum number of semaphores a process can have. - * (must be at least 256) - * - * SEM_VALUE_MAX - * The maximum value a semaphore can have. - * (must be at least 32767) - * - */ -#undef _POSIX_THREAD_DESTRUCTOR_ITERATIONS -#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4 +void * WINPTHREAD_API pthread_timechange_handler_np(void * dummy); +int WINPTHREAD_API pthread_delay_np (const struct timespec *interval); +int WINPTHREAD_API pthread_num_processors_np(void); +int WINPTHREAD_API pthread_set_num_processors_np(int n); -#undef PTHREAD_DESTRUCTOR_ITERATIONS -#define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS +#define PTHREAD_BARRIER_SERIAL_THREAD 1 -#undef _POSIX_THREAD_KEYS_MAX -#define _POSIX_THREAD_KEYS_MAX 128 +/* maximum number of times a read lock may be obtained */ +#define MAX_READ_LOCKS (INT_MAX - 1) -#undef PTHREAD_KEYS_MAX -#define PTHREAD_KEYS_MAX _POSIX_THREAD_KEYS_MAX +/* No fork() in windows - so ignore this */ +#define pthread_atfork(F1,F2,F3) 0 -#undef PTHREAD_STACK_MIN -#define PTHREAD_STACK_MIN 0 +/* unsupported stuff: */ +#define pthread_mutex_getprioceiling(M, P) ENOTSUP +#define pthread_mutex_setprioceiling(M, P) ENOTSUP +#define pthread_getcpuclockid(T, C) ENOTSUP +#define pthread_attr_getguardsize(A, S) ENOTSUP +#define pthread_attr_setgaurdsize(A, S) ENOTSUP +#define pthread_attr_getschedpolicy(A, S) ENOTSUP +#define pthread_attr_setschedpolicy(A, S) ENOTSUP -#undef _POSIX_THREAD_THREADS_MAX -#define _POSIX_THREAD_THREADS_MAX 64 - - /* Arbitrary value */ -#undef PTHREAD_THREADS_MAX -#define PTHREAD_THREADS_MAX 2019 - -#undef _POSIX_SEM_NSEMS_MAX -#define _POSIX_SEM_NSEMS_MAX 256 - - /* Arbitrary value */ -#undef SEM_NSEMS_MAX -#define SEM_NSEMS_MAX 1024 - -#undef _POSIX_SEM_VALUE_MAX -#define _POSIX_SEM_VALUE_MAX 32767 - -#undef SEM_VALUE_MAX -#define SEM_VALUE_MAX INT_MAX - - -#if __GNUC__ && ! defined (__declspec) -# error Please upgrade your GNU compiler to one that supports __declspec. -#endif +typedef long pthread_once_t; +typedef unsigned pthread_mutexattr_t; +typedef unsigned pthread_key_t; +typedef void *pthread_barrierattr_t; +typedef int pthread_condattr_t; +typedef int pthread_rwlockattr_t; /* - * When building the DLL code, you should define PTW32_BUILD so that - * the variables/functions are exported correctly. When using the DLL, - * do NOT define PTW32_BUILD, and then the variables/functions will - * be imported correctly. - */ -#ifndef PTW32_STATIC_LIB -# ifdef PTW32_BUILD -# define PTW32_DLLPORT __declspec (dllexport) -# else -# define PTW32_DLLPORT __declspec (dllimport) -# endif -#else -# define PTW32_DLLPORT -#endif - -/* - * The Open Watcom C/C++ compiler uses a non-standard calling convention - * that passes function args in registers unless __cdecl is explicitly specified - * in exposed function prototypes. - * - * We force all calls to cdecl even though this could slow Watcom code down - * slightly. If you know that the Watcom compiler will be used to build both - * the DLL and application, then you can probably define this as a null string. - * Remember that pthread.h (this file) is used for both the DLL and application builds. - */ -#define PTW32_CDECL __cdecl +struct _pthread_v; -#if defined(_UWIN) && PTW32_LEVEL >= PTW32_LEVEL_MAX -# include -#else -/* - * Generic handle type - intended to extend uniqueness beyond - * that available with a simple pointer. It should scale for either - * IA-32 or IA-64. - */ -typedef struct { - void * p; /* Pointer to actual object */ - unsigned int x; /* Extra information - reuse count etc */ -} ptw32_handle_t; - -typedef ptw32_handle_t pthread_t; -typedef struct pthread_attr_t_ * pthread_attr_t; -typedef struct pthread_once_t_ pthread_once_t; -typedef struct pthread_key_t_ * pthread_key_t; -typedef struct pthread_mutex_t_ * pthread_mutex_t; -typedef struct pthread_mutexattr_t_ * pthread_mutexattr_t; -typedef struct pthread_cond_t_ * pthread_cond_t; -typedef struct pthread_condattr_t_ * pthread_condattr_t; -#endif -typedef struct pthread_rwlock_t_ * pthread_rwlock_t; -typedef struct pthread_rwlockattr_t_ * pthread_rwlockattr_t; -typedef struct pthread_spinlock_t_ * pthread_spinlock_t; -typedef struct pthread_barrier_t_ * pthread_barrier_t; -typedef struct pthread_barrierattr_t_ * pthread_barrierattr_t; +typedef struct pthread_t { + struct _pthread_v *p; + int x; +} pthread_t; +*/ -/* - * ==================== - * ==================== - * POSIX Threads - * ==================== - * ==================== - */ +typedef uintptr_t pthread_t; -enum { -/* - * pthread_attr_{get,set}detachstate - */ - PTHREAD_CREATE_JOINABLE = 0, /* Default */ - PTHREAD_CREATE_DETACHED = 1, - -/* - * pthread_attr_{get,set}inheritsched - */ - PTHREAD_INHERIT_SCHED = 0, - PTHREAD_EXPLICIT_SCHED = 1, /* Default */ - -/* - * pthread_{get,set}scope - */ - PTHREAD_SCOPE_PROCESS = 0, - PTHREAD_SCOPE_SYSTEM = 1, /* Default */ - -/* - * pthread_setcancelstate paramters - */ - PTHREAD_CANCEL_ENABLE = 0, /* Default */ - PTHREAD_CANCEL_DISABLE = 1, - -/* - * pthread_setcanceltype parameters - */ - PTHREAD_CANCEL_ASYNCHRONOUS = 0, - PTHREAD_CANCEL_DEFERRED = 1, /* Default */ - -/* - * pthread_mutexattr_{get,set}pshared - * pthread_condattr_{get,set}pshared - */ - PTHREAD_PROCESS_PRIVATE = 0, - PTHREAD_PROCESS_SHARED = 1, - -/* - * pthread_barrier_wait - */ - PTHREAD_BARRIER_SERIAL_THREAD = -1 -}; - -/* - * ==================== - * ==================== - * Cancelation - * ==================== - * ==================== - */ -#define PTHREAD_CANCELED ((void *) -1) - - -/* - * ==================== - * ==================== - * Once Key - * ==================== - * ==================== - */ -#define PTHREAD_ONCE_INIT { PTW32_FALSE, 0, 0, 0} - -struct pthread_once_t_ +typedef struct _pthread_cleanup _pthread_cleanup; +struct _pthread_cleanup { - int done; /* indicates if user function has been executed */ - void * lock; - int reserved1; - int reserved2; + void (*func)(void *); + void *arg; + _pthread_cleanup *next; }; +#define pthread_cleanup_push(F, A)\ +{\ + const _pthread_cleanup _pthread_cup = {(F), (A), *pthread_getclean()};\ + __sync_synchronize();\ + *pthread_getclean() = (_pthread_cleanup *) &_pthread_cup;\ + __sync_synchronize() -/* - * ==================== - * ==================== - * Object initialisers - * ==================== - * ==================== - */ -#define PTHREAD_MUTEX_INITIALIZER ((pthread_mutex_t) -1) -#define PTHREAD_RECURSIVE_MUTEX_INITIALIZER ((pthread_mutex_t) -2) -#define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER ((pthread_mutex_t) -3) - -/* - * Compatibility with LinuxThreads - */ -#define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP PTHREAD_RECURSIVE_MUTEX_INITIALIZER -#define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP PTHREAD_ERRORCHECK_MUTEX_INITIALIZER - -#define PTHREAD_COND_INITIALIZER ((pthread_cond_t) -1) - -#define PTHREAD_RWLOCK_INITIALIZER ((pthread_rwlock_t) -1) - -#define PTHREAD_SPINLOCK_INITIALIZER ((pthread_spinlock_t) -1) - +/* Note that if async cancelling is used, then there is a race here */ +#define pthread_cleanup_pop(E)\ + (*pthread_getclean() = _pthread_cup.next, (E?_pthread_cup.func((pthread_once_t *)_pthread_cup.arg):0));} -/* - * Mutex types. - */ -enum -{ - /* Compatibility with LinuxThreads */ - PTHREAD_MUTEX_FAST_NP, - PTHREAD_MUTEX_RECURSIVE_NP, - PTHREAD_MUTEX_ERRORCHECK_NP, - PTHREAD_MUTEX_TIMED_NP = PTHREAD_MUTEX_FAST_NP, - PTHREAD_MUTEX_ADAPTIVE_NP = PTHREAD_MUTEX_FAST_NP, - /* For compatibility with POSIX */ - PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_FAST_NP, - PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP, - PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP, - PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL +/* Windows doesn't have this, so declare it ourselves. */ +#ifndef _TIMESPEC_DEFINED +#define _TIMESPEC_DEFINED +struct timespec { + time_t tv_sec; /* Seconds */ + long tv_nsec; /* Nanoseconds */ }; - -typedef struct ptw32_cleanup_t ptw32_cleanup_t; - -#if defined(_MSC_VER) -/* Disable MSVC 'anachronism used' warning */ -#pragma warning( disable : 4229 ) +struct itimerspec { + struct timespec it_interval; /* Timer period */ + struct timespec it_value; /* Timer expiration */ +}; #endif -typedef void (* PTW32_CDECL ptw32_cleanup_callback_t)(void *); - -#if defined(_MSC_VER) -#pragma warning( default : 4229 ) -#endif +#ifndef SCHED_OTHER +/* Some POSIX realtime extensions, mostly stubbed */ +#define SCHED_OTHER 0 +#define SCHED_FIFO 1 +#define SCHED_RR 2 +#define SCHED_MIN SCHED_OTHER +#define SCHED_MAX SCHED_RR -struct ptw32_cleanup_t -{ - ptw32_cleanup_callback_t routine; - void *arg; - struct ptw32_cleanup_t *prev; +struct sched_param { + int sched_priority; }; -#ifdef __CLEANUP_SEH - /* - * WIN32 SEH version of cancel cleanup. - */ - -#define pthread_cleanup_push( _rout, _arg ) \ - { \ - ptw32_cleanup_t _cleanup; \ - \ - _cleanup.routine = (ptw32_cleanup_callback_t)(_rout); \ - _cleanup.arg = (_arg); \ - __try \ - { \ - -#define pthread_cleanup_pop( _execute ) \ - } \ - __finally \ - { \ - if( _execute || AbnormalTermination()) \ - { \ - (*(_cleanup.routine))( _cleanup.arg ); \ - } \ - } \ - } - -#else /* __CLEANUP_SEH */ - -#ifdef __CLEANUP_C - - /* - * C implementation of PThreads cancel cleanup - */ - -#define pthread_cleanup_push( _rout, _arg ) \ - { \ - ptw32_cleanup_t _cleanup; \ - \ - ptw32_push_cleanup( &_cleanup, (ptw32_cleanup_callback_t) (_rout), (_arg) ); \ - -#define pthread_cleanup_pop( _execute ) \ - (void) ptw32_pop_cleanup( _execute ); \ - } - -#else /* __CLEANUP_C */ - -#ifdef __CLEANUP_CXX - - /* - * C++ version of cancel cleanup. - * - John E. Bossom. - */ - - class PThreadCleanup { - /* - * PThreadCleanup - * - * Purpose - * This class is a C++ helper class that is - * used to implement pthread_cleanup_push/ - * pthread_cleanup_pop. - * The destructor of this class automatically - * pops the pushed cleanup routine regardless - * of how the code exits the scope - * (i.e. such as by an exception) - */ - ptw32_cleanup_callback_t cleanUpRout; - void * obj; - int executeIt; - - public: - PThreadCleanup() : - cleanUpRout( 0 ), - obj( 0 ), - executeIt( 0 ) - /* - * No cleanup performed - */ - { - } - - PThreadCleanup( - ptw32_cleanup_callback_t routine, - void * arg ) : - cleanUpRout( routine ), - obj( arg ), - executeIt( 1 ) - /* - * Registers a cleanup routine for 'arg' - */ - { - } - - ~PThreadCleanup() - { - if ( executeIt && ((void *) cleanUpRout != (void *) 0) ) - { - (void) (*cleanUpRout)( obj ); - } - } - - void execute( int exec ) - { - executeIt = exec; - } - }; - - /* - * C++ implementation of PThreads cancel cleanup; - * This implementation takes advantage of a helper - * class who's destructor automatically calls the - * cleanup routine if we exit our scope weirdly - */ -#define pthread_cleanup_push( _rout, _arg ) \ - { \ - PThreadCleanup cleanup((ptw32_cleanup_callback_t)(_rout), \ - (void *) (_arg) ); - -#define pthread_cleanup_pop( _execute ) \ - cleanup.execute( _execute ); \ - } - -#else - -#error ERROR [__FILE__, line __LINE__]: Cleanup type undefined. - -#endif /* __CLEANUP_CXX */ - -#endif /* __CLEANUP_C */ - -#endif /* __CLEANUP_SEH */ - -/* - * =============== - * =============== - * Methods - * =============== - * =============== - */ - -/* - * PThread Attribute Functions - */ -PTW32_DLLPORT int PTW32_CDECL pthread_attr_init (pthread_attr_t * attr); - -PTW32_DLLPORT int PTW32_CDECL pthread_attr_destroy (pthread_attr_t * attr); - -PTW32_DLLPORT int PTW32_CDECL pthread_attr_getdetachstate (const pthread_attr_t * attr, - int *detachstate); - -PTW32_DLLPORT int PTW32_CDECL pthread_attr_getstackaddr (const pthread_attr_t * attr, - void **stackaddr); - -PTW32_DLLPORT int PTW32_CDECL pthread_attr_getstacksize (const pthread_attr_t * attr, - size_t * stacksize); - -PTW32_DLLPORT int PTW32_CDECL pthread_attr_setdetachstate (pthread_attr_t * attr, - int detachstate); - -PTW32_DLLPORT int PTW32_CDECL pthread_attr_setstackaddr (pthread_attr_t * attr, - void *stackaddr); - -PTW32_DLLPORT int PTW32_CDECL pthread_attr_setstacksize (pthread_attr_t * attr, - size_t stacksize); - -PTW32_DLLPORT int PTW32_CDECL pthread_attr_getschedparam (const pthread_attr_t *attr, - struct sched_param *param); - -PTW32_DLLPORT int PTW32_CDECL pthread_attr_setschedparam (pthread_attr_t *attr, - const struct sched_param *param); - -PTW32_DLLPORT int PTW32_CDECL pthread_attr_setschedpolicy (pthread_attr_t *, - int); - -PTW32_DLLPORT int PTW32_CDECL pthread_attr_getschedpolicy (pthread_attr_t *, - int *); - -PTW32_DLLPORT int PTW32_CDECL pthread_attr_setinheritsched(pthread_attr_t * attr, - int inheritsched); - -PTW32_DLLPORT int PTW32_CDECL pthread_attr_getinheritsched(pthread_attr_t * attr, - int * inheritsched); - -PTW32_DLLPORT int PTW32_CDECL pthread_attr_setscope (pthread_attr_t *, - int); - -PTW32_DLLPORT int PTW32_CDECL pthread_attr_getscope (const pthread_attr_t *, - int *); - -/* - * PThread Functions - */ -PTW32_DLLPORT int PTW32_CDECL pthread_create (pthread_t * tid, - const pthread_attr_t * attr, - void *(*start) (void *), - void *arg); - -PTW32_DLLPORT int PTW32_CDECL pthread_detach (pthread_t tid); - -PTW32_DLLPORT int PTW32_CDECL pthread_equal (pthread_t t1, - pthread_t t2); - -PTW32_DLLPORT void PTW32_CDECL pthread_exit (void *value_ptr); - -PTW32_DLLPORT int PTW32_CDECL pthread_join (pthread_t thread, - void **value_ptr); - -PTW32_DLLPORT pthread_t PTW32_CDECL pthread_self (void); - -PTW32_DLLPORT int PTW32_CDECL pthread_cancel (pthread_t thread); - -PTW32_DLLPORT int PTW32_CDECL pthread_setcancelstate (int state, - int *oldstate); - -PTW32_DLLPORT int PTW32_CDECL pthread_setcanceltype (int type, - int *oldtype); - -PTW32_DLLPORT void PTW32_CDECL pthread_testcancel (void); - -PTW32_DLLPORT int PTW32_CDECL pthread_once (pthread_once_t * once_control, - void (*init_routine) (void)); - -#if PTW32_LEVEL >= PTW32_LEVEL_MAX -PTW32_DLLPORT ptw32_cleanup_t * PTW32_CDECL ptw32_pop_cleanup (int execute); - -PTW32_DLLPORT void PTW32_CDECL ptw32_push_cleanup (ptw32_cleanup_t * cleanup, - void (*routine) (void *), - void *arg); -#endif /* PTW32_LEVEL >= PTW32_LEVEL_MAX */ - -/* - * Thread Specific Data Functions - */ -PTW32_DLLPORT int PTW32_CDECL pthread_key_create (pthread_key_t * key, - void (*destructor) (void *)); - -PTW32_DLLPORT int PTW32_CDECL pthread_key_delete (pthread_key_t key); - -PTW32_DLLPORT int PTW32_CDECL pthread_setspecific (pthread_key_t key, - const void *value); - -PTW32_DLLPORT void * PTW32_CDECL pthread_getspecific (pthread_key_t key); - - -/* - * Mutex Attribute Functions - */ -PTW32_DLLPORT int PTW32_CDECL pthread_mutexattr_init (pthread_mutexattr_t * attr); - -PTW32_DLLPORT int PTW32_CDECL pthread_mutexattr_destroy (pthread_mutexattr_t * attr); - -PTW32_DLLPORT int PTW32_CDECL pthread_mutexattr_getpshared (const pthread_mutexattr_t - * attr, - int *pshared); - -PTW32_DLLPORT int PTW32_CDECL pthread_mutexattr_setpshared (pthread_mutexattr_t * attr, - int pshared); - -PTW32_DLLPORT int PTW32_CDECL pthread_mutexattr_settype (pthread_mutexattr_t * attr, int kind); -PTW32_DLLPORT int PTW32_CDECL pthread_mutexattr_gettype (pthread_mutexattr_t * attr, int *kind); - -/* - * Barrier Attribute Functions - */ -PTW32_DLLPORT int PTW32_CDECL pthread_barrierattr_init (pthread_barrierattr_t * attr); - -PTW32_DLLPORT int PTW32_CDECL pthread_barrierattr_destroy (pthread_barrierattr_t * attr); - -PTW32_DLLPORT int PTW32_CDECL pthread_barrierattr_getpshared (const pthread_barrierattr_t - * attr, - int *pshared); - -PTW32_DLLPORT int PTW32_CDECL pthread_barrierattr_setpshared (pthread_barrierattr_t * attr, - int pshared); - -/* - * Mutex Functions - */ -PTW32_DLLPORT int PTW32_CDECL pthread_mutex_init (pthread_mutex_t * mutex, - const pthread_mutexattr_t * attr); - -PTW32_DLLPORT int PTW32_CDECL pthread_mutex_destroy (pthread_mutex_t * mutex); - -PTW32_DLLPORT int PTW32_CDECL pthread_mutex_lock (pthread_mutex_t * mutex); - -PTW32_DLLPORT int PTW32_CDECL pthread_mutex_timedlock(pthread_mutex_t *mutex, - const struct timespec *abstime); - -PTW32_DLLPORT int PTW32_CDECL pthread_mutex_trylock (pthread_mutex_t * mutex); - -PTW32_DLLPORT int PTW32_CDECL pthread_mutex_unlock (pthread_mutex_t * mutex); - -/* - * Spinlock Functions - */ -PTW32_DLLPORT int PTW32_CDECL pthread_spin_init (pthread_spinlock_t * lock, int pshared); - -PTW32_DLLPORT int PTW32_CDECL pthread_spin_destroy (pthread_spinlock_t * lock); - -PTW32_DLLPORT int PTW32_CDECL pthread_spin_lock (pthread_spinlock_t * lock); - -PTW32_DLLPORT int PTW32_CDECL pthread_spin_trylock (pthread_spinlock_t * lock); - -PTW32_DLLPORT int PTW32_CDECL pthread_spin_unlock (pthread_spinlock_t * lock); - -/* - * Barrier Functions - */ -PTW32_DLLPORT int PTW32_CDECL pthread_barrier_init (pthread_barrier_t * barrier, - const pthread_barrierattr_t * attr, - unsigned int count); - -PTW32_DLLPORT int PTW32_CDECL pthread_barrier_destroy (pthread_barrier_t * barrier); - -PTW32_DLLPORT int PTW32_CDECL pthread_barrier_wait (pthread_barrier_t * barrier); - -/* - * Condition Variable Attribute Functions - */ -PTW32_DLLPORT int PTW32_CDECL pthread_condattr_init (pthread_condattr_t * attr); - -PTW32_DLLPORT int PTW32_CDECL pthread_condattr_destroy (pthread_condattr_t * attr); - -PTW32_DLLPORT int PTW32_CDECL pthread_condattr_getpshared (const pthread_condattr_t * attr, - int *pshared); - -PTW32_DLLPORT int PTW32_CDECL pthread_condattr_setpshared (pthread_condattr_t * attr, - int pshared); - -/* - * Condition Variable Functions - */ -PTW32_DLLPORT int PTW32_CDECL pthread_cond_init (pthread_cond_t * cond, - const pthread_condattr_t * attr); - -PTW32_DLLPORT int PTW32_CDECL pthread_cond_destroy (pthread_cond_t * cond); - -PTW32_DLLPORT int PTW32_CDECL pthread_cond_wait (pthread_cond_t * cond, - pthread_mutex_t * mutex); - -PTW32_DLLPORT int PTW32_CDECL pthread_cond_timedwait (pthread_cond_t * cond, - pthread_mutex_t * mutex, - const struct timespec *abstime); - -PTW32_DLLPORT int PTW32_CDECL pthread_cond_signal (pthread_cond_t * cond); - -PTW32_DLLPORT int PTW32_CDECL pthread_cond_broadcast (pthread_cond_t * cond); - -/* - * Scheduling - */ -PTW32_DLLPORT int PTW32_CDECL pthread_setschedparam (pthread_t thread, - int policy, - const struct sched_param *param); - -PTW32_DLLPORT int PTW32_CDECL pthread_getschedparam (pthread_t thread, - int *policy, - struct sched_param *param); - -PTW32_DLLPORT int PTW32_CDECL pthread_setconcurrency (int); - -PTW32_DLLPORT int PTW32_CDECL pthread_getconcurrency (void); - -/* - * Read-Write Lock Functions - */ -PTW32_DLLPORT int PTW32_CDECL pthread_rwlock_init(pthread_rwlock_t *lock, - const pthread_rwlockattr_t *attr); +int WINPTHREAD_API sched_yield(void); +int WINPTHREAD_API sched_get_priority_min(int pol); +int WINPTHREAD_API sched_get_priority_max(int pol); +int WINPTHREAD_API sched_getscheduler(pid_t pid); +int WINPTHREAD_API sched_setscheduler(pid_t pid, int pol, const struct sched_param *param); -PTW32_DLLPORT int PTW32_CDECL pthread_rwlock_destroy(pthread_rwlock_t *lock); - -PTW32_DLLPORT int PTW32_CDECL pthread_rwlock_tryrdlock(pthread_rwlock_t *); - -PTW32_DLLPORT int PTW32_CDECL pthread_rwlock_trywrlock(pthread_rwlock_t *); - -PTW32_DLLPORT int PTW32_CDECL pthread_rwlock_rdlock(pthread_rwlock_t *lock); - -PTW32_DLLPORT int PTW32_CDECL pthread_rwlock_timedrdlock(pthread_rwlock_t *lock, - const struct timespec *abstime); - -PTW32_DLLPORT int PTW32_CDECL pthread_rwlock_wrlock(pthread_rwlock_t *lock); - -PTW32_DLLPORT int PTW32_CDECL pthread_rwlock_timedwrlock(pthread_rwlock_t *lock, - const struct timespec *abstime); - -PTW32_DLLPORT int PTW32_CDECL pthread_rwlock_unlock(pthread_rwlock_t *lock); - -PTW32_DLLPORT int PTW32_CDECL pthread_rwlockattr_init (pthread_rwlockattr_t * attr); - -PTW32_DLLPORT int PTW32_CDECL pthread_rwlockattr_destroy (pthread_rwlockattr_t * attr); - -PTW32_DLLPORT int PTW32_CDECL pthread_rwlockattr_getpshared (const pthread_rwlockattr_t * attr, - int *pshared); - -PTW32_DLLPORT int PTW32_CDECL pthread_rwlockattr_setpshared (pthread_rwlockattr_t * attr, - int pshared); - -#if PTW32_LEVEL >= PTW32_LEVEL_MAX - 1 - -/* - * Signal Functions. Should be defined in but MSVC and MinGW32 - * already have signal.h that don't define these. - */ -PTW32_DLLPORT int PTW32_CDECL pthread_kill(pthread_t thread, int sig); - -/* - * Non-portable functions - */ - -/* - * Compatibility with Linux. - */ -PTW32_DLLPORT int PTW32_CDECL pthread_mutexattr_setkind_np(pthread_mutexattr_t * attr, - int kind); -PTW32_DLLPORT int PTW32_CDECL pthread_mutexattr_getkind_np(pthread_mutexattr_t * attr, - int *kind); - -/* - * Possibly supported by other POSIX threads implementations - */ -PTW32_DLLPORT int PTW32_CDECL pthread_delay_np (struct timespec * interval); -PTW32_DLLPORT int PTW32_CDECL pthread_num_processors_np(void); - -/* - * Useful if an application wants to statically link - * the lib rather than load the DLL at run-time. - */ -PTW32_DLLPORT int PTW32_CDECL pthread_win32_process_attach_np(void); -PTW32_DLLPORT int PTW32_CDECL pthread_win32_process_detach_np(void); -PTW32_DLLPORT int PTW32_CDECL pthread_win32_thread_attach_np(void); -PTW32_DLLPORT int PTW32_CDECL pthread_win32_thread_detach_np(void); +#endif -/* - * Features that are auto-detected at load/run time. - */ -PTW32_DLLPORT int PTW32_CDECL pthread_win32_test_features_np(int); -enum ptw32_features { - PTW32_SYSTEM_INTERLOCKED_COMPARE_EXCHANGE = 0x0001, /* System provides it. */ - PTW32_ALERTABLE_ASYNC_CANCEL = 0x0002 /* Can cancel blocked threads. */ +typedef struct pthread_attr_t pthread_attr_t; +struct pthread_attr_t +{ + unsigned p_state; + void *stack; + size_t s_size; + struct sched_param param; }; -/* - * Register a system time change with the library. - * Causes the library to perform various functions - * in response to the change. Should be called whenever - * the application's top level window receives a - * WM_TIMECHANGE message. It can be passed directly to - * pthread_create() as a new thread if desired. - */ -PTW32_DLLPORT void * PTW32_CDECL pthread_timechange_handler_np(void *); - -#endif /*PTW32_LEVEL >= PTW32_LEVEL_MAX - 1 */ - -#if PTW32_LEVEL >= PTW32_LEVEL_MAX - -/* - * Returns the Win32 HANDLE for the POSIX thread. - */ -PTW32_DLLPORT HANDLE PTW32_CDECL pthread_getw32threadhandle_np(pthread_t thread); - - -/* - * Protected Methods - * - * This function blocks until the given WIN32 handle - * is signaled or pthread_cancel had been called. - * This function allows the caller to hook into the - * PThreads cancel mechanism. It is implemented using - * - * WaitForMultipleObjects - * - * on 'waitHandle' and a manually reset WIN32 Event - * used to implement pthread_cancel. The 'timeout' - * argument to TimedWait is simply passed to - * WaitForMultipleObjects. - */ -PTW32_DLLPORT int PTW32_CDECL pthreadCancelableWait (HANDLE waitHandle); -PTW32_DLLPORT int PTW32_CDECL pthreadCancelableTimedWait (HANDLE waitHandle, - DWORD timeout); - -#endif /* PTW32_LEVEL >= PTW32_LEVEL_MAX */ - -/* - * Thread-Safe C Runtime Library Mappings. - */ -#ifndef _UWIN -# if defined(NEED_ERRNO) - PTW32_DLLPORT int * PTW32_CDECL _errno( void ); -# else -# ifndef errno -# if (defined(_MT) || defined(_DLL)) - __declspec(dllimport) extern int * __cdecl _errno(void); -# define errno (*_errno()) -# endif -# endif -# endif +int WINPTHREAD_API pthread_attr_setschedparam(pthread_attr_t *attr, const struct sched_param *param); +int WINPTHREAD_API pthread_attr_getschedparam(const pthread_attr_t *attr, struct sched_param *param); +int WINPTHREAD_API pthread_getschedparam(pthread_t thread, int *pol, struct sched_param *param); +int WINPTHREAD_API pthread_setschedparam(pthread_t thread, int pol, const struct sched_param *param); + +/* synchronization objects */ +typedef void *pthread_spinlock_t; +typedef void *pthread_mutex_t; +typedef void *pthread_cond_t; +typedef void *pthread_rwlock_t; +typedef void *pthread_barrier_t; + +#define PTHREAD_MUTEX_NORMAL 0 +#define PTHREAD_MUTEX_ERRORCHECK 1 +#define PTHREAD_MUTEX_RECURSIVE 2 + +#define GENERIC_INITIALIZER ((void *) (size_t) -1) +#define GENERIC_ERRORCHECK_INITIALIZER ((void *) (size_t) -2) +#define GENERIC_RECURSIVE_INITIALIZER ((void *) (size_t) -3) +#define GENERIC_NORMAL_INITIALIZER ((void *) (size_t) -1) +#define PTHREAD_MUTEX_INITIALIZER (pthread_mutex_t *)GENERIC_INITIALIZER +#define PTHREAD_RECURSIVE_MUTEX_INITIALIZER (pthread_mutex_t *)GENERIC_RECURSIVE_INITIALIZER +#define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER (pthread_mutex_t *)GENERIC_ERRORCHECK_INITIALIZER +#define PTHREAD_NORMAL_MUTEX_INITIALIZER (pthread_mutex_t *)GENERIC_NORMAL_INITIALIZER +#define PTHREAD_DEFAULT_MUTEX_INITIALIZER PTHREAD_NORMAL_MUTEX_INITIALIZER +#define PTHREAD_COND_INITIALIZER (pthread_cond_t *)GENERIC_INITIALIZER +#define PTHREAD_RWLOCK_INITIALIZER (pthread_rwlock_t *)GENERIC_INITIALIZER +#define PTHREAD_SPINLOCK_INITIALIZER (pthread_spinlock_t *)GENERIC_INITIALIZER + +extern void WINPTHREAD_API (**_pthread_key_dest)(void *); +int WINPTHREAD_API pthread_key_create(pthread_key_t *key, void (* dest)(void *)); +int WINPTHREAD_API pthread_key_delete(pthread_key_t key); +void * WINPTHREAD_API pthread_getspecific(pthread_key_t key); +int WINPTHREAD_API pthread_setspecific(pthread_key_t key, const void *value); + +pthread_t WINPTHREAD_API pthread_self(void); +int WINPTHREAD_API pthread_once(pthread_once_t *o, void (*func)(void)); +void WINPTHREAD_API pthread_testcancel(void); +int WINPTHREAD_API pthread_equal(pthread_t t1, pthread_t t2); +void WINPTHREAD_API pthread_tls_init(void); +void WINPTHREAD_API _pthread_cleanup_dest(pthread_t t); +pthread_t WINPTHREAD_API pthread_self(void); +int WINPTHREAD_API pthread_get_concurrency(int *val); +int WINPTHREAD_API pthread_set_concurrency(int val); +void WINPTHREAD_API pthread_exit(void *res); +void WINPTHREAD_API _pthread_invoke_cancel(void); +void WINPTHREAD_API pthread_testcancel(void); +int WINPTHREAD_API pthread_cancel(pthread_t t); +int WINPTHREAD_API pthread_kill(pthread_t t, int sig); +unsigned WINPTHREAD_API _pthread_get_state(const pthread_attr_t *attr, unsigned flag); +int WINPTHREAD_API _pthread_set_state(pthread_attr_t *attr, unsigned flag, unsigned val); +int WINPTHREAD_API pthread_setcancelstate(int state, int *oldstate); +int WINPTHREAD_API pthread_setcanceltype(int type, int *oldtype); +int WINPTHREAD_API pthread_create_wrapper(void *args); +int WINPTHREAD_API pthread_create(pthread_t *th, const pthread_attr_t *attr, void *(* func)(void *), void *arg); +int WINPTHREAD_API pthread_join(pthread_t t, void **res); +int WINPTHREAD_API pthread_detach(pthread_t t); + +int WINPTHREAD_API pthread_rwlock_init(pthread_rwlock_t *rwlock_, const pthread_rwlockattr_t *attr); +int WINPTHREAD_API pthread_rwlock_wrlock(pthread_rwlock_t *l); +int WINPTHREAD_API pthread_rwlock_timedwrlock(pthread_rwlock_t *rwlock, const struct timespec *ts); +int WINPTHREAD_API pthread_rwlock_rdlock(pthread_rwlock_t *l); +int WINPTHREAD_API pthread_rwlock_timedrdlock(pthread_rwlock_t *l, const struct timespec *ts); +int WINPTHREAD_API pthread_rwlock_unlock(pthread_rwlock_t *l); +int WINPTHREAD_API pthread_rwlock_tryrdlock(pthread_rwlock_t *l); +int WINPTHREAD_API pthread_rwlock_trywrlock(pthread_rwlock_t *l); +int WINPTHREAD_API pthread_rwlock_destroy (pthread_rwlock_t *l); + +int WINPTHREAD_API pthread_cond_init(pthread_cond_t *cv, const pthread_condattr_t *a); +int WINPTHREAD_API pthread_cond_destroy(pthread_cond_t *cv); +int WINPTHREAD_API pthread_cond_signal (pthread_cond_t *cv); +int WINPTHREAD_API pthread_cond_broadcast (pthread_cond_t *cv); +int WINPTHREAD_API pthread_cond_wait (pthread_cond_t *cv, pthread_mutex_t *external_mutex); +int WINPTHREAD_API pthread_cond_timedwait(pthread_cond_t *cv, pthread_mutex_t *external_mutex, const struct timespec *t); + +int WINPTHREAD_API pthread_mutex_lock(pthread_mutex_t *m); +int WINPTHREAD_API pthread_mutex_timedlock(pthread_mutex_t *m, const struct timespec *ts); +int WINPTHREAD_API pthread_mutex_unlock(pthread_mutex_t *m); +int WINPTHREAD_API pthread_mutex_trylock(pthread_mutex_t *m); +int WINPTHREAD_API pthread_mutex_init(pthread_mutex_t *m, const pthread_mutexattr_t *a); +int WINPTHREAD_API pthread_mutex_destroy(pthread_mutex_t *m); + +int WINPTHREAD_API pthread_barrier_destroy(pthread_barrier_t *b); +int WINPTHREAD_API pthread_barrier_init(pthread_barrier_t *b, const void *attr, unsigned int count); +int WINPTHREAD_API pthread_barrier_wait(pthread_barrier_t *b); + +int WINPTHREAD_API pthread_spin_init(pthread_spinlock_t *l, int pshared); +int WINPTHREAD_API pthread_spin_destroy(pthread_spinlock_t *l); +/* No-fair spinlock due to lack of knowledge of thread number. */ +int WINPTHREAD_API pthread_spin_lock(pthread_spinlock_t *l); +int WINPTHREAD_API pthread_spin_trylock(pthread_spinlock_t *l); +int WINPTHREAD_API pthread_spin_unlock(pthread_spinlock_t *l); + +int WINPTHREAD_API pthread_attr_init(pthread_attr_t *attr); +int WINPTHREAD_API pthread_attr_destroy(pthread_attr_t *attr); +int WINPTHREAD_API pthread_attr_setdetachstate(pthread_attr_t *a, int flag); +int WINPTHREAD_API pthread_attr_getdetachstate(const pthread_attr_t *a, int *flag); +int WINPTHREAD_API pthread_attr_setinheritsched(pthread_attr_t *a, int flag); +int WINPTHREAD_API pthread_attr_getinheritsched(const pthread_attr_t *a, int *flag); +int WINPTHREAD_API pthread_attr_setscope(pthread_attr_t *a, int flag); +int WINPTHREAD_API pthread_attr_getscope(const pthread_attr_t *a, int *flag); +int WINPTHREAD_API pthread_attr_getstackaddr(pthread_attr_t *attr, void **stack); +int WINPTHREAD_API pthread_attr_setstackaddr(pthread_attr_t *attr, void *stack); +int WINPTHREAD_API pthread_attr_getstacksize(const pthread_attr_t *attr, size_t *size); +int WINPTHREAD_API pthread_attr_setstacksize(pthread_attr_t *attr, size_t size); + +int WINPTHREAD_API pthread_mutexattr_init(pthread_mutexattr_t *a); +int WINPTHREAD_API pthread_mutexattr_destroy(pthread_mutexattr_t *a); +int WINPTHREAD_API pthread_mutexattr_gettype(const pthread_mutexattr_t *a, int *type); +int WINPTHREAD_API pthread_mutexattr_settype(pthread_mutexattr_t *a, int type); +int WINPTHREAD_API pthread_mutexattr_getpshared(const pthread_mutexattr_t *a, int *type); +int WINPTHREAD_API pthread_mutexattr_setpshared(pthread_mutexattr_t * a, int type); +int WINPTHREAD_API pthread_mutexattr_getprotocol(const pthread_mutexattr_t *a, int *type); +int WINPTHREAD_API pthread_mutexattr_setprotocol(pthread_mutexattr_t *a, int type); +int WINPTHREAD_API pthread_mutexattr_getprioceiling(const pthread_mutexattr_t *a, int * prio); +int WINPTHREAD_API pthread_mutexattr_setprioceiling(pthread_mutexattr_t *a, int prio); +int WINPTHREAD_API pthread_getconcurrency(void); +int WINPTHREAD_API pthread_setconcurrency(int new_level); + +int WINPTHREAD_API pthread_condattr_destroy(pthread_condattr_t *a); +int WINPTHREAD_API pthread_condattr_init(pthread_condattr_t *a); +int WINPTHREAD_API pthread_condattr_getpshared(const pthread_condattr_t *a, int *s); +int WINPTHREAD_API pthread_condattr_setpshared(pthread_condattr_t *a, int s); + +#ifndef __clockid_t_defined +typedef int clockid_t; +#define __clockid_t_defined 1 +#endif /* __clockid_t_defined */ + +int WINPTHREAD_API pthread_condattr_getclock (const pthread_condattr_t *attr, + clockid_t *clock_id); +int WINPTHREAD_API pthread_condattr_setclock(pthread_condattr_t *attr, + clockid_t clock_id); +int WINPTHREAD_API __pthread_clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp); + +int WINPTHREAD_API pthread_barrierattr_init(void **attr); +int WINPTHREAD_API pthread_barrierattr_destroy(void **attr); +int WINPTHREAD_API pthread_barrierattr_setpshared(void **attr, int s); +int WINPTHREAD_API pthread_barrierattr_getpshared(void **attr, int *s); + +/* Private extensions for analysis and internal use. */ +struct _pthread_cleanup ** WINPTHREAD_API pthread_getclean (void); +void * WINPTHREAD_API pthread_gethandle (pthread_t t); +void * WINPTHREAD_API pthread_getevent (pthread_t t); + +unsigned long long WINPTHREAD_API _pthread_rel_time_in_ms(const struct timespec *ts); +unsigned long long WINPTHREAD_API _pthread_time_in_ms(void); +unsigned long long WINPTHREAD_API _pthread_time_in_ms_from_timespec(const struct timespec *ts); +int WINPTHREAD_API _pthread_tryjoin (pthread_t t, void **res); +int WINPTHREAD_API pthread_delay_np (const struct timespec *interval); +int WINPTHREAD_API pthread_rwlockattr_destroy(pthread_rwlockattr_t *a); +int WINPTHREAD_API pthread_rwlockattr_getpshared(pthread_rwlockattr_t *a, int *s); +int WINPTHREAD_API pthread_rwlockattr_init(pthread_rwlockattr_t *a); +int WINPTHREAD_API pthread_rwlockattr_setpshared(pthread_rwlockattr_t *a, int s); + +/* Recursive API emulation. */ +#undef localtime_r +#define localtime_r(_Time, _Tm) ({ struct tm *___tmp_tm; \ + pthread_testcancel(); \ + ___tmp_tm = localtime((_Time));\ + if (___tmp_tm) { \ + *(_Tm) = *___tmp_tm; \ + ___tmp_tm = (_Tm); \ + } \ + ___tmp_tm; }) + +#undef gmtime_r +#define gmtime_r(_Time,_Tm) ({ struct tm *___tmp_tm; \ + pthread_testcancel(); \ + ___tmp_tm = gmtime((_Time)); \ + if (___tmp_tm) { \ + *(_Tm) = *___tmp_tm; \ + ___tmp_tm = (_Tm); \ + } \ + ___tmp_tm; }) + +#undef ctime_r +#define ctime_r(_Time,_Str) ({ char *___tmp_tm; \ + pthread_testcancel(); \ + ___tmp_tm = ctime((_Time)); \ + if (___tmp_tm) \ + ___tmp_tm = \ + strcpy((_Str),___tmp_tm); \ + ___tmp_tm; }) + +#undef asctime_r +#define asctime_r(_Tm, _Buf) ({ char *___tmp_tm; \ + pthread_testcancel(); \ + ___tmp_tm = asctime((_Tm)); \ + if (___tmp_tm) \ + ___tmp_tm = \ + strcpy((_Buf),___tmp_tm);\ + ___tmp_tm; }) + +#ifndef strtok_r +#define strtok_r(__s, __sep, __last) (*(__last) = strtok((__s), (__sep))) #endif - -/* - * WIN32 C runtime library had been made thread-safe - * without affecting the user interface. Provide - * mappings from the UNIX thread-safe versions to - * the standard C runtime library calls. - * Only provide function mappings for functions that - * actually exist on WIN32. - */ - -#if !defined(__MINGW32__) -#define strtok_r( _s, _sep, _lasts ) \ - ( *(_lasts) = strtok( (_s), (_sep) ) ) -#endif /* !__MINGW32__ */ - -#define asctime_r( _tm, _buf ) \ - ( strcpy( (_buf), asctime( (_tm) ) ), \ - (_buf) ) - -#define ctime_r( _clock, _buf ) \ - ( strcpy( (_buf), ctime( (_clock) ) ), \ - (_buf) ) - -#define gmtime_r( _clock, _result ) \ - ( *(_result) = *gmtime( (_clock) ), \ - (_result) ) - -#define localtime_r( _clock, _result ) \ - ( *(_result) = *localtime( (_clock) ), \ - (_result) ) - -#define rand_r( _seed ) \ - ( _seed == _seed? rand() : rand() ) - - -/* - * Some compiler environments don't define some things. - */ -#if defined(__BORLANDC__) -# define _ftime ftime -# define _timeb timeb +#ifndef rand_r +#define rand_r(__seed) (__seed == __seed ? rand () : rand ()) #endif -#ifdef __cplusplus - -/* - * Internal exceptions - */ -class ptw32_exception {}; -class ptw32_exception_cancel : public ptw32_exception {}; -class ptw32_exception_exit : public ptw32_exception {}; - +#ifndef SIG_BLOCK +#define SIG_BLOCK 0 +#endif +#ifndef SIG_UNBLOCK +#define SIG_UNBLOCK 1 +#endif +#ifndef SIG_SETMASK +#define SIG_SETMASK 2 #endif -#if PTW32_LEVEL >= PTW32_LEVEL_MAX - -/* FIXME: This is only required if the library was built using SEH */ -/* - * Get internal SEH tag - */ -PTW32_DLLPORT DWORD PTW32_CDECL ptw32_get_exception_services_code(void); - -#endif /* PTW32_LEVEL >= PTW32_LEVEL_MAX */ - -#ifndef PTW32_BUILD +#include -#ifdef __CLEANUP_SEH +#undef _POSIX_THREAD_DESTRUCTOR_ITERATIONS +#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS PTHREAD_DESTRUCTOR_ITERATIONS -/* - * Redefine the SEH __except keyword to ensure that applications - * propagate our internal exceptions up to the library's internal handlers. - */ -#define __except( E ) \ - __except( ( GetExceptionCode() == ptw32_get_exception_services_code() ) \ - ? EXCEPTION_CONTINUE_SEARCH : ( E ) ) +#undef _POSIX_THREAD_KEYS_MAX +#define _POSIX_THREAD_KEYS_MAX PTHREAD_KEYS_MAX -#endif /* __CLEANUP_SEH */ +#undef PTHREAD_THREADS_MAX +#define PTHREAD_THREADS_MAX 2019 -#ifdef __CLEANUP_CXX +#undef _POSIX_SEM_NSEMS_MAX +#define _POSIX_SEM_NSEMS_MAX 256 -/* - * Redefine the C++ catch keyword to ensure that applications - * propagate our internal exceptions up to the library's internal handlers. - */ -#ifdef _MSC_VER - /* - * WARNING: Replace any 'catch( ... )' with 'PtW32CatchAll' - * if you want Pthread-Win32 cancelation and pthread_exit to work. - */ - -#ifndef PtW32NoCatchWarn - -#pragma message("Specify \"/DPtW32NoCatchWarn\" compiler flag to skip this message.") -#pragma message("------------------------------------------------------------------") -#pragma message("When compiling applications with MSVC++ and C++ exception handling:") -#pragma message(" Replace any 'catch( ... )' in routines called from POSIX threads") -#pragma message(" with 'PtW32CatchAll' or 'CATCHALL' if you want POSIX thread") -#pragma message(" cancelation and pthread_exit to work. For example:") -#pragma message("") -#pragma message(" #ifdef PtW32CatchAll") -#pragma message(" PtW32CatchAll") -#pragma message(" #else") -#pragma message(" catch(...)") -#pragma message(" #endif") -#pragma message(" {") -#pragma message(" /* Catchall block processing */") -#pragma message(" }") -#pragma message("------------------------------------------------------------------") +#undef SEM_NSEMS_MAX +#define SEM_NSEMS_MAX 1024 +/* Wrap cancellation points. */ +#ifdef __WINPTRHEAD_ENABLE_WRAP_API +#define accept(...) (pthread_testcancel(), accept(__VA_ARGS__)) +#define aio_suspend(...) (pthread_testcancel(), aio_suspend(__VA_ARGS__)) +#define clock_nanosleep(...) (pthread_testcancel(), clock_nanosleep(__VA_ARGS__)) +#define close(...) (pthread_testcancel(), close(__VA_ARGS__)) +#define connect(...) (pthread_testcancel(), connect(__VA_ARGS__)) +#define creat(...) (pthread_testcancel(), creat(__VA_ARGS__)) +#define fcntl(...) (pthread_testcancel(), fcntl(__VA_ARGS__)) +#define fdatasync(...) (pthread_testcancel(), fdatasync(__VA_ARGS__)) +#define fsync(...) (pthread_testcancel(), fsync(__VA_ARGS__)) +#define getmsg(...) (pthread_testcancel(), getmsg(__VA_ARGS__)) +#define getpmsg(...) (pthread_testcancel(), getpmsg(__VA_ARGS__)) +#define lockf(...) (pthread_testcancel(), lockf(__VA_ARGS__)) +#define mg_receive(...) (pthread_testcancel(), mg_receive(__VA_ARGS__)) +#define mg_send(...) (pthread_testcancel(), mg_send(__VA_ARGS__)) +#define mg_timedreceive(...) (pthread_testcancel(), mg_timedreceive(__VA_ARGS__)) +#define mg_timessend(...) (pthread_testcancel(), mg_timedsend(__VA_ARGS__)) +#define msgrcv(...) (pthread_testcancel(), msgrecv(__VA_ARGS__)) +#define msgsnd(...) (pthread_testcancel(), msgsnd(__VA_ARGS__)) +#define msync(...) (pthread_testcancel(), msync(__VA_ARGS__)) +#define nanosleep(...) (pthread_testcancel(), nanosleep(__VA_ARGS__)) +#define open(...) (pthread_testcancel(), open(__VA_ARGS__)) +#define pause(...) (pthread_testcancel(), pause(__VA_ARGS__)) +#define poll(...) (pthread_testcancel(), poll(__VA_ARGS__)) +#define pread(...) (pthread_testcancel(), pread(__VA_ARGS__)) +#define pselect(...) (pthread_testcancel(), pselect(__VA_ARGS__)) +#define putmsg(...) (pthread_testcancel(), putmsg(__VA_ARGS__)) +#define putpmsg(...) (pthread_testcancel(), putpmsg(__VA_ARGS__)) +#define pwrite(...) (pthread_testcancel(), pwrite(__VA_ARGS__)) +#define read(...) (pthread_testcancel(), read(__VA_ARGS__)) +#define readv(...) (pthread_testcancel(), readv(__VA_ARGS__)) +#define recv(...) (pthread_testcancel(), recv(__VA_ARGS__)) +#define recvfrom(...) (pthread_testcancel(), recvfrom(__VA_ARGS__)) +#define recvmsg(...) (pthread_testcancel(), recvmsg(__VA_ARGS__)) +#define select(...) (pthread_testcancel(), select(__VA_ARGS__)) +#define sem_timedwait(...) (pthread_testcancel(), sem_timedwait(__VA_ARGS__)) +#define sem_wait(...) (pthread_testcancel(), sem_wait(__VA_ARGS__)) +#define send(...) (pthread_testcancel(), send(__VA_ARGS__)) +#define sendmsg(...) (pthread_testcancel(), sendmsg(__VA_ARGS__)) +#define sendto(...) (pthread_testcancel(), sendto(__VA_ARGS__)) +#define sigpause(...) (pthread_testcancel(), sigpause(__VA_ARGS__)) +#define sigsuspend(...) (pthread_testcancel(), sigsuspend(__VA_ARGS__)) +#define sigwait(...) (pthread_testcancel(), sigwait(__VA_ARGS__)) +#define sigwaitinfo(...) (pthread_testcancel(), sigwaitinfo(__VA_ARGS__)) +#define sleep(...) (pthread_testcancel(), sleep(__VA_ARGS__)) +//#define Sleep(...) (pthread_testcancel(), Sleep(__VA_ARGS__)) +#define system(...) (pthread_testcancel(), system(__VA_ARGS__)) +#define access(...) (pthread_testcancel(), access(__VA_ARGS__)) +#define asctime(...) (pthread_testcancel(), asctime(__VA_ARGS__)) +#define catclose(...) (pthread_testcancel(), catclose(__VA_ARGS__)) +#define catgets(...) (pthread_testcancel(), catgets(__VA_ARGS__)) +#define catopen(...) (pthread_testcancel(), catopen(__VA_ARGS__)) +#define closedir(...) (pthread_testcancel(), closedir(__VA_ARGS__)) +#define closelog(...) (pthread_testcancel(), closelog(__VA_ARGS__)) +#define ctermid(...) (pthread_testcancel(), ctermid(__VA_ARGS__)) +#define ctime(...) (pthread_testcancel(), ctime(__VA_ARGS__)) +#define dbm_close(...) (pthread_testcancel(), dbm_close(__VA_ARGS__)) +#define dbm_delete(...) (pthread_testcancel(), dbm_delete(__VA_ARGS__)) +#define dbm_fetch(...) (pthread_testcancel(), dbm_fetch(__VA_ARGS__)) +#define dbm_nextkey(...) (pthread_testcancel(), dbm_nextkey(__VA_ARGS__)) +#define dbm_open(...) (pthread_testcancel(), dbm_open(__VA_ARGS__)) +#define dbm_store(...) (pthread_testcancel(), dbm_store(__VA_ARGS__)) +#define dlclose(...) (pthread_testcancel(), dlclose(__VA_ARGS__)) +#define dlopen(...) (pthread_testcancel(), dlopen(__VA_ARGS__)) +#define endgrent(...) (pthread_testcancel(), endgrent(__VA_ARGS__)) +#define endhostent(...) (pthread_testcancel(), endhostent(__VA_ARGS__)) +#define endnetent(...) (pthread_testcancel(), endnetent(__VA_ARGS__)) +#define endprotoent(...) (pthread_testcancel(), endprotoend(__VA_ARGS__)) +#define endpwent(...) (pthread_testcancel(), endpwent(__VA_ARGS__)) +#define endservent(...) (pthread_testcancel(), endservent(__VA_ARGS__)) +#define endutxent(...) (pthread_testcancel(), endutxent(__VA_ARGS__)) +#define fclose(...) (pthread_testcancel(), fclose(__VA_ARGS__)) +#define fflush(...) (pthread_testcancel(), fflush(__VA_ARGS__)) +#define fgetc(...) (pthread_testcancel(), fgetc(__VA_ARGS__)) +#define fgetpos(...) (pthread_testcancel(), fgetpos(__VA_ARGS__)) +#define fgets(...) (pthread_testcancel(), fgets(__VA_ARGS__)) +#define fgetwc(...) (pthread_testcancel(), fgetwc(__VA_ARGS__)) +#define fgetws(...) (pthread_testcancel(), fgetws(__VA_ARGS__)) +#define fmtmsg(...) (pthread_testcancel(), fmtmsg(__VA_ARGS__)) +#define fopen(...) (pthread_testcancel(), fopen(__VA_ARGS__)) +#define fpathconf(...) (pthread_testcancel(), fpathconf(__VA_ARGS__)) +#define fprintf(...) (pthread_testcancel(), fprintf(__VA_ARGS__)) +#define fputc(...) (pthread_testcancel(), fputc(__VA_ARGS__)) +#define fputs(...) (pthread_testcancel(), fputs(__VA_ARGS__)) +#define fputwc(...) (pthread_testcancel(), fputwc(__VA_ARGS__)) +#define fputws(...) (pthread_testcancel(), fputws(__VA_ARGS__)) +#define fread(...) (pthread_testcancel(), fread(__VA_ARGS__)) +#define freopen(...) (pthread_testcancel(), freopen(__VA_ARGS__)) +#define fscanf(...) (pthread_testcancel(), fscanf(__VA_ARGS__)) +#define fseek(...) (pthread_testcancel(), fseek(__VA_ARGS__)) +#define fseeko(...) (pthread_testcancel(), fseeko(__VA_ARGS__)) +#define fsetpos(...) (pthread_testcancel(), fsetpos(__VA_ARGS__)) +#define fstat(...) (pthread_testcancel(), fstat(__VA_ARGS__)) +#define ftell(...) (pthread_testcancel(), ftell(__VA_ARGS__)) +#define ftello(...) (pthread_testcancel(), ftello(__VA_ARGS__)) +#define ftw(...) (pthread_testcancel(), ftw(__VA_ARGS__)) +#define fwprintf(...) (pthread_testcancel(), fwprintf(__VA_ARGS__)) +#define fwrite(...) (pthread_testcancel(), fwrite(__VA_ARGS__)) +#define fwscanf(...) (pthread_testcancel(), fwscanf(__VA_ARGS__)) +#define getaddrinfo(...) (pthread_testcancel(), getaddrinfo(__VA_ARGS__)) +#define getc(...) (pthread_testcancel(), getc(__VA_ARGS__)) +#define getc_unlocked(...) (pthread_testcancel(), getc_unlocked(__VA_ARGS__)) +#define getchar(...) (pthread_testcancel(), getchar(__VA_ARGS__)) +#define getchar_unlocked(...) (pthread_testcancel(), getchar_unlocked(__VA_ARGS__)) +#define getcwd(...) (pthread_testcancel(), getcwd(__VA_ARGS__)) +#define getdate(...) (pthread_testcancel(), getdate(__VA_ARGS__)) +#define getgrent(...) (pthread_testcancel(), getgrent(__VA_ARGS__)) +#define getgrgid(...) (pthread_testcancel(), getgrgid(__VA_ARGS__)) +#define getgrgid_r(...) (pthread_testcancel(), getgrgid_r(__VA_ARGS__)) +#define gergrnam(...) (pthread_testcancel(), getgrnam(__VA_ARGS__)) +#define getgrnam_r(...) (pthread_testcancel(), getgrnam_r(__VA_ARGS__)) +#define gethostbyaddr(...) (pthread_testcancel(), gethostbyaddr(__VA_ARGS__)) +#define gethostbyname(...) (pthread_testcancel(), gethostbyname(__VA_ARGS__)) +#define gethostent(...) (pthread_testcancel(), gethostent(__VA_ARGS__)) +#define gethostid(...) (pthread_testcancel(), gethostid(__VA_ARGS__)) +#define gethostname(...) (pthread_testcancel(), gethostname(__VA_ARGS__)) +#define getlogin(...) (pthread_testcancel(), getlogin(__VA_ARGS__)) +#define getlogin_r(...) (pthread_testcancel(), getlogin_r(__VA_ARGS__)) +#define getnameinfo(...) (pthread_testcancel(), getnameinfo(__VA_ARGS__)) +#define getnetbyaddr(...) (pthread_testcancel(), getnetbyaddr(__VA_ARGS__)) +#define getnetbyname(...) (pthread_testcancel(), getnetbyname(__VA_ARGS__)) +#define getnetent(...) (pthread_testcancel(), getnetent(__VA_ARGS__)) +#define getopt(...) (pthread_testcancel(), getopt(__VA_ARGS__)) +#define getprotobyname(...) (pthread_testcancel(), getprotobyname(__VA_ARGS__)) +#define getprotobynumber(...) (pthread_testcancel(), getprotobynumber(__VA_ARGS__)) +#define getprotoent(...) (pthread_testcancel(), getprotoent(__VA_ARGS__)) +#define getpwent(...) (pthread_testcancel(), getpwent(__VA_ARGS__)) +#define getpwnam(...) (pthread_testcancel(), getpwnam(__VA_ARGS__)) +#define getpwnam_r(...) (pthread_testcancel(), getpwnam_r(__VA_ARGS__)) +#define getpwuid(...) (pthread_testcancel(), getpwuid(__VA_ARGS__)) +#define getpwuid_r(...) (pthread_testcancel(), getpwuid_r(__VA_ARGS__)) +#define gets(...) (pthread_testcancel(), gets(__VA_ARGS__)) +#define getservbyname(...) (pthread_testcancel(), getservbyname(__VA_ARGS__)) +#define getservbyport(...) (pthread_testcancel(), getservbyport(__VA_ARGS__)) +#define getservent(...) (pthread_testcancel(), getservent(__VA_ARGS__)) +#define getutxent(...) (pthread_testcancel(), getutxent(__VA_ARGS__)) +#define getutxid(...) (pthread_testcancel(), getutxid(__VA_ARGS__)) +#define getutxline(...) (pthread_testcancel(), getutxline(__VA_ARGS__)) +#undef getwc +#define getwc(...) (pthread_testcancel(), getwc(__VA_ARGS__)) +#undef getwchar +#define getwchar(...) (pthread_testcancel(), getwchar(__VA_ARGS__)) +#define getwd(...) (pthread_testcancel(), getwd(__VA_ARGS__)) +#define glob(...) (pthread_testcancel(), glob(__VA_ARGS__)) +#define iconv_close(...) (pthread_testcancel(), iconv_close(__VA_ARGS__)) +#define iconv_open(...) (pthread_testcancel(), iconv_open(__VA_ARGS__)) +#define ioctl(...) (pthread_testcancel(), ioctl(__VA_ARGS__)) +#define link(...) (pthread_testcancel(), link(__VA_ARGS__)) +#define localtime(...) (pthread_testcancel(), localtime(__VA_ARGS__)) +#define lseek(...) (pthread_testcancel(), lseek(__VA_ARGS__)) +#define lstat(...) (pthread_testcancel(), lstat(__VA_ARGS__)) +#define mkstemp(...) (pthread_testcancel(), mkstemp(__VA_ARGS__)) +#define nftw(...) (pthread_testcancel(), nftw(__VA_ARGS__)) +#define opendir(...) (pthread_testcancel(), opendir(__VA_ARGS__)) +#define openlog(...) (pthread_testcancel(), openlog(__VA_ARGS__)) +#define pathconf(...) (pthread_testcancel(), pathconf(__VA_ARGS__)) +#define pclose(...) (pthread_testcancel(), pclose(__VA_ARGS__)) +#define perror(...) (pthread_testcancel(), perror(__VA_ARGS__)) +#define popen(...) (pthread_testcancel(), popen(__VA_ARGS__)) +#define posix_fadvise(...) (pthread_testcancel(), posix_fadvise(__VA_ARGS__)) +#define posix_fallocate(...) (pthread_testcancel(), posix_fallocate(__VA_ARGS__)) +#define posix_madvise(...) (pthread_testcancel(), posix_madvise(__VA_ARGS__)) +#define posix_openpt(...) (pthread_testcancel(), posix_openpt(__VA_ARGS__)) +#define posix_spawn(...) (pthread_testcancel(), posix_spawn(__VA_ARGS__)) +#define posix_spawnp(...) (pthread_testcancel(), posix_spawnp(__VA_ARGS__)) +#define posix_trace_clear(...) (pthread_testcancel(), posix_trace_clear(__VA_ARGS__)) +#define posix_trace_close(...) (pthread_testcancel(), posix_trace_close(__VA_ARGS__)) +#define posix_trace_create(...) (pthread_testcancel(), posix_trace_create(__VA_ARGS__)) +#define posix_trace_create_withlog(...) (pthread_testcancel(), posix_trace_create_withlog(__VA_ARGS__)) +#define posix_trace_eventtypelist_getne(...) (pthread_testcancel(), posix_trace_eventtypelist_getne(__VA_ARGS__)) +#define posix_trace_eventtypelist_rewin(...) (pthread_testcancel(), posix_trace_eventtypelist_rewin(__VA_ARGS__)) +#define posix_trace_flush(...) (pthread_testcancel(), posix_trace_flush(__VA_ARGS__)) +#define posix_trace_get_attr(...) (pthread_testcancel(), posix_trace_get_attr(__VA_ARGS__)) +#define posix_trace_get_filter(...) (pthread_testcancel(), posix_trace_get_filter(__VA_ARGS__)) +#define posix_trace_get_status(...) (pthread_testcancel(), posix_trace_get_status(__VA_ARGS__)) +#define posix_trace_getnext_event(...) (pthread_testcancel(), posix_trace_getnext_event(__VA_ARGS__)) +#define posix_trace_open(...) (pthread_testcancel(), posix_trace_open(__VA_ARGS__)) +#define posix_trace_rewind(...) (pthread_testcancel(), posix_trace_rewind(__VA_ARGS__)) +#define posix_trace_setfilter(...) (pthread_testcancel(), posix_trace_setfilter(__VA_ARGS__)) +#define posix_trace_shutdown(...) (pthread_testcancel(), posix_trace_shutdown(__VA_ARGS__)) +#define posix_trace_timedgetnext_event(...) (pthread_testcancel(), posix_trace_timedgetnext_event(__VA_ARGS__)) +#define posix_typed_mem_open(...) (pthread_testcancel(), posix_typed_mem_open(__VA_ARGS__)) +#define printf(...) (pthread_testcancel(), printf(__VA_ARGS__)) +#define putc(...) (pthread_testcancel(), putc(__VA_ARGS__)) +#define putc_unlocked(...) (pthread_testcancel(), putc_unlocked(__VA_ARGS__)) +#define putchar(...) (pthread_testcancel(), putchar(__VA_ARGS__)) +#define putchar_unlocked(...) (pthread_testcancel(), putchar_unlocked(__VA_ARGS__)) +#define puts(...) (pthread_testcancel(), puts(__VA_ARGS__)) +#define pututxline(...) (pthread_testcancel(), pututxline(__VA_ARGS__)) +#undef putwc +#define putwc(...) (pthread_testcancel(), putwc(__VA_ARGS__)) +#undef putwchar +#define putwchar(...) (pthread_testcancel(), putwchar(__VA_ARGS__)) +#define readdir(...) (pthread_testcancel(), readdir(__VA_ARSG__)) +#define readdir_r(...) (pthread_testcancel(), readdir_r(__VA_ARGS__)) +#define remove(...) (pthread_testcancel(), remove(__VA_ARGS__)) +#define rename(...) (pthread_testcancel(), rename(__VA_ARGS__)) +#define rewind(...) (pthread_testcancel(), rewind(__VA_ARGS__)) +#define rewinddir(...) (pthread_testcancel(), rewinddir(__VA_ARGS__)) +#define scanf(...) (pthread_testcancel(), scanf(__VA_ARGS__)) +#define seekdir(...) (pthread_testcancel(), seekdir(__VA_ARGS__)) +#define semop(...) (pthread_testcancel(), semop(__VA_ARGS__)) +#define setgrent(...) (pthread_testcancel(), setgrent(__VA_ARGS__)) +#define sethostent(...) (pthread_testcancel(), sethostemt(__VA_ARGS__)) +#define setnetent(...) (pthread_testcancel(), setnetent(__VA_ARGS__)) +#define setprotoent(...) (pthread_testcancel(), setprotoent(__VA_ARGS__)) +#define setpwent(...) (pthread_testcancel(), setpwent(__VA_ARGS__)) +#define setservent(...) (pthread_testcancel(), setservent(__VA_ARGS__)) +#define setutxent(...) (pthread_testcancel(), setutxent(__VA_ARGS__)) +#define stat(...) (pthread_testcancel(), stat(__VA_ARGS__)) +#define strerror(...) (pthread_testcancel(), strerror(__VA_ARGS__)) +#define strerror_r(...) (pthread_testcancel(), strerror_r(__VA_ARGS__)) +#define strftime(...) (pthread_testcancel(), strftime(__VA_ARGS__)) +#define symlink(...) (pthread_testcancel(), symlink(__VA_ARGS__)) +#define sync(...) (pthread_testcancel(), sync(__VA_ARGS__)) +#define syslog(...) (pthread_testcancel(), syslog(__VA_ARGS__)) +#define tmpfile(...) (pthread_testcancel(), tmpfile(__VA_ARGS__)) +#define tmpnam(...) (pthread_testcancel(), tmpnam(__VA_ARGS__)) +#define ttyname(...) (pthread_testcancel(), ttyname(__VA_ARGS__)) +#define ttyname_r(...) (pthread_testcancel(), ttyname_r(__VA_ARGS__)) +#define tzset(...) (pthread_testcancel(), tzset(__VA_ARGS__)) +#define ungetc(...) (pthread_testcancel(), ungetc(__VA_ARGS__)) +#define ungetwc(...) (pthread_testcancel(), ungetwc(__VA_ARGS__)) +#define unlink(...) (pthread_testcancel(), unlink(__VA_ARGS__)) +#define vfprintf(...) (pthread_testcancel(), vfprintf(__VA_ARGS__)) +#define vfwprintf(...) (pthread_testcancel(), vfwprintf(__VA_ARGS__)) +#define vprintf(...) (pthread_testcancel(), vprintf(__VA_ARGS__)) +#define vwprintf(...) (pthread_testcancel(), vwprintf(__VA_ARGS__)) +#define wcsftime(...) (pthread_testcancel(), wcsftime(__VA_ARGS__)) +#define wordexp(...) (pthread_testcancel(), wordexp(__VA_ARGS__)) +#define wprintf(...) (pthread_testcancel(), wprintf(__VA_ARGS__)) +#define wscanf(...) (pthread_testcancel(), wscanf(__VA_ARGS__)) #endif -#define PtW32CatchAll \ - catch( ptw32_exception & ) { throw; } \ - catch( ... ) - -#else /* _MSC_VER */ - -#define catch( E ) \ - catch( ptw32_exception & ) { throw; } \ - catch( E ) - -#endif /* _MSC_VER */ - -#endif /* __CLEANUP_CXX */ - -#endif /* ! PTW32_BUILD */ - #ifdef __cplusplus -} /* End of extern "C" */ -#endif /* __cplusplus */ - -#ifdef PTW32__HANDLE_DEF -# undef HANDLE +} #endif -#ifdef PTW32__DWORD_DEF -# undef DWORD -#endif - -#undef PTW32_LEVEL -#undef PTW32_LEVEL_MAX - -#endif /* ! RC_INVOKED */ -#endif /* PTHREAD_H */ +#endif /* WIN_PTHREADS_H */ diff --git a/orte/include/win32/pthread_compat.h b/orte/include/win32/pthread_compat.h new file mode 100644 index 0000000..8a3eb61 --- /dev/null +++ b/orte/include/win32/pthread_compat.h @@ -0,0 +1,86 @@ +/* + Copyright (c) 2011 mingw-w64 project + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. +*/ + +/* + * Parts of this library are derived by: + * + * Posix Threads library for Microsoft Windows + * + * Use at own risk, there is no implied warranty to this code. + * It uses undocumented features of Microsoft Windows that can change + * at any time in the future. + * + * (C) 2010 Lockless Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without modification, + * are permitted provided that the following conditions are met: + * + * + * * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following disclaimer in the documentation + * and/or other materials provided with the distribution. + * * Neither the name of Lockless Inc. nor the names of its contributors may be + * used to endorse or promote products derived from this software without + * specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AN + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED + * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, + * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF + * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE + * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED + * OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef WIN_PTHREADS_PTHREAD_COMPAT_H +#define WIN_PTHREADS_PTHREAD_COMPAT_H + +#ifdef __GNUC__ + +#define WINPTHREADS_INLINE inline +#define WINPTHREADS_ATTRIBUTE(X) __attribute__(X) +#define WINPTHREADS_SECTION(X) __section__(X) + +#elif _MSC_VER + +#include "pthread_time.h" + +#ifdef _WIN64 +typedef __int64 pid_t; +#else +typedef int pid_t; +#endif +typedef int clockid_t; + +#define WINPTHREADS_INLINE __inline +#define WINPTHREADS_ATTRIBUTE(X) __declspec X +#define WINPTHREADS_SECTION(X) allocate(X) + +#endif + +#endif diff --git a/orte/include/win32/pthread_time.h b/orte/include/win32/pthread_time.h new file mode 100644 index 0000000..b0c9d78 --- /dev/null +++ b/orte/include/win32/pthread_time.h @@ -0,0 +1,98 @@ +/* + Copyright (c) 2011 mingw-w64 project + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. +*/ + +#include + +#ifndef WIN_PTHREADS_TIME_H +#define WIN_PTHREADS_TIME_H + +/* Posix timers are supported */ +#ifndef _POSIX_TIMERS +#define _POSIX_TIMERS 200809L +#endif + +/* Monotonic clocks are available. */ +#ifndef _POSIX_MONOTONIC_CLOCK +#define _POSIX_MONOTONIC_CLOCK 200809L +#endif + +/* CPU-time clocks are available. */ +#ifndef _POSIX_CPUTIME +#define _POSIX_CPUTIME 200809L +#endif + +/* Clock support in threads are available. */ +#ifndef _POSIX_THREAD_CPUTIME +#define _POSIX_THREAD_CPUTIME 200809L +#endif + +#ifndef __clockid_t_defined +typedef int clockid_t; +#define __clockid_t_defined 1 +#endif /* __clockid_t_defined */ + +#ifndef TIMER_ABSTIME +#define TIMER_ABSTIME 1 +#endif + +#ifndef CLOCK_REALTIME +#define CLOCK_REALTIME 0 +#endif + +#ifndef CLOCK_MONOTONIC +#define CLOCK_MONOTONIC 1 +#endif + +#ifndef CLOCK_PROCESS_CPUTIME_ID +#define CLOCK_PROCESS_CPUTIME_ID 2 +#endif + +#ifndef CLOCK_THREAD_CPUTIME_ID +#define CLOCK_THREAD_CPUTIME_ID 3 +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/* Make sure we provide default for WINPTHREAD_API, if not defined. */ +#pragma push_macro("WINPTHREAD_API") +#ifndef WINPTHREAD_API +#define WINPTHREAD_API +#endif + +/* These should really be dllimport'ed if using winpthread dll */ +int __cdecl WINPTHREAD_API nanosleep(const struct timespec *request, struct timespec *remain); + +int __cdecl WINPTHREAD_API clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *request, struct timespec *remain); +int __cdecl WINPTHREAD_API clock_getres(clockid_t clock_id, struct timespec *res); +int __cdecl WINPTHREAD_API clock_gettime(clockid_t clock_id, struct timespec *tp); +int __cdecl WINPTHREAD_API clock_settime(clockid_t clock_id, const struct timespec *tp); + +#pragma pop_macro("WINPTHREAD_API") + +#ifdef __cplusplus +} +#endif + +#endif /* WIN_PTHREADS_TIME_H */ + diff --git a/orte/include/win32/pthread_unistd.h b/orte/include/win32/pthread_unistd.h new file mode 100644 index 0000000..02bb5b8 --- /dev/null +++ b/orte/include/win32/pthread_unistd.h @@ -0,0 +1,212 @@ +/* + Copyright (c) 2011 mingw-w64 project + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. +*/ + +#ifndef WIN_PTHREADS_UNISTD_H +#define WIN_PTHREADS_UNISTD_H + +/* Set defines described by the POSIX Threads Extension (1003.1c-1995) */ +/* _SC_THREADS + Basic support for POSIX threads is available. The functions + + pthread_atfork(), + pthread_attr_destroy(), + pthread_attr_getdetachstate(), + pthread_attr_getschedparam(), + pthread_attr_init(), + pthread_attr_setdetachstate(), + pthread_attr_setschedparam(), + pthread_cancel(), + pthread_cleanup_push(), + pthread_cleanup_pop(), + pthread_cond_broadcast(), + pthread_cond_destroy(), + pthread_cond_init(), + pthread_cond_signal(), + pthread_cond_timedwait(), + pthread_cond_wait(), + pthread_condattr_destroy(), + pthread_condattr_init(), + pthread_create(), + pthread_detach(), + pthread_equal(), + pthread_exit(), + pthread_getspecific(), + pthread_join(, + pthread_key_create(), + pthread_key_delete(), + pthread_mutex_destroy(), + pthread_mutex_init(), + pthread_mutex_lock(), + pthread_mutex_trylock(), + pthread_mutex_unlock(), + pthread_mutexattr_destroy(), + pthread_mutexattr_init(), + pthread_once(), + pthread_rwlock_destroy(), + pthread_rwlock_init(), + pthread_rwlock_rdlock(), + pthread_rwlock_tryrdlock(), + pthread_rwlock_trywrlock(), + pthread_rwlock_unlock(), + pthread_rwlock_wrlock(), + pthread_rwlockattr_destroy(), + pthread_rwlockattr_init(), + pthread_self(), + pthread_setcancelstate(), + pthread_setcanceltype(), + pthread_setspecific(), + pthread_testcancel() + + are present. */ +#undef _POSIX_THREADS +#define _POSIX_THREADS 200112L + +/* _SC_READER_WRITER_LOCKS + This option implies the _POSIX_THREADS option. Conversely, under + POSIX 1003.1-2001 the _POSIX_THREADS option implies this option. + + The functions + pthread_rwlock_destroy(), + pthread_rwlock_init(), + pthread_rwlock_rdlock(), + pthread_rwlock_tryrdlock(), + pthread_rwlock_trywrlock(), + pthread_rwlock_unlock(), + pthread_rwlock_wrlock(), + pthread_rwlockattr_destroy(), + pthread_rwlockattr_init() + + are present. +*/ +#undef _POSIX_READER_WRITER_LOCKS +#define _POSIX_READER_WRITER_LOCKS 200112L + +/* _SC_SPIN_LOCKS + This option implies the _POSIX_THREADS and _POSIX_THREAD_SAFE_FUNCTIONS + options. The functions + + pthread_spin_destroy(), + pthread_spin_init(), + pthread_spin_lock(), + pthread_spin_trylock(), + pthread_spin_unlock() + + are present. */ +#undef _POSIX_SPIN_LOCKS +#define _POSIX_SPIN_LOCKS 200112L + +/* _SC_BARRIERS + This option implies the _POSIX_THREADS and _POSIX_THREAD_SAFE_FUNCTIONS + options. The functions + + pthread_barrier_destroy(), + pthread_barrier_init(), + pthread_barrier_wait(), + pthread_barrierattr_destroy(), + pthread_barrierattr_init() + + are present. +*/ +#undef _POSIX_BARRIERS +#define _POSIX_BARRIERS 200112L + +/* _SC_THREAD_SAFE_FUNCTIONS + Affected functions are + + readdir_r(), + getgrgid_r(), + getgrnam_r(), + getpwnam_r(), + getpwuid_r(), + flockfile(), + ftrylockfile(), + funlockfile(), + getc_unlocked(), + getchar_unlocked(), + putc_unlocked(), + putchar_unlocked(), + strerror_r(), +*/ +#undef _POSIX_THREAD_SAFE_FUNCTIONS +#define _POSIX_THREAD_SAFE_FUNCTIONS 200112L + +/* _SC_TIMEOUTS + The functions + + mq_timedreceive(), - not supported + mq_timedsend(), - not supported + posix_trace_timedgetnext_event(), - not supported + pthread_mutex_timedlock(), + pthread_rwlock_timedrdlock(), + pthread_rwlock_timedwrlock(), + sem_timedwait(), + + are present. */ +#undef _POSIX_TIMEOUTS +#define _POSIX_TIMEOUTS 200112L + +/* _SC_TIMERS - not supported + The functions + + clock_getres(), + clock_gettime(), + clock_settime(), + nanosleep(), + timer_create(), + timer_delete(), + timer_gettime(), + timer_getoverrun(), + timer_settime() + + are present. */ +/* #undef _POSIX_TIMERS */ + +/* _SC_CLOCK_SELECTION + This option implies the _POSIX_TIMERS option. The functions + + pthread_condattr_getclock(), + pthread_condattr_setclock(), + clock_nanosleep() + + are present. +*/ +#undef _POSIX_CLOCK_SELECTION +#define _POSIX_CLOCK_SELECTION 200112 + +/* _SC_SEMAPHORES + The include file is present. The functions + + sem_close(), + sem_destroy(), + sem_getvalue(), + sem_init(), + sem_open(), + sem_post(), + sem_trywait(), + sem_unlink(), + sem_wait() + + are present. */ +#undef _POSIX_SEMAPHORES +#define _POSIX_SEMAPHORES 200112 + +#endif /* WIN_PTHREADS_UNISTD_H */ diff --git a/orte/include/win32/sched.h b/orte/include/win32/sched.h index dfb8e93..a7f32f8 100644 --- a/orte/include/win32/sched.h +++ b/orte/include/win32/sched.h @@ -1,178 +1,79 @@ /* - * Module: sched.h - * - * Purpose: - * Provides an implementation of POSIX realtime extensions - * as defined in - * - * POSIX 1003.1b-1993 (POSIX.1b) - * - * -------------------------------------------------------------------------- - * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright(C) 1998 John E. Bossom - * Copyright(C) 1999,2005 Pthreads-win32 contributors - * - * Contact Email: rpj@callisto.canberra.edu.au - * - * The current list of contributors is contained - * in the file CONTRIBUTORS included with the source - * code distribution. The list can also be seen at the - * following World Wide Web location: - * http://sources.redhat.com/pthreads-win32/contributors.html - * - * 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 - */ -#ifndef _SCHED_H -#define _SCHED_H - -#undef PTW32_LEVEL - -#if defined(_POSIX_SOURCE) -#define PTW32_LEVEL 0 -/* Early POSIX */ -#endif - -#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 199309 -#undef PTW32_LEVEL -#define PTW32_LEVEL 1 -/* Include 1b, 1c and 1d */ -#endif - -#if defined(INCLUDE_NP) -#undef PTW32_LEVEL -#define PTW32_LEVEL 2 -/* Include Non-Portable extensions */ -#endif + Copyright (c) 2011-2013 mingw-w64 project + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. +*/ + +#include +#include +#include -#define PTW32_LEVEL_MAX 3 +#include +#include +#include -#if !defined(PTW32_LEVEL) -#define PTW32_LEVEL PTW32_LEVEL_MAX -/* Include everything */ -#endif +#include +#ifndef WIN_PTHREADS_SCHED_H +#define WIN_PTHREADS_SCHED_H -#if __GNUC__ && ! defined (__declspec) -# error Please upgrade your GNU compiler to one that supports __declspec. -#endif +#ifndef SCHED_OTHER +/* Some POSIX realtime extensions, mostly stubbed */ +#define SCHED_OTHER 0 +#define SCHED_FIFO 1 +#define SCHED_RR 2 +#define SCHED_MIN SCHED_OTHER +#define SCHED_MAX SCHED_RR -/* - * When building the DLL code, you should define PTW32_BUILD so that - * the variables/functions are exported correctly. When using the DLL, - * do NOT define PTW32_BUILD, and then the variables/functions will - * be imported correctly. - */ -#ifndef PTW32_STATIC_LIB -# ifdef PTW32_BUILD -# define PTW32_DLLPORT __declspec (dllexport) -# else -# define PTW32_DLLPORT __declspec (dllimport) -# endif -#else -# define PTW32_DLLPORT -#endif +struct sched_param { + int sched_priority; +}; -/* - * This is a duplicate of what is in the autoconf config.h, - * which is only used when building the pthread-win32 libraries. - */ - -#ifndef PTW32_CONFIG_H -# if defined(WINCE) -# define NEED_ERRNO -# define NEED_SEM -# endif -# if defined(_UWIN) || defined(__MINGW32__) -# define HAVE_MODE_T -# endif +#ifdef __cplusplus +extern "C" { #endif -/* - * - */ - -#if PTW32_LEVEL >= PTW32_LEVEL_MAX -#ifdef NEED_ERRNO -#include "need_errno.h" +#if defined DLL_EXPORT && !defined (WINPTHREAD_EXPORT_ALL_DEBUG) +#ifdef IN_WINPTHREAD +#define WINPTHREAD_SCHED_API __declspec(dllexport) #else -#include +#define WINPTHREAD_SCHED_API __declspec(dllimport) #endif -#endif /* PTW32_LEVEL >= PTW32_LEVEL_MAX */ - -#if defined(__MINGW32__) || defined(_UWIN) -#if PTW32_LEVEL >= PTW32_LEVEL_MAX -/* For pid_t */ -# include -/* Required by Unix 98 */ -# include -#endif /* PTW32_LEVEL >= PTW32_LEVEL_MAX */ #else -typedef int pid_t; +#define WINPTHREAD_SCHED_API #endif -/* Thread scheduling policies */ - -enum { - SCHED_OTHER = 0, - SCHED_FIFO, - SCHED_RR, - SCHED_MIN = SCHED_OTHER, - SCHED_MAX = SCHED_RR -}; - -struct sched_param { - int sched_priority; -}; +int WINPTHREAD_SCHED_API sched_yield(void); +int WINPTHREAD_SCHED_API sched_get_priority_min(int pol); +int WINPTHREAD_SCHED_API sched_get_priority_max(int pol); +int WINPTHREAD_SCHED_API sched_getscheduler(pid_t pid); +int WINPTHREAD_SCHED_API sched_setscheduler(pid_t pid, int pol, const struct sched_param *param); #ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ - -PTW32_DLLPORT int __cdecl sched_yield (void); - -PTW32_DLLPORT int __cdecl sched_get_priority_min (int policy); - -PTW32_DLLPORT int __cdecl sched_get_priority_max (int policy); - -PTW32_DLLPORT int __cdecl sched_setscheduler (pid_t pid, int policy); +} +#endif -PTW32_DLLPORT int __cdecl sched_getscheduler (pid_t pid); +#endif -/* - * Note that this macro returns ENOTSUP rather than - * ENOSYS as might be expected. However, returning ENOSYS - * should mean that sched_get_priority_{min,max} are - * not implemented as well as sched_rr_get_interval. - * This is not the case, since we just don't support - * round-robin scheduling. Therefore I have chosen to - * return the same value as sched_setscheduler when - * SCHED_RR is passed to it. - */ -#define sched_rr_get_interval(_pid, _interval) \ +#ifndef sched_rr_get_interval +#define sched_rr_get_interval(_p, _i) \ ( errno = ENOTSUP, (int) -1 ) +#endif - -#ifdef __cplusplus -} /* End of extern "C" */ -#endif /* __cplusplus */ - -#undef PTW32_LEVEL -#undef PTW32_LEVEL_MAX - -#endif /* !_SCHED_H */ - +#endif /* WIN_PTHREADS_SCHED_H */ diff --git a/orte/include/win32/semaphore.h b/orte/include/win32/semaphore.h index a3330a6..c994b13 100644 --- a/orte/include/win32/semaphore.h +++ b/orte/include/win32/semaphore.h @@ -1,166 +1,81 @@ /* - * Module: semaphore.h - * - * Purpose: - * Semaphores aren't actually part of the PThreads standard. - * They are defined by the POSIX Standard: - * - * POSIX 1003.1b-1993 (POSIX.1b) - * - * -------------------------------------------------------------------------- - * - * Pthreads-win32 - POSIX Threads Library for Win32 - * Copyright(C) 1998 John E. Bossom - * Copyright(C) 1999,2005 Pthreads-win32 contributors - * - * Contact Email: rpj@callisto.canberra.edu.au - * - * The current list of contributors is contained - * in the file CONTRIBUTORS included with the source - * code distribution. The list can also be seen at the - * following World Wide Web location: - * http://sources.redhat.com/pthreads-win32/contributors.html - * - * 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 - */ -#if !defined( SEMAPHORE_H ) -#define SEMAPHORE_H - -#undef PTW32_LEVEL - -#if defined(_POSIX_SOURCE) -#define PTW32_LEVEL 0 -/* Early POSIX */ -#endif - -#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 199309 -#undef PTW32_LEVEL -#define PTW32_LEVEL 1 -/* Include 1b, 1c and 1d */ -#endif - -#if defined(INCLUDE_NP) -#undef PTW32_LEVEL -#define PTW32_LEVEL 2 -/* Include Non-Portable extensions */ -#endif + Copyright (c) 2011 mingw-w64 project + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. +*/ + +#ifndef WIN_PTHREADS_SEMAPHORE_H +#define WIN_PTHREADS_SEMAPHORE_H -#define PTW32_LEVEL_MAX 3 - -#if !defined(PTW32_LEVEL) -#define PTW32_LEVEL PTW32_LEVEL_MAX -/* Include everything */ -#endif - -#if __GNUC__ && ! defined (__declspec) -# error Please upgrade your GNU compiler to one that supports __declspec. +#ifdef __cplusplus +extern "C" { #endif -/* - * When building the DLL code, you should define PTW32_BUILD so that - * the variables/functions are exported correctly. When using the DLL, - * do NOT define PTW32_BUILD, and then the variables/functions will - * be imported correctly. - */ -#ifndef PTW32_STATIC_LIB -# ifdef PTW32_BUILD -# define PTW32_DLLPORT __declspec (dllexport) -# else -# define PTW32_DLLPORT __declspec (dllimport) -# endif +#if defined DLL_EXPORT && !defined (WINPTHREAD_EXPORT_ALL_DEBUG) +#ifdef IN_WINPTHREAD +#define WINPTHREAD_SEMA_API __declspec(dllexport) #else -# define PTW32_DLLPORT +#define WINPTHREAD_SEMA_API __declspec(dllimport) #endif - -/* - * This is a duplicate of what is in the autoconf config.h, - * which is only used when building the pthread-win32 libraries. - */ - -#ifndef PTW32_CONFIG_H -# if defined(WINCE) -# define NEED_ERRNO -# define NEED_SEM -# endif -# if defined(_UWIN) || defined(__MINGW32__) -# define HAVE_MODE_T -# endif -#endif - -/* - * - */ - -#if PTW32_LEVEL >= PTW32_LEVEL_MAX -#ifdef NEED_ERRNO -#include "need_errno.h" #else -#include +#define WINPTHREAD_SEMA_API #endif -#endif /* PTW32_LEVEL >= PTW32_LEVEL_MAX */ -#define _POSIX_SEMAPHORES +/* Set this to 0 to disable it */ +#define USE_SEM_CriticalSection_SpinCount 100 -#ifdef __cplusplus -extern "C" -{ -#endif /* __cplusplus */ +#define SEM_VALUE_MAX INT_MAX -#ifndef HAVE_MODE_T -typedef unsigned int mode_t; +#ifndef _MODE_T_ +#define _MODE_T_ +typedef unsigned short mode_t; #endif +typedef void *sem_t; -typedef struct sem_t_ * sem_t; +#define SEM_FAILED NULL -PTW32_DLLPORT int __cdecl sem_init (sem_t * sem, - int pshared, - unsigned int value); +int WINPTHREAD_SEMA_API sem_init(sem_t * sem, int pshared, unsigned int value); -PTW32_DLLPORT int __cdecl sem_destroy (sem_t * sem); +int WINPTHREAD_SEMA_API sem_destroy(sem_t *sem); -PTW32_DLLPORT int __cdecl sem_trywait (sem_t * sem); +int WINPTHREAD_SEMA_API sem_trywait(sem_t *sem); -PTW32_DLLPORT int __cdecl sem_wait (sem_t * sem); +int WINPTHREAD_SEMA_API sem_wait(sem_t *sem); -PTW32_DLLPORT int __cdecl sem_timedwait (sem_t * sem, - const struct timespec * abstime); +int WINPTHREAD_SEMA_API sem_timedwait(sem_t * sem, const struct timespec *t); -PTW32_DLLPORT int __cdecl sem_post (sem_t * sem); +int WINPTHREAD_SEMA_API sem_post(sem_t *sem); -PTW32_DLLPORT int __cdecl sem_post_multiple (sem_t * sem, - int count); +int WINPTHREAD_SEMA_API sem_post_multiple(sem_t *sem, int count); -PTW32_DLLPORT int __cdecl sem_open (const char * name, - int oflag, - mode_t mode, - unsigned int value); +/* yes, it returns a semaphore (or SEM_FAILED) */ +sem_t * WINPTHREAD_SEMA_API sem_open(const char * name, int oflag, mode_t mode, unsigned int value); -PTW32_DLLPORT int __cdecl sem_close (sem_t * sem); +int WINPTHREAD_SEMA_API sem_close(sem_t * sem); -PTW32_DLLPORT int __cdecl sem_unlink (const char * name); +int WINPTHREAD_SEMA_API sem_unlink(const char * name); -PTW32_DLLPORT int __cdecl sem_getvalue (sem_t * sem, - int * sval); +int WINPTHREAD_SEMA_API sem_getvalue(sem_t * sem, int * sval); #ifdef __cplusplus -} /* End of extern "C" */ -#endif /* __cplusplus */ - -#undef PTW32_LEVEL -#undef PTW32_LEVEL_MAX +} +#endif -#endif /* !SEMAPHORE_H */ +#endif /* WIN_PTHREADS_SEMAPHORE_H */ diff --git a/orte/liborte/Makefile.omk b/orte/liborte/Makefile.omk index af0bc23..5d26dea 100644 --- a/orte/liborte/Makefile.omk +++ b/orte/liborte/Makefile.omk @@ -3,7 +3,7 @@ default_CONFIG += CONFIG_OC_ETH_ORTE_SOLIB=n ifeq ($(TARGET_OS),win32) renamed_include_HEADERS = \ -../contrib/win_pthread/pthread.dll->../lib/pthread.dll +../contrib/win_pthread/libpthread.a->../lib/libpthread.a endif #TARGET_OS INCLUDES = -I $(srcdir)/../include -- 2.39.2