| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394 |
- /* 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: [email protected]
- *
- * 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.
- */
|