mirror of https://github.com/PCSX2/pcsx2.git
395 lines
15 KiB
Plaintext
395 lines
15 KiB
Plaintext
/* 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
|
||
*/
|
||
|
||
#include <winver.h>
|
||
#include "pthread.h"
|
||
|
||
/*
|
||
* Note: the correct __CLEANUP_* macro must be defined corresponding to
|
||
* the definition used for the object file builds. This is done in the
|
||
* relevent makefiles for the command line builds, but users should ensure
|
||
* that their resource compiler knows what it is too.
|
||
* If using the default (no __CLEANUP_* defined), pthread.h will define it
|
||
* as __CLEANUP_C.
|
||
*/
|
||
|
||
#if defined(__MINGW64__)
|
||
# define PTW32_ARCH "x64 (mingw64)"
|
||
#elif defined (__MINGW32__)
|
||
# define PTW32_ARCH "x86 (mingw32)"
|
||
#endif
|
||
#if defined(PTW32_ARCHx64)
|
||
# define PTW32_ARCH "x64"
|
||
#elif defined(PTW32_ARCHx86)
|
||
# define PTW32_ARCH "x86"
|
||
#endif
|
||
|
||
#if defined(PTW32_RC_MSC)
|
||
# if defined(__CLEANUP_C)
|
||
# define PTW32_VERSIONINFO_NAME "pthreadVC2.DLL\0"
|
||
# define PTW32_VERSIONINFO_DESCRIPTION "MS C " PTW32_ARCH "\0"
|
||
# elif defined(__CLEANUP_CXX)
|
||
# define PTW32_VERSIONINFO_NAME "pthreadVCE2.DLL\0"
|
||
# define PTW32_VERSIONINFO_DESCRIPTION "MS C++ " PTW32_ARCH "\0"
|
||
# elif defined(__CLEANUP_SEH)
|
||
# define PTW32_VERSIONINFO_NAME "pthreadVSE2.DLL\0"
|
||
# define PTW32_VERSIONINFO_DESCRIPTION "MS C SEH " PTW32_ARCH "\0"
|
||
# else
|
||
# error Resource compiler doesn't know which cleanup style you're using - see version.rc
|
||
# endif
|
||
#elif defined(__GNUC__)
|
||
# if defined(__CLEANUP_C)
|
||
# define PTW32_VERSIONINFO_NAME "pthreadGC2.DLL\0"
|
||
# define PTW32_VERSIONINFO_DESCRIPTION "GNU C " PTW32_ARCH "\0"
|
||
# elif defined(__CLEANUP_CXX)
|
||
# define PTW32_VERSIONINFO_NAME "pthreadGCE2.DLL\0"
|
||
# define PTW32_VERSIONINFO_DESCRIPTION "GNU C++ " PTW32_ARCH "\0"
|
||
# else
|
||
# error Resource compiler doesn't know which cleanup style you're using - see version.rc
|
||
# endif
|
||
#elif defined(__BORLANDC__)
|
||
# if defined(__CLEANUP_C)
|
||
# define PTW32_VERSIONINFO_NAME "pthreadBC2.DLL\0"
|
||
# define PTW32_VERSIONINFO_DESCRIPTION "BORLAND C " PTW32_ARCH "\0"
|
||
# elif defined(__CLEANUP_CXX)
|
||
# define PTW32_VERSIONINFO_NAME "pthreadBCE2.DLL\0"
|
||
# define PTW32_VERSIONINFO_DESCRIPTION "BORLAND C++ " PTW32_ARCH "\0"
|
||
# else
|
||
# error Resource compiler doesn't know which cleanup style you're using - see version.rc
|
||
# endif
|
||
#elif defined(__WATCOMC__)
|
||
# if defined(__CLEANUP_C)
|
||
# define PTW32_VERSIONINFO_NAME "pthreadWC2.DLL\0"
|
||
# define PTW32_VERSIONINFO_DESCRIPTION "WATCOM C " PTW32_ARCH "\0"
|
||
# elif defined(__CLEANUP_CXX)
|
||
# define PTW32_VERSIONINFO_NAME "pthreadWCE2.DLL\0"
|
||
# define PTW32_VERSIONINFO_DESCRIPTION "WATCOM C++ " PTW32_ARCH "\0"
|
||
# else
|
||
# error Resource compiler doesn't know which cleanup style you're using - see version.rc
|
||
# endif
|
||
#else
|
||
# error Resource compiler doesn't know which compiler you're using - see version.rc
|
||
#endif
|
||
|
||
|
||
VS_VERSION_INFO VERSIONINFO
|
||
FILEVERSION PTW32_VERSION
|
||
PRODUCTVERSION PTW32_VERSION
|
||
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
|
||
FILEFLAGS 0
|
||
FILEOS VOS__WINDOWS32
|
||
FILETYPE VFT_DLL
|
||
BEGIN
|
||
BLOCK "StringFileInfo"
|
||
BEGIN
|
||
BLOCK "040904b0"
|
||
BEGIN
|
||
VALUE "ProductName", "POSIX Threads for Windows LPGL\0"
|
||
VALUE "ProductVersion", PTW32_VERSION_STRING
|
||
VALUE "FileVersion", PTW32_VERSION_STRING
|
||
VALUE "FileDescription", PTW32_VERSIONINFO_DESCRIPTION
|
||
VALUE "InternalName", PTW32_VERSIONINFO_NAME
|
||
VALUE "OriginalFilename", PTW32_VERSIONINFO_NAME
|
||
VALUE "CompanyName", "Open Source Software community LGPL\0"
|
||
VALUE "LegalCopyright", "Copyright (C) Project contributors 2012\0"
|
||
VALUE "Comments", "http://sourceware.org/pthreads-win32/\0"
|
||
END
|
||
END
|
||
BLOCK "VarFileInfo"
|
||
BEGIN
|
||
VALUE "Translation", 0x409, 1200
|
||
END
|
||
END
|
||
|
||
/*
|
||
VERSIONINFO Resource
|
||
|
||
The VERSIONINFO resource-definition statement creates a version-information
|
||
resource. The resource contains such information about the file as its
|
||
version number, its intended operating system, and its original filename.
|
||
The resource is intended to be used with the Version Information functions.
|
||
|
||
versionID VERSIONINFO fixed-info { block-statement...}
|
||
|
||
versionID
|
||
Version-information resource identifier. This value must be 1.
|
||
|
||
fixed-info
|
||
Version information, such as the file version and the intended operating
|
||
system. This parameter consists of the following statements.
|
||
|
||
|
||
Statement Description
|
||
--------------------------------------------------------------------------
|
||
FILEVERSION
|
||
version Binary version number for the file. The version
|
||
consists of two 32-bit integers, defined by four
|
||
16-bit integers. For example, "FILEVERSION 3,10,0,61"
|
||
is translated into two doublewords: 0x0003000a and
|
||
0x0000003d, in that order. Therefore, if version is
|
||
defined by the DWORD values dw1 and dw2, they need
|
||
to appear in the FILEVERSION statement as follows:
|
||
HIWORD(dw1), LOWORD(dw1), HIWORD(dw2), LOWORD(dw2).
|
||
PRODUCTVERSION
|
||
version Binary version number for the product with which the
|
||
file is distributed. The version parameter is two
|
||
32-bit integers, defined by four 16-bit integers.
|
||
For more information about version, see the
|
||
FILEVERSION description.
|
||
FILEFLAGSMASK
|
||
fileflagsmask Bits in the FILEFLAGS statement are valid. If a bit
|
||
is set, the corresponding bit in FILEFLAGS is valid.
|
||
FILEFLAGSfileflags Attributes of the file. The fileflags parameter must
|
||
be the combination of all the file flags that are
|
||
valid at compile time. For 16-bit Windows, this
|
||
value is 0x3f.
|
||
FILEOSfileos Operating system for which this file was designed.
|
||
The fileos parameter can be one of the operating
|
||
system values given in the Remarks section.
|
||
FILETYPEfiletype General type of file. The filetype parameter can be
|
||
one of the file type values listed in the Remarks
|
||
section.
|
||
FILESUBTYPE
|
||
subtype Function of the file. The subtype parameter is zero
|
||
unless the type parameter in the FILETYPE statement
|
||
is VFT_DRV, VFT_FONT, or VFT_VXD. For a list of file
|
||
subtype values, see the Remarks section.
|
||
|
||
block-statement
|
||
Specifies one or more version-information blocks. A block can contain
|
||
string information or variable information. For more information, see
|
||
StringFileInfo Block or VarFileInfo Block.
|
||
|
||
Remarks
|
||
|
||
To use the constants specified with the VERSIONINFO statement, you must
|
||
include the Winver.h or Windows.h header file in the resource-definition file.
|
||
|
||
The following list describes the parameters used in the VERSIONINFO statement:
|
||
|
||
fileflags
|
||
A combination of the following values.
|
||
|
||
Value Description
|
||
|
||
VS_FF_DEBUG File contains debugging information or is compiled
|
||
with debugging features enabled.
|
||
VS_FF_PATCHED File has been modified and is not identical to the
|
||
original shipping file of the same version number.
|
||
VS_FF_PRERELEASE File is a development version, not a commercially
|
||
released product.
|
||
VS_FF_PRIVATEBUILD File was not built using standard release procedures.
|
||
If this value is given, the StringFileInfo block must
|
||
contain a PrivateBuild string.
|
||
VS_FF_SPECIALBUILD File was built by the original company using standard
|
||
release procedures but is a variation of the standard
|
||
file of the same version number. If this value is
|
||
given, the StringFileInfo block must contain a
|
||
SpecialBuild string.
|
||
|
||
fileos
|
||
One of the following values.
|
||
|
||
Value Description
|
||
|
||
VOS_UNKNOWN The operating system for which the file was designed
|
||
is unknown.
|
||
VOS_DOS File was designed for MS-DOS.
|
||
VOS_NT File was designed for Windows Server 2003 family,
|
||
Windows XP, Windows 2000, or Windows NT.
|
||
VOS__WINDOWS16 File was designed for 16-bit Windows.
|
||
VOS__WINDOWS32 File was designed for 32-bit Windows.
|
||
VOS_DOS_WINDOWS16 File was designed for 16-bit Windows running with
|
||
MS-DOS.
|
||
VOS_DOS_WINDOWS32 File was designed for 32-bit Windows running with
|
||
MS-DOS.
|
||
VOS_NT_WINDOWS32 File was designed for Windows Server 2003 family,
|
||
Windows XP, Windows 2000, or Windows NT.
|
||
|
||
The values 0x00002L, 0x00003L, 0x20000L and 0x30000L are reserved.
|
||
|
||
filetype
|
||
One of the following values.
|
||
|
||
Value Description
|
||
|
||
VFT_UNKNOWN File type is unknown.
|
||
VFT_APP File contains an application.
|
||
VFT_DLL File contains a dynamic-link library (DLL).
|
||
VFT_DRV File contains a device driver. If filetype is
|
||
VFT_DRV, subtype contains a more specific
|
||
description of the driver.
|
||
VFT_FONT File contains a font. If filetype is VFT_FONT,
|
||
subtype contains a more specific description of the
|
||
font.
|
||
VFT_VXD File contains a virtual device.
|
||
VFT_STATIC_LIB File contains a static-link library.
|
||
|
||
All other values are reserved for use by Microsoft.
|
||
|
||
subtype
|
||
Additional information about the file type.
|
||
|
||
If filetype specifies VFT_DRV, this parameter can be one of the
|
||
following values.
|
||
|
||
Value Description
|
||
|
||
VFT2_UNKNOWN Driver type is unknown.
|
||
VFT2_DRV_COMM File contains a communications driver.
|
||
VFT2_DRV_PRINTER File contains a printer driver.
|
||
VFT2_DRV_KEYBOARD File contains a keyboard driver.
|
||
VFT2_DRV_LANGUAGE File contains a language driver.
|
||
VFT2_DRV_DISPLAY File contains a display driver.
|
||
VFT2_DRV_MOUSE File contains a mouse driver.
|
||
VFT2_DRV_NETWORK File contains a network driver.
|
||
VFT2_DRV_SYSTEM File contains a system driver.
|
||
VFT2_DRV_INSTALLABLE File contains an installable driver.
|
||
VFT2_DRV_SOUND File contains a sound driver.
|
||
VFT2_DRV_VERSIONED_PRINTER File contains a versioned printer driver.
|
||
|
||
If filetype specifies VFT_FONT, this parameter can be one of the
|
||
following values.
|
||
|
||
Value Description
|
||
|
||
VFT2_UNKNOWN Font type is unknown.
|
||
VFT2_FONT_RASTER File contains a raster font.
|
||
VFT2_FONT_VECTOR File contains a vector font.
|
||
VFT2_FONT_TRUETYPE File contains a TrueType font.
|
||
|
||
If filetype specifies VFT_VXD, this parameter must be the virtual-device
|
||
identifier included in the virtual-device control block.
|
||
|
||
All subtype values not listed here are reserved for use by Microsoft.
|
||
|
||
langID
|
||
One of the following language codes.
|
||
|
||
Code Language Code Language
|
||
|
||
0x0401 Arabic 0x0415 Polish
|
||
0x0402 Bulgarian 0x0416 Portuguese (Brazil)
|
||
0x0403 Catalan 0x0417 Rhaeto-Romanic
|
||
0x0404 Traditional Chinese 0x0418 Romanian
|
||
0x0405 Czech 0x0419 Russian
|
||
0x0406 Danish 0x041A Croato-Serbian (Latin)
|
||
0x0407 German 0x041B Slovak
|
||
0x0408 Greek 0x041C Albanian
|
||
0x0409 U.S. English 0x041D Swedish
|
||
0x040A Castilian Spanish 0x041E Thai
|
||
0x040B Finnish 0x041F Turkish
|
||
0x040C French 0x0420 Urdu
|
||
0x040D Hebrew 0x0421 Bahasa
|
||
0x040E Hungarian 0x0804 Simplified Chinese
|
||
0x040F Icelandic 0x0807 Swiss German
|
||
0x0410 Italian 0x0809 U.K. English
|
||
0x0411 Japanese 0x080A Mexican Spanish
|
||
0x0412 Korean 0x080C Belgian French
|
||
0x0413 Dutch 0x0C0C Canadian French
|
||
0x0414 Norwegian – Bokmal 0x100C Swiss French
|
||
0x0810 Swiss Italian 0x0816 Portuguese (Portugal)
|
||
0x0813 Belgian Dutch 0x081A Serbo-Croatian (Cyrillic)
|
||
0x0814 Norwegian – Nynorsk
|
||
|
||
charsetID
|
||
One of the following character-set identifiers.
|
||
|
||
Identifier Character Set
|
||
|
||
0 7-bit ASCII
|
||
932 Japan (Shift %G–%@ JIS X-0208)
|
||
949 Korea (Shift %G–%@ KSC 5601)
|
||
950 Taiwan (Big5)
|
||
1200 Unicode
|
||
1250 Latin-2 (Eastern European)
|
||
1251 Cyrillic
|
||
1252 Multilingual
|
||
1253 Greek
|
||
1254 Turkish
|
||
1255 Hebrew
|
||
1256 Arabic
|
||
|
||
string-name
|
||
One of the following predefined names.
|
||
|
||
Name Description
|
||
|
||
Comments Additional information that should be displayed for
|
||
diagnostic purposes.
|
||
CompanyName Company that produced the file%G—%@for example,
|
||
"Microsoft Corporation" or "Standard Microsystems
|
||
Corporation, Inc." This string is required.
|
||
FileDescription File description to be presented to users. This
|
||
string may be displayed in a list box when the user
|
||
is choosing files to install%G—%@for example,
|
||
"Keyboard Driver for AT-Style Keyboards". This
|
||
string is required.
|
||
FileVersion Version number of the file%G—%@for example,
|
||
"3.10" or "5.00.RC2". This string is required.
|
||
InternalName Internal name of the file, if one exists — for
|
||
example, a module name if the file is a dynamic-link
|
||
library. If the file has no internal name, this
|
||
string should be the original filename, without
|
||
extension. This string is required.
|
||
LegalCopyright Copyright notices that apply to the file. This
|
||
should include the full text of all notices, legal
|
||
symbols, copyright dates, and so on — for example,
|
||
"Copyright (C) Microsoft Corporation 1990–1999".
|
||
This string is optional.
|
||
LegalTrademarks Trademarks and registered trademarks that apply to
|
||
the file. This should include the full text of all
|
||
notices, legal symbols, trademark numbers, and so on.
|
||
This string is optional.
|
||
OriginalFilename Original name of the file, not including a path.
|
||
This information enables an application to determine
|
||
whether a file has been renamed by a user. The
|
||
format of the name depends on the file system for
|
||
which the file was created. This string is required.
|
||
PrivateBuild Information about a private version of the file — for
|
||
example, "Built by TESTER1 on \TESTBED". This string
|
||
should be present only if VS_FF_PRIVATEBUILD is
|
||
specified in the fileflags parameter of the root
|
||
block.
|
||
ProductName Name of the product with which the file is
|
||
distributed. This string is required.
|
||
ProductVersion Version of the product with which the file is
|
||
distributed — for example, "3.10" or "5.00.RC2".
|
||
This string is required.
|
||
SpecialBuild Text that indicates how this version of the file
|
||
differs from the standard version — for example,
|
||
"Private build for TESTER1 solving mouse problems
|
||
on M250 and M250E computers". This string should be
|
||
present only if VS_FF_SPECIALBUILD is specified in
|
||
the fileflags parameter of the root block.
|
||
*/
|