History

Remove misc. files

- from win32/include/winapi: various .h The winapi header set cannot be complete no matter what. So lets have just the minimal set necessary to compile the examples. - remove CMake support (hard to keep up to date) - some other files Also, drop useless changes in win32/lib/(win)crt1.c

grischka committed 10 years ago

Commit 8637c1d1 parent 766ba3635 files · +9 −6966Browse files

Unified · Split

35 files
  1. .travis.yml +0 −1
  2. CMakeLists.txt +0 −293
  3. README.md +0 −125
  4. config.h.in +0 −7
  5. config.texi.in +0 −1
  6. tests/CMakeLists.txt +0 −138
  7. tests/testfp.c +0 −0
  8. win32/examples/demo.bat +0 −22
  9. win32/examples/taxi_simulator.c +0 −948
  10. win32/include/winapi/_bsd_types.h +0 −21
  11. win32/include/winapi/_mingw_unicode.h +0 −33
  12. win32/include/winapi/_timeval.h +0 −23
  13. win32/include/winapi/in6addr.h +0 −28
  14. win32/include/winapi/inaddr.h +0 −27
  15. win32/include/winapi/mstcpip.h +0 −195
  16. win32/include/winapi/mswsock.h +0 −193
  17. win32/include/winapi/psdk_inc/_fd_types.h +0 −26
  18. win32/include/winapi/psdk_inc/_ip_mreq1.h +0 −18
  19. win32/include/winapi/psdk_inc/_ip_types.h +0 −104
  20. win32/include/winapi/psdk_inc/_socket_types.h +0 −20
  21. win32/include/winapi/psdk_inc/_ws1_undef.h +0 −248
  22. win32/include/winapi/psdk_inc/_wsa_errnos.h +0 −225
  23. win32/include/winapi/psdk_inc/_wsadata.h +0 −32
  24. win32/include/winapi/psdk_inc/_xmitfile.h +0 −18
  25. win32/include/winapi/qos.h +0 −72
  26. win32/include/winapi/shellapi.h +0 −904
  27. win32/include/winapi/tvout.h +0 −79
  28. win32/include/winapi/winsock2.h +0 −1253
  29. win32/include/winapi/winuser.h +1 −1
  30. win32/include/winapi/ws2def.h +0 −39
  31. win32/include/winapi/ws2ipdef.h +0 −96
  32. win32/include/winapi/ws2tcpip.h +0 −437
  33. win32/include/winsock2.h +0 −1290
  34. win32/lib/crt1.c +8 −41
  35. win32/lib/wincrt1.c +0 −8
.travis.yml+0−1
@@ -1 +0,0 @@
1−language: c
CMakeLists.txt+0−293
@@ -1,293 +0,0 @@
1−project(tcc C)
2−cmake_minimum_required(VERSION 2.6)
3−enable_testing()
4−
5−# Detect native platform
6−if(WIN32)
7− set(BUILD_SHARED_LIBS ON)
8− if(CMAKE_SYSTEM_PROCESSOR STREQUAL "ARM")
9− set(TCC_NATIVE_TARGET "WinCE")
10− elseif(CMAKE_SIZEOF_VOID_P EQUAL 8)
11− set(TCC_NATIVE_TARGET "Win64")
12− else()
13− set(TCC_NATIVE_TARGET "Win32")
14− endif()
15−else()
16− if(CMAKE_SYSTEM_PROCESSOR MATCHES "^arm")
17− set(TCC_NATIVE_TARGET "ARM")
18− if(CMAKE_SYSTEM_PROCESSOR MATCHES "^armv5")
19− set(TCC_ARM_VERSION_DEFAULT 5)
20− elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^armv6")
21− set(TCC_ARM_VERSION_DEFAULT 6)
22− elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^armv7")
23− set(TCC_ARM_VERSION_DEFAULT 7)
24− else()
25− set(TCC_ARM_VERSION_DEFAULT 4)
26− endif()
27− elseif(CMAKE_SIZEOF_VOID_P EQUAL 8)
28− set(TCC_NATIVE_TARGET "x86_64")
29− set(TCC_ARCH_DIR "x86_64-linux-gnu")
30− else()
31− set(TCC_NATIVE_TARGET "i386")
32− set(TCC_ARCH_DIR "i386-linux-gnu")
33− endif()
34−endif()
35−
36−if(WIN32)
37− set(EXE_PATH ".")
38− set(TCC_LIB_PATH lib)
39− set(NATIVE_LIB_PATH)
40− set(DOC_PATH doc)
41−else()
42− set(EXE_PATH bin)
43− set(TCC_LIB_PATH lib/tcc)
44− set(NATIVE_LIB_PATH lib)
45− set(DOC_PATH share/doc/tcc)
46−endif()
47−
48−if(NOT WIN32)
49− if(EXISTS /usr/lib/${TCC_ARCH_DIR}/crti.o)
50− set(CONFIG_LDDIR lib/${TCC_ARCH_DIR})
51− set(CONFIG_MULTIARCHDIR ${TCC_ARCH_DIR})
52− elseif(EXISTS /usr/lib64/crti.o)
53− set(CONFIG_LDDIR lib64)
54− endif()
55−endif()
56−
57−# Use two variables to keep CMake configuration variable names consistent
58−set(TCC_BCHECK OFF CACHE BOOL "Enable bounds checking")
59−set(CONFIG_TCC_BCHECK ${TCC_BCHECK})
60−set(TCC_ASSERT OFF CACHE BOOL "Enable assertions")
61−set(CONFIG_TCC_ASSERT ${TCC_ASSERT})
62−
63−set(TCC_BUILD_NATIVE ON CACHE BOOL "Build native compiler")
64−set(TCC_BUILD_I386 OFF CACHE BOOL "Build i386 cross compiler")
65−set(TCC_BUILD_X64 OFF CACHE BOOL "Build x86-64 cross compiler")
66−set(TCC_BUILD_WIN32 OFF CACHE BOOL "Build Windows i386 cross compiler")
67−set(TCC_BUILD_WIN64 OFF CACHE BOOL "Build Windows x86-64 cross compiler")
68−set(TCC_BUILD_WINCE OFF CACHE BOOL "Build Windows CE cross compiler")
69−set(TCC_BUILD_ARM_FPA OFF CACHE BOOL "Build arm-fpa cross compiler")
70−set(TCC_BUILD_ARM_FPA_LD OFF CACHE BOOL "Build arm-fpa-ld cross compiler")
71−set(TCC_BUILD_ARM_VFP OFF CACHE BOOL "Build arm-vfp cross compiler")
72−set(TCC_BUILD_ARM_EABI OFF CACHE BOOL "Build ARM EABI cross compiler")
73−set(TCC_BUILD_ARM_EABIHF OFF CACHE BOOL "Build ARM EABI hardware float cross compiler")
74−set(TCC_BUILD_ARM OFF CACHE BOOL "Build ARM cross compiler")
75−set(TCC_BUILD_C67 OFF CACHE BOOL "Build C67 cross compiler")
76−
77−set(TCC_ARM_VERSION ${TCC_ARM_VERSION_DEFAULT} CACHE STRING "ARM target CPU version")
78−set_property(CACHE TCC_ARM_VERSION PROPERTY STRINGS 4 5 6 7)
79−
80−if(WIN32)
81− set(CONFIG_TCCDIR ${CMAKE_INSTALL_PREFIX})
82−else()
83− set(CONFIG_TCCDIR ${CMAKE_INSTALL_PREFIX}/lib/tcc)
84−endif()
85−
86−file(STRINGS "VERSION" TCC_VERSION)
87−list(GET TCC_VERSION 0 TCC_VERSION)
88−include_directories(${CMAKE_BINARY_DIR})
89−configure_file(config.h.in config.h)
90−configure_file(config.texi.in config.texi)
91−
92−# Utility variables
93−set(I386_SOURCES i386-gen.c i386-asm.c i386-asm.h i386-tok.h)
94−set(X86_64_SOURCES x86_64-gen.c i386-asm.c x86_64-asm.h)
95−set(ARM_SOURCES arm_gen.c)
96−
97−set(LIBTCC1_I386_SOURCES lib/alloca86.S lib/alloca86-bt.S)
98−set(LIBTCC1_WIN_SOURCES win32/lib/crt1.c win32/lib/wincrt1.c win32/lib/dllcrt1.c win32/lib/dllmain.c win32/lib/chkstk.S)
99−if(NOT WIN32)
100− set(LIBTCC1_I386_SOURCES ${LIBTCC1_I386_SOURCES} lib/bcheck.c)
101−endif()
102−
103−if(WIN32)
104− add_executable(tiny_impdef win32/tools/tiny_impdef.c)
105−endif()
106−add_executable(tiny_libmaker_32 win32/tools/tiny_libmaker.c)
107−set_target_properties(tiny_libmaker_32 PROPERTIES COMPILE_DEFINITIONS TCC_TARGET_I386)
108−add_executable(tiny_libmaker_64 win32/tools/tiny_libmaker.c)
109−set_target_properties(tiny_libmaker_64 PROPERTIES COMPILE_DEFINITIONS TCC_TARGET_X86_64)
110−
111−macro(make_libtcc1 prefix xcc xar defs includes sources)
112− set(libtcc1_prefix)
113− if("${prefix}" STRGREATER "")
114− set(libtcc1_prefix ${prefix}-)
115− endif()
116− set(libtcc1_flags -I${CMAKE_SOURCE_DIR}/include)
117− foreach(i ${defs})
118− set(libtcc1_flags ${libtcc1_flags} -D${i})
119− endforeach()
120− foreach(i ${includes})
121− set(libtcc1_flags ${libtcc1_flags} -I${CMAKE_SOURCE_DIR}/${i})
122− endforeach()
123− set(libtcc1_objects)
124− foreach(libtcc1_c lib/libtcc1.c ${sources})
125− string(REGEX MATCH "[^/]+$" libtcc1_o ${libtcc1_c})
126− string(REGEX MATCH "^[^.]+" libtcc1_o ${libtcc1_o})
127− set(libtcc1_o ${libtcc1_prefix}${libtcc1_o}.o)
128− add_custom_command(OUTPUT ${libtcc1_o}
129− COMMAND ${xcc} ${libtcc1_flags} -c ${CMAKE_SOURCE_DIR}/${libtcc1_c} -o ${libtcc1_o}
130− DEPENDS ${xcc} ${CMAKE_SOURCE_DIR}/${libtcc1_c}
131− )
132− list(APPEND libtcc1_objects ${libtcc1_o})
133− endforeach()
134− add_custom_command(OUTPUT ${libtcc1_prefix}libtcc1.a
135− COMMAND ${xar} ${libtcc1_prefix}libtcc1.a ${libtcc1_objects}
136− DEPENDS ${xar} ${libtcc1_objects}
137− )
138− add_custom_target(${libtcc1_prefix}libtcc1 ALL DEPENDS ${libtcc1_prefix}libtcc1.a)
139− install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${libtcc1_prefix}libtcc1.a
140− DESTINATION ${TCC_LIB_PATH}/${prefix} RENAME libtcc1.a)
141−endmacro()
142−
143−macro(make_tcc native_name cross_name cross_enabled definitions tcc_sources libtcc_ar libtcc_sources libtcc_includes)
144− if (xx${native_name} STREQUAL xx${TCC_NATIVE_TARGET})
145− set(TCC_NATIVE_DEFINITIONS ${definitions})
146− if("${CONFIG_MULTIARCHDIR}" STRGREATER "")
147− set(TCC_NATIVE_DEFINITIONS ${TCC_NATIVE_DEFINITIONS} CONFIG_MULTIARCHDIR="${CONFIG_MULTIARCHDIR}")
148− endif()
149− if("${CONFIG_LDDIR}" STRGREATER "")
150− set(TCC_NATIVE_DEFINITIONS ${TCC_NATIVE_DEFINITIONS} CONFIG_LDDIR="${CONFIG_LDDIR}")
151− endif()
152−
153− set(TCC_NATIVE_FLAGS)
154− foreach(make_tcc_def ${TCC_NATIVE_DEFINITIONS})
155− set(TCC_NATIVE_FLAGS ${TCC_NATIVE_FLAGS} -D${make_tcc_def})
156− endforeach()
157−
158− if (TCC_BUILD_NATIVE)
159− add_library(libtcc
160− libtcc.c
161− tccpp.c
162− tccgen.c
163− tccelf.c
164− tccasm.c
165− tccrun.c
166− tcc.h
167− libtcc.h
168− tcctok.h
169− ${tcc_sources}
170− )
171− set_target_properties(libtcc PROPERTIES OUTPUT_NAME tcc PREFIX lib)
172− if(WIN32)
173− set_target_properties(libtcc PROPERTIES LINK_FLAGS "-Wl,--output-def,libtcc.def")
174− endif()
175− add_executable(tcc tcc.c)
176− target_link_libraries(tcc libtcc)
177− if(NOT WIN32)
178− target_link_libraries(tcc dl)
179− endif()
180− install(TARGETS tcc libtcc RUNTIME DESTINATION ${EXE_PATH} LIBRARY DESTINATION ${NATIVE_LIB_PATH} ARCHIVE DESTINATION ${NATIVE_LIB_PATH})
181− set_target_properties(tcc libtcc PROPERTIES COMPILE_DEFINITIONS "${TCC_NATIVE_DEFINITIONS}")
182−
183− if("${libtcc_sources}" STRGREATER "")
184− make_libtcc1("" tcc "${libtcc_ar}" "${TCC_NATIVE_DEFINITIONS}" "${libtcc_includes}" "${libtcc_sources}")
185− endif()
186− endif()
187− elseif(${cross_enabled})
188− add_executable(${cross_name}-tcc tcc.c)
189− set_target_properties(${cross_name}-tcc PROPERTIES COMPILE_DEFINITIONS "ONE_SOURCE;${definitions}")
190− install(TARGETS ${cross_name}-tcc RUNTIME DESTINATION ${EXE_PATH})
191−
192− if("${libtcc_sources}" STRGREATER "")
193− make_libtcc1(${cross_name} "${cross_name}-tcc" "${libtcc_ar}" "${definitions}" "${libtcc_includes}" "${libtcc_sources}")
194− endif()
195− endif()
196−endmacro()
197−
198−make_tcc("Win32" i386-w64-mingw32 TCC_BUILD_WIN32
199− "TCC_TARGET_I386;TCC_TARGET_PE"
200− "${I386_SOURCES};tccpe.c"
201− tiny_libmaker_32 "${LIBTCC1_I386_SOURCES};${LIBTCC1_WIN_SOURCES}" "win32/include;win32/include/winapi"
202−)
203−make_tcc("Win64" x86_64-w64-mingw32 TCC_BUILD_WIN64
204− "TCC_TARGET_X86_64;TCC_TARGET_PE"
205− "${X86_64_SOURCES};tccpe.c"
206− tiny_libmaker_64 "lib/alloca86_64.S;${LIBTCC1_WIN_SOURCES}" "win32/include;win32/include/winapi"
207−)
208−make_tcc("WinCE" arm-wince-mingw32ce TCC_BUILD_WINCE
209− "TCC_TARGET_ARM;TCC_ARM_VERSION=${TCC_ARM_VERSION};TCC_TARGET_PE"
210− "${ARM_SOURCES};tccpe.c"
211− "" "" ""
212−)
213−make_tcc("i386" i386-linux-gnu TCC_BUILD_I386
214− TCC_TARGET_I386
215− "${I386_SOURCES}"
216− tiny_libmaker_32 "${LIBTCC1_I386_SOURCES}" ""
217−)
218−make_tcc("x86_64" x86_64-linux-gnu TCC_BUILD_X64
219− TCC_TARGET_X86_64
220− "${X86_64_SOURCES}"
221− tiny_libmaker_64 "lib/alloca86_64.S" ""
222−)
223−set(ARM_DEFINITIONS TCC_TARGET_ARM TCC_ARM_VERSION=${TCC_ARM_VERSION})
224−make_tcc("" arm-linux-gnueabihf TCC_BUILD_ARM_EABIHF
225− "${ARM_DEFINITIONS};TCC_ARM_EABI;TCC_ARM_HARDFLOAT"
226− "${ARM_SOURCES}"
227− "" "" ""
228−)
229−make_tcc("" arm-linux-gnueabi TCC_BUILD_ARM_EABI
230− "${ARM_DEFINITIONS};TCC_ARM_EABI"
231− "${ARM_SOURCES}"
232− "" "" ""
233−)
234−make_tcc("" arm-linux-fpa TCC_BUILD_ARM_FPA
235− "${ARM_DEFINITIONS}"
236− "${ARM_SOURCES}"
237− "" "" ""
238−)
239−make_tcc("" arm-linux-fpa-ld TCC_BUILD_ARM_FPA_LD
240− "${ARM_DEFINITIONS};LDOUBLE_SIZE=12"
241− "${ARM_SOURCES}"
242− "" "" ""
243−)
244−make_tcc("" arm-linux-gnu TCC_BUILD_ARM_VFP
245− "${ARM_DEFINITIONS};TCC_ARM_VFP"
246− "${ARM_SOURCES}"
247− "" "" ""
248−)
249−make_tcc("" c67 TCC_BUILD_C67
250− TCC_TARGET_C67
251− "c67-gen.c;tcccoff.c"
252− "" "" ""
253−)
254−
255−add_subdirectory(tests)
256−
257−find_program(MAKEINFO NAMES makeinfo PATHS C:/MinGW/MSYS/1.0/bin)
258−if(MAKEINFO)
259− add_custom_command(OUTPUT tcc-doc.html
260− COMMAND ${MAKEINFO} --no-split --html -o tcc-doc.html ${CMAKE_CURRENT_SOURCE_DIR}/tcc-doc.texi
261− DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/tcc-doc.texi
262− )
263− set(TCC_DOC_FILES tcc-doc.html)
264− if(NOT WIN32)
265− add_custom_command(OUTPUT tcc-doc.info
266− COMMAND ${MAKEINFO} -o tcc-doc.info ${CMAKE_CURRENT_SOURCE_DIR}/tcc-doc.texi
267− DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/tcc-doc.texi
268− )
269− set(TCC_DOC_FILES ${TCC_DOC_FILES} tcc-doc.info)
270− install(FILES ${CMAKE_CURRENT_BINARY_DIR}/tcc-doc.info DESTINATION share/info)
271− endif()
272− add_custom_target(tcc-doc ALL DEPENDS ${TCC_DOC_FILES})
273− install(FILES ${CMAKE_CURRENT_BINARY_DIR}/tcc-doc.html DESTINATION ${DOC_PATH})
274−endif()
275−
276−if(WIN32)
277− file(GLOB WIN32_DEFS win32/lib/*.def)
278− install(FILES ${WIN32_DEFS} DESTINATION lib)
279− install(FILES tcclib.h DESTINATION include)
280− install(DIRECTORY include/ DESTINATION include)
281− install(DIRECTORY win32/include/ DESTINATION include)
282− install(DIRECTORY win32/examples/ DESTINATION examples)
283− install(FILES win32/tcc-win32.txt DESTINATION doc)
284− install(FILES ${CMAKE_BINARY_DIR}/libtcc.def DESTINATION libtcc)
285− install(FILES ${CMAKE_BINARY_DIR}/libtcc.dll.a DESTINATION libtcc RENAME libtcc.a)
286− install(FILES libtcc.h DESTINATION libtcc)
287−else()
288− install(FILES libtcc.h tcclib.h DESTINATION include)
289− install(DIRECTORY include/ DESTINATION lib/tcc/include)
290− install(DIRECTORY win32/include/ DESTINATION lib/tcc/win32/include)
291− install(DIRECTORY include/ DESTINATION lib/tcc/win32/include)
292−endif()
293−
README.md+0−125
@@ -1,125 +0,0 @@
1−**TinyCC** (or tcc) is short for Tiny C Compiler.
2−
3−This a clone of the mob development repo at http://repo.or.cz/tinycc.git
4−
5−|Branch |Status |
6−|------------|---------|
7−|mob | [![Build Status](https://travis-ci.org/wqweto/tinycc.svg?branch=mob)](https://travis-ci.org/wqweto/tinycc) |
8−|dev | [![Build Status](https://travis-ci.org/wqweto/tinycc.svg?branch=dev)](https://travis-ci.org/wqweto/tinycc) |
9−
10−### License
11−
12−Tiny C Compiler project is licensed under [LGPL](https://en.wikipedia.org/wiki/GNU_Lesser_General_Public_License) but currently there is an effort to relicense the project under [MIT License](https://en.wikipedia.org/wiki/MIT_License). See RELICENSING file in root for current status.
13−
14−### Branch Policy
15−
16−The "dev" branch is the one where all contributions will be merged before reaching "mob". If you plan to propose a patch, please commit into the "dev" branch or its own feature branch. Direct commit to "mob" are not permitted.
17−
18−### Original Fabrice Bellard readme
19−
20−```
21−Tiny C Compiler - C Scripting Everywhere - The Smallest ANSI C compiler
22−-----------------------------------------------------------------------
23−
24−Features:
25−--------
26−
27−- SMALL! You can compile and execute C code everywhere, for example on
28− rescue disks.
29−
30−- FAST! tcc generates optimized x86 code. No byte code
31− overhead. Compile, assemble and link about 7 times faster than 'gcc
32− -O0'.
33−
34−- UNLIMITED! Any C dynamic library can be used directly. TCC is
35− heading torward full ISOC99 compliance. TCC can of course compile
36− itself.
37−
38−- SAFE! tcc includes an optional memory and bound checker. Bound
39− checked code can be mixed freely with standard code.
40−
41−- Compile and execute C source directly. No linking or assembly
42− necessary. Full C preprocessor included.
43−
44−- C script supported : just add '#!/usr/local/bin/tcc -run' at the first
45− line of your C source, and execute it directly from the command
46− line.
47−
48−Documentation:
49−-------------
50−
51−1) Installation on a i386/x86_64/arm Linux/OSX/FreeBSD host (for Windows read tcc-win32.txt)
52−
53−Note: For OSX and FreeBSD, gmake should be used instead of make.
54−
55− ./configure
56− make
57− make test
58− make install
59−
60−Alternatively, out-of-tree builds are supported: you may use different
61−directories to hold build objects, kept separate from your source tree:
62−
63− mkdir _build
64− cd _build
65− ../configure
66− make
67− make test
68− make install
69−
70−Texi2html must be installed to compile the doc.
71−By default, tcc is installed in /usr/local/bin.
72−./configure --help shows configuration options.
73−
74−
75−2) Introduction
76−
77−We assume here that you know ANSI C. Look at the example ex1.c to know
78−what the programs look like.
79−
80−The include file <tcclib.h> can be used if you want a small basic libc
81−include support (especially useful for floppy disks). Of course, you
82−can also use standard headers, although they are slower to compile.
83−
84−You can begin your C script with '#!/usr/local/bin/tcc -run' on the first
85−line and set its execute bits (chmod a+x your_script). Then, you can
86−launch the C code as a shell or perl script :-) The command line
87−arguments are put in 'argc' and 'argv' of the main functions, as in
88−ANSI C.
89−
90−3) Examples
91−
92−ex1.c: simplest example (hello world). Can also be launched directly
93−as a script: './ex1.c'.
94−
95−ex2.c: more complicated example: find a number with the four
96−operations given a list of numbers (benchmark).
97−
98−ex3.c: compute fibonacci numbers (benchmark).
99−
100−ex4.c: more complicated: X11 program. Very complicated test in fact
101−because standard headers are being used ! As for ex1.c, can also be launched
102−directly as a script: './ex4.c'.
103−
104−ex5.c: 'hello world' with standard glibc headers.
105−
106−tcc.c: TCC can of course compile itself. Used to check the code
107−generator.
108−
109−tcctest.c: auto test for TCC which tests many subtle possible bugs. Used
110−when doing 'make test'.
111−
112−4) Full Documentation
113−
114−Please read tcc-doc.html to have all the features of TCC.
115−
116−Additional information is available for the Windows port in tcc-win32.txt.
117−
118−License:
119−-------
120−
121−TCC is distributed under the GNU Lesser General Public License (see
122−COPYING file).
123−
124−Fabrice Bellard.
125−```
config.h.in+0−7
@@ -1,7 +0,0 @@
1−#define CONFIG_TCCDIR "${CONFIG_TCCDIR}"
2−#define TCC_VERSION "${TCC_VERSION}"
3−
4−#cmakedefine CONFIG_WIN32
5−#cmakedefine CONFIG_WIN64
6−#cmakedefine CONFIG_TCC_BCHECK
7−#cmakedefine CONFIG_TCC_ASSERT
config.texi.in+0−1
@@ -1 +0,0 @@
1−@set VERSION ${TCC_VERSION}
tests/CMakeLists.txt+0−138
@@ -1,138 +0,0 @@
1−include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_BINARY_DIR})
2−
3−set(TCC_CFLAGS -I${CMAKE_SOURCE_DIR} -I${CMAKE_SOURCE_DIR}/include -B${CMAKE_BINARY_DIR})
4−if(WIN32)
5− set(TCC_CFLAGS ${TCC_CFLAGS} -I${CMAKE_SOURCE_DIR}/win32/include)
6−else()
7− set(TCC_MATH_LDFLAGS -lm)
8− set(LIBTCC_EXTRA_LIBS dl)
9− set(LIBTCC_LDFLAGS -ldl -lm -Wl,-rpath=${CMAKE_BINARY_DIR})
10−endif()
11−
12−add_executable(abitest-cc abitest.c)
13−target_link_libraries(abitest-cc libtcc ${LIBTCC_EXTRA_LIBS})
14−add_test(NAME abitest-cc WORKING_DIRECTORY ${CMAKE_BINARY_DIR} COMMAND abitest-cc lib_path=${CMAKE_BINARY_DIR} include=${CMAKE_SOURCE_DIR}/include)
15−
16−set(ABITEST_TCC abitest-tcc${CMAKE_EXECUTABLE_SUFFIX})
17−get_property(LIBTCC_LIB TARGET libtcc PROPERTY LOCATION)
18−add_custom_command(OUTPUT ${ABITEST_TCC} COMMAND tcc ${TCC_CFLAGS} -g ${CMAKE_CURRENT_SOURCE_DIR}/abitest.c ${LIBTCC_LDFLAGS} ${LIBTCC_LIB} -o ${ABITEST_TCC} DEPENDS tcc ${CMAKE_CURRENT_SOURCE_DIR}/abitest.c)
19−add_custom_target(abitest-tcc-exe ALL DEPENDS ${ABITEST_TCC})
20−
21−add_test(NAME abitest-tcc WORKING_DIRECTORY ${CMAKE_BINARY_DIR} COMMAND ${CMAKE_CURRENT_BINARY_DIR}/${ABITEST_TCC} lib_path=${CMAKE_BINARY_DIR} include=${CMAKE_SOURCE_DIR}/include)
22−
23−set(VLA_TEST vla_test${CMAKE_EXECUTABLE_SUFFIX})
24−add_custom_command(OUTPUT ${VLA_TEST} COMMAND tcc ${TCC_CFLAGS} -g ${CMAKE_CURRENT_SOURCE_DIR}/vla_test.c -o ${VLA_TEST} DEPENDS tcc ${CMAKE_CURRENT_SOURCE_DIR}/vla_test.c)
25−add_custom_target(vla_test-exe ALL DEPENDS ${VLA_TEST})
26−add_test(vla_test vla_test)
27−
28−add_executable(tcctest-cc tcctest.c)
29−target_link_libraries(tcctest-cc libtcc)
30−set_target_properties(tcctest-cc PROPERTIES COMPILE_FLAGS -std=gnu99)
31−
32−find_package(PythonInterp)
33−if(PYTHONINTERP_FOUND)
34− set(TCC_TEST_CFLAGS ${TCC_CFLAGS} -B${CMAKE_BINARY_DIR} -I${CMAKE_BINARY_DIR})
35− if(WIN32)
36− set(TCC_TEST_CFLAGS ${TCC_TEST_CFLAGS} -I${CMAKE_SOURCE_DIR}/win32/include/winapi)
37− endif()
38− set(TCC_TEST_SOURCE ${TCC_TEST_CFLAGS} ${TCC_MATH_LDFLAGS} -run ${CMAKE_CURRENT_SOURCE_DIR}/tcctest.c)
39− set(TCC_TEST_RUN ${TCC_TEST_CFLAGS} ${TCC_NATIVE_FLAGS} -DONE_SOURCE -run ${CMAKE_SOURCE_DIR}/tcc.c)
40− get_property(TCC TARGET tcc PROPERTY LOCATION)
41− get_property(TCCTESTCC TARGET tcctest-cc PROPERTY LOCATION)
42− set(TCCTEST_PY ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/tcctest.py ${TCCTESTCC})
43− add_test(test1 ${TCCTEST_PY} ${TCC} ${TCC_TEST_SOURCE})
44− add_test(test2 ${TCCTEST_PY} ${TCC} ${TCC_TEST_RUN} ${TCC_TEST_SOURCE})
45− add_test(test3 ${TCCTEST_PY} ${TCC} ${TCC_TEST_RUN} ${TCC_TEST_RUN} ${TCC_TEST_SOURCE})
46−
47− # Object + link output
48− set(TEST4 test4${CMAKE_EXECUTABLE_SUFFIX})
49− add_custom_command(OUTPUT test4.o COMMAND tcc ${TCC_TEST_CFLAGS} ${CMAKE_CURRENT_SOURCE_DIR}/tcctest.c -c -o test4.o DEPENDS tcc ${CMAKE_CURRENT_SOURCE_DIR}/tcctest.c)
50− add_custom_command(OUTPUT ${TEST4} COMMAND tcc ${TCC_TEST_CFLAGS} test4.o -o ${TEST4} DEPENDS tcc test4.o)
51− add_custom_target(test4-exe ALL DEPENDS ${TEST4})
52− add_test(test4 ${TCCTEST_PY} ${CMAKE_CURRENT_BINARY_DIR}/${TEST4})
53−
54− # Dynamic output
55− set(TEST5 test5${CMAKE_EXECUTABLE_SUFFIX})
56− add_custom_command(OUTPUT ${TEST5} COMMAND tcc ${TCC_TEST_CFLAGS} ${CMAKE_CURRENT_SOURCE_DIR}/tcctest.c -o ${TEST5} DEPENDS tcc ${CMAKE_CURRENT_SOURCE_DIR}/tcctest.c)
57− add_custom_target(test5-exe ALL DEPENDS ${TEST5})
58− add_test(test5 ${TCCTEST_PY} ${CMAKE_CURRENT_BINARY_DIR}/${TEST5})
59−
60− if(TCC_BCHECK)
61− # Dynamic output + bound check
62− set(TEST6 test6${CMAKE_EXECUTABLE_SUFFIX})
63− add_custom_command(OUTPUT ${TEST6} COMMAND tcc ${TCC_TEST_CFLAGS} ${CMAKE_CURRENT_SOURCE_DIR}/tcctest.c -b -o ${TEST6} DEPENDS tcc ${CMAKE_CURRENT_SOURCE_DIR}/tcctest.c)
64− add_custom_target(test6-exe ALL DEPENDS ${TEST6})
65− add_test(test6 ${TCCTEST_PY} ${CMAKE_CURRENT_BINARY_DIR}/${TEST6})
66− endif()
67−
68− if(0)
69− # Static output
70− set(TEST7 test7${CMAKE_EXECUTABLE_SUFFIX})
71− add_custom_command(OUTPUT ${TEST7} COMMAND tcc ${TCC_TEST_CFLAGS} ${CMAKE_CURRENT_SOURCE_DIR}/tcctest.c -static -o ${TEST7} DEPENDS tcc ${CMAKE_CURRENT_SOURCE_DIR}/tcctest.c)
72− add_custom_target(test7-exe ALL DEPENDS ${TEST7})
73− add_test(test7 ${TCCTEST_PY} ${CMAKE_CURRENT_BINARY_DIR}/${TEST7})
74− endif()
75−endif()
76−
77−set(MORETESTS
78− 00_assignment
79− 01_comment
80− 02_printf
81− 03_struct
82− 04_for
83− 05_array
84− 06_case
85− 07_function
86− 08_while
87− 09_do_while
88− 10_pointer
89− 11_precedence
90− 12_hashdefine
91− 13_integer_literals
92− 14_if
93− 15_recursion
94− 16_nesting
95− 17_enum
96− 18_include
97− 19_pointer_arithmetic
98− 20_pointer_comparison
99− 21_char_array
100− 22_floating_point
101− 23_type_coercion
102− 24_math_library
103− 25_quicksort
104− 26_character_constants
105− 27_sizeof
106− 28_strings
107− 29_array_address
108− 31_args
109− 32_led
110− 33_ternary_op
111− 35_sizeof
112− 36_array_initialisers
113− 37_sprintf
114− 38_multiple_array_index
115− 39_typedef
116− 40_stdio
117− 41_hashif
118− 42_function_pointer
119− 43_void_param
120− 44_scoped_declarations
121− 45_empty_for
122− 47_switch_return
123− 48_nested_break
124− 49_bracket_evaluation
125− 50_logical_second_arg
126− 51_static
127− 52_unnamed_enum
128− 54_goto
129− 55_lshift_type
130−)
131−if(WIN32)
132− list(REMOVE_ITEM MORETESTS 24_math_library)
133− list(REMOVE_ITEM MORETESTS 28_strings)
134−endif()
135−foreach(testfile ${MORETESTS})
136− add_test(NAME ${testfile} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/tests2
137− COMMAND tcc ${TCC_CFLAGS} ${TCC_MATH_LDFLAGS} -run ${testfile}.c - arg1 arg2 arg3 arg4 | ${DIFF} - ${testfile}.expect)
138−endforeach()
tests/testfp.crenamed from lib/testfp.c+0−0

File renamed without changes.

win32/examples/demo.bat+0−22
@@ -1,22 +0,0 @@
1−@echo off
2−
3−@rem Compute 10th Fibonacci number
4−tcc fib.c
5−fib 10
6−del fib.exe
7−
8−@rem hello_win.c
9−tcc hello_win.c
10−hello_win
11−del hello_win.exe
12−
13−@rem 'Hello DLL' example
14−tcc -shared dll.c
15−tcc hello_dll.c dll.def
16−hello_dll
17−del hello_dll.exe dll.def dll.dll
18−
19−@rem a console threaded program
20−tcc taxi_simulator.c
21−taxi_simulator
22−del taxi_simulator.exe
win32/examples/taxi_simulator.c+0−948
@@ -1,948 +0,0 @@
1−/* A Windows console program: taxi and passengers simulator */
2−
3−#include <windows.h>
4−#include <wincon.h>
5−#include <stdio.h>
6−#include <conio.h>
7−#include <stdlib.h>
8−#include <time.h>
9−
10−void init_scr();
11−void restore_scr();
12−void clrscr();
13−void write_console(const char *msg, DWORD len, COORD coords, DWORD attr);
14−
15−int add_br (int n, int addon);
16−
17−DWORD WINAPI Si1 (LPVOID parm); // a passengers thread
18−DWORD WINAPI Si2 (LPVOID parm);
19−DWORD WINAPI Si3 (LPVOID parm);
20−DWORD WINAPI Si4 (LPVOID parm);
21−DWORD WINAPI Taxi (LPVOID parm); // a taxi thread
22−
23−HANDLE hstdout;
24−HANDLE hproc[5], htaxi, hproc2[5], hproc3[5], hproc4[5], ht2;
25−
26−HANDLE hs_br; // a semaphor for br[]
27−HANDLE hs_wc; // a semaphor for write_console()
28−HANDLE hs_ds; // a semaphor for draw_statistics()
29−HANDLE hs_st; // a semaphor for draw_station()
30−
31−int br[5]; // a number of the passengers on the taxi stations
32−int w; // a number of the passengers on the taxi, used in taxi()
33−
34−DWORD si_attr = FOREGROUND_GREEN | FOREGROUND_INTENSITY;
35−DWORD st_attr = FOREGROUND_GREEN;
36−DWORD tx_attr = FOREGROUND_RED;
37−
38−static
39−void draw_statistics()
40−{
41− char msg[100];
42− COORD coords;
43−
44− WaitForSingleObject (hs_ds, INFINITE);
45−
46− coords.X = 0;
47− coords.Y = 0;
48−
49− sprintf (msg, "station1=%d \n", br[1]);
50− write_console (msg, strlen(msg), coords, si_attr);
51−
52− coords.Y++;
53− sprintf (msg, "station2=%d \n", br[2]);
54− write_console (msg, strlen(msg), coords, si_attr);
55−
56− coords.Y++;
57− sprintf (msg, "station3=%d \n", br[3]);
58− write_console (msg, strlen(msg), coords, si_attr);
59−
60− coords.Y++;
61− sprintf (msg, "station4=%d \n", br[4]);
62− write_console (msg, strlen(msg), coords, si_attr);
63−
64− coords.Y++;
65− sprintf (msg, "taxi=%d \n", w);
66− write_console (msg, strlen(msg), coords, si_attr);
67−
68− ReleaseSemaphore (hs_ds, 1, NULL);
69−}
70−
71−static
72−void draw_station(int station)
73−{
74− char msg[100];
75− COORD coords;
76− int j;
77−
78− WaitForSingleObject (hs_st, INFINITE);
79−
80− if (station == 1)
81− {
82− int br1, n, c;
83−
84− coords.X = 34;
85− coords.Y = 3;
86− write_console (" st1 ", 5, coords, st_attr);
87− coords.Y++;
88− write_console ("-----", 5, coords, st_attr);
89−
90− br1 = add_br (1, 0);
91− coords.X = 40;
92− c = 3;
93− while (c-- > 0)
94− {
95− n = 5;
96− if (br1 < 5)
97− n = br1;
98−
99− if (n != 0)
100− for (j = 5; j > 5-n; j--)
101− {
102− coords.Y = j - 1;
103− write_console ("*", 1, coords, si_attr);
104− }
105−
106− if (n != 5)
107− for (j = 5-n; j > 0; j--)
108− {
109− coords.Y = j - 1;
110− write_console (" ", 1, coords, si_attr);
111− }
112−
113− coords.X++;
114− br1 -= n;
115− }
116− }
117− else
118− if (station == 3)
119− {
120− int br3, n, c;
121−
122− coords.X = 34;
123− coords.Y = 20;
124− write_console (" st3 ", 5, coords, st_attr);
125− coords.Y--;
126− write_console ("-----", 5, coords, st_attr);
127−
128− br3 = add_br (3, 0);
129− coords.X = 33;
130− c = 3;
131− while (c-- > 0)
132− {
133− n = 5;
134− if (br3 < 5)
135− n = br3;
136−
137− if (n != 0)
138− for (j = 0; j < n; j++)
139− {
140− coords.Y = 20 + j;
141− write_console ("*", 1, coords, si_attr);
142− }
143−
144− if (n != 5)
145− for (j = n; j < 5; j++)
146− {
147− coords.Y = 20 + j;
148− write_console (" ", 1, coords, si_attr);
149− }
150−
151− coords.X--;
152− br3 -= n;
153− }
154− }
155− else
156− if (station == 2)
157− {
158− int br2, n, c;
159−
160− coords.X = 69;
161− coords.Y = 11;
162− write_console ("st2", 3, coords, st_attr);
163− coords.X -= 2;
164− for (j = 14; j >= 10; j--)
165− {
166− coords.Y = j;
167− write_console ("|", 1, coords, st_attr);
168− }
169−
170− br2 = add_br (2, 0);
171− coords.Y = 13;
172− c = 3;
173− while (c-- > 0)
174− {
175− n = 5;
176− if (br2 < 5)
177− n = br2;
178−
179− coords.X = 79;
180− write_console (" ", 1, coords, si_attr);
181−
182− coords.Y++;
183− coords.X = 68;
184− write_console ("*****", br2, coords, si_attr);
185−
186− coords.X = 68+n;
187− write_console (" ", 11-n, coords, si_attr);
188−
189− coords.Y++;
190− coords.X = 79;
191− write_console (" ", 1, coords, si_attr);
192−
193− coords.Y--;
194− br2 -= n;
195− }
196− }
197− else
198− if (station == 4)
199− {
200− int br4, n, c;
201−
202− coords.X = 7;
203− coords.Y = 13;
204− write_console ("st4", 3, coords, st_attr);
205− coords.X += 4;
206− for (j = 10; j <= 14; j++)
207− {
208− coords.Y = j;
209− write_console ("|", 1, coords, st_attr);
210− }
211−
212− coords.Y = 9;
213− br4 = add_br (4, 0);
214− c = 3;
215− while (c-- > 0)
216− {
217− n = 5;
218− if (br4 < 5)
219− n = br4;
220−
221− coords.X = 0;
222− write_console (" ", 1, coords, si_attr);
223−
224− coords.Y++;
225− write_console (" ", 10, coords, si_attr);
226−
227− coords.X = 10 - n;
228− write_console ("**********", n, coords, si_attr);
229−
230− coords.Y++;
231− coords.X = 0;
232− write_console (" ", 1, coords, si_attr);
233−
234− coords.Y--;
235− br4 -= n;
236− }
237− }
238−
239− ReleaseSemaphore (hs_st, 1, NULL);
240−}
241−
242−int
243−main (void)
244−{
245− int N; // a passengers on the all stations
246− int i, j;
247− COORD coords; // a cursor coords
248− DWORD len;
249− int br1, br2, br3, br4; // a passengers on the station X
250−
251− init_scr();
252−
253− printf ("Taxi and passengers simulator:\n");
254− while (1)
255− {
256− printf (" enter a max passengers number on the stations (0..20) = ");
257− scanf ("%d", &N);
258− if ((N >= 0) && (N<=20))
259− break;
260− }
261− while (1)
262− {
263− printf (" enter a passengers on the taxi (0..10) = ");
264− scanf ("%d", &w);
265− if ((w >= 0) && (w<=10))
266− break;
267− }
268− init_scr();
269−
270− srand (time (0));
271− br1 = rand () % 6; // passngers on the station1, 0..5
272− if (br1 > N)
273− br1 = N;
274−
275− br2 = rand () % 6;
276− if (br2 > N - br1)
277− br2 = N - br1;
278−
279− br3 = rand () % 6;
280− if (br3 > N - br1 - br2)
281− br3 = N - br1 - br2;
282−
283− br4 = N - br1 - br2 - br3;
284− while (br4 > 5)
285− {
286− br4--;
287− if (br1 < 5) { br1++; continue; }
288− if (br2 < 5) { br2++; continue; }
289− if (br3 < 5) { br3++; continue; }
290− }
291−
292− hs_br = CreateSemaphore (NULL, 1, 1, NULL);
293− hs_wc = CreateSemaphore (NULL, 1, 1, NULL);
294− hs_ds = CreateSemaphore (NULL, 1, 1, NULL);
295− hs_st = CreateSemaphore (NULL, 1, 1, NULL);
296−
297− draw_statistics();
298− for (i=1; i<=4; i++)
299− draw_station(i);
300−
301− htaxi = CreateThread (NULL, 4096, Taxi, NULL, 0, NULL);
302−
303− for (i = 0; i < br1; i++) {
304− srand(time(0));
305− Sleep(600*(4+rand()%10));
306− hproc[i] = CreateThread (NULL, 4096, Si1, NULL, 0, NULL);
307− }
308−
309− for (i = 0; i < br2; i++) {
310− srand(time(0));
311− Sleep(400*(4+rand()%10));
312− hproc2[i] = CreateThread (NULL, 4096, Si2, NULL, 0, NULL);
313− }
314−
315− for (i = 0; i < br3; i++) {
316− srand(time(0));
317− Sleep(600*(4+rand()%10));
318− hproc3[i] = CreateThread (NULL, 4096, Si3, NULL, 0, NULL);
319− }
320−
321− for (i = 0; i < br4; i++) {
322− srand(time(0));
323− Sleep(600*(4+rand()%10));
324− hproc4[i] = CreateThread (NULL, 4096, Si4, NULL, 0, NULL);
325− }
326−
327− getch ();
328− restore_scr();
329− return 0;
330−}
331−
332−static
333−void draw_taxi (int orientation, COORD coords)
334−{
335− static int old_orientation;
336− static COORD old_coords;
337−
338− if (orientation != 0) {
339− old_orientation = orientation;
340− old_coords = coords;
341− }
342− else {
343− orientation = old_orientation;
344− coords = old_coords;
345− }
346−
347− if (orientation == 1)
348− {
349− int f, b, ii;
350− f = 5;
351− if (w < 5)
352− f = w;
353− b = w - f;
354−
355− write_console (" ----- ", 8, coords, tx_attr);
356−
357− coords.Y++;
358− write_console (" | |", 8, coords, tx_attr);
359− coords.X += 2 + 5 - b;
360− write_console ( "ooooo", b, coords, tx_attr);
361− coords.X -= 2 + 5 - b;
362−
363− coords.Y++;
364− write_console (" | |", 8, coords, tx_attr);
365− coords.X += 2 + 5 - f;
366− write_console ( "ooooo", f, coords, tx_attr);
367− coords.X -= 2 + 5 - f;
368−
369− coords.Y++;
370− write_console (" ----- ", 8, coords, tx_attr);
371−
372− for (ii=0; ii<5; ii++)
373− {
374− coords.Y++;
375− write_console (" ", 8, coords, tx_attr);
376− }
377− }
378− else
379− if (orientation == 2)
380− {
381− COORD coords2;
382− int f, b, ii;
383−
384− f = 5;
385− if (f > w)
386− f = w;
387− b = w - f;
388−
389− coords2.X = coords.X;
390− coords.Y--;
391− write_console (" ", 7, coords, tx_attr);
392− coords.Y++;
393− write_console (" -- ", 7, coords, tx_attr);
394−
395− for (ii=0; ii < 5; ii++)
396− {
397− coords2.Y = coords.Y + 5 - ii;
398− if (f && b) {
399− write_console (" |oo| ", 7, coords2, tx_attr);
400− f--; b--;
401− }
402− else
403− if (f) {
404− write_console (" |o | ", 7, coords2, tx_attr);
405− f--;
406− }
407− else {
408− write_console (" | | ", 7, coords2, tx_attr);
409− }
410− }
411−
412− coords.Y += 6;
413− write_console (" -- ", 7, coords, tx_attr);
414− }
415− else
416− if (orientation == 3)
417− {
418− int ii;
419− for (ii=0; ii < 4; ii++)
420− {
421− write_console (" ", 8, coords, tx_attr);
422− coords.Y++;
423− }
424−
425− write_console (" ----- ", 8, coords, tx_attr);
426−
427− coords.Y++;
428− write_console ("| | ", 8, coords, tx_attr);
429− coords.X++;
430− ii = 5;
431− if (w < 5)
432− ii = w;
433− write_console ( "ooooo", ii, coords, tx_attr);
434− coords.X--;
435−
436− coords.Y++;
437− write_console ("| | ", 8, coords, tx_attr);
438− coords.X++;
439− ii = w - ii;
440− write_console ( "ooooo", ii, coords, tx_attr);
441− coords.X--;
442−
443− coords.Y++;
444− write_console (" ----- ", 8, coords, tx_attr);
445− }
446− else
447− if (orientation == 4)
448− {
449− int f, b, ii;
450−
451− f = 5;
452− if (f > w)
453− f = w;
454− b = w - f;
455−
456− write_console (" -- ", 7, coords, tx_attr);
457−
458− for (ii=0; ii < 5; ii++)
459− {
460− coords.Y++;
461− if (f && b) {
462− write_console (" |oo| ", 7, coords, tx_attr);
463− f--; b--;
464− }
465− else
466− if (f) {
467− write_console (" | o| ", 7, coords, tx_attr);
468− f--;
469− }
470− else
471− write_console (" | | ", 7, coords, tx_attr);
472− }
473−
474− coords.Y++;
475− write_console (" -- ", 7, coords, tx_attr);
476−
477− coords.Y++;
478− write_console (" ", 7, coords, tx_attr);
479− }
480−}
481−
482−DWORD WINAPI
483−Taxi (LPVOID _unused_thread_parm)
484−{
485− int i, ii, j, k, f, b;
486− int empty_st;
487− COORD coords;
488− DWORD len;
489− char msg[100];
490−
491− for (j = 0; j < 48; j++) // taxi left
492− {
493− coords.X = 59 - j;
494− coords.Y = 11;
495− draw_taxi (3, coords);
496−
497− if (j == 23) // station 3 for a passengers exit
498− {
499− int br3 = add_br (3, 0);
500− empty_st = (br3 == 0);
501−
502− srand (time (0));
503− f = rand () % (16 - br3); // passengers can be on the station
504−
505− if (w)
506− {
507− while(f)
508− {
509− if (w==0)
510− break;
511−
512− f--;
513− w--;
514− add_br (3, 1);
515− draw_statistics();
516− draw_station(3);
517− draw_taxi(0, coords);
518− Sleep (300);
519− }
520− Sleep (3000);
521− }
522− }
523−
524− if (j == 28) // station 3 for enter
525− {
526− int br3 = add_br (3, 0);
527− f = rand () % (11 - w); // passengers into taxi
528−
529−
530− if (br3 && !empty_st)
531− {
532− while (br3 > 0 && f > 0)
533− {
534− f--;
535− w++;
536− br3 = add_br (3, -1);
537−
538− draw_statistics();
539− draw_station(3);
540− draw_taxi(0, coords);
541− Sleep (300);
542− }
543− Sleep (3000);
544− }
545− }
546− Sleep (300);
547− }
548−
549− for (i = 0; i < 10; i++) // taxi up
550− {
551− coords.X = 12;
552− coords.Y = 15 - i;
553− draw_taxi(4, coords);
554−
555− if (i == 4) // station 4 for exit
556− {
557− int br4 = add_br (4, 0);
558− empty_st = (br4 == 0);
559−
560− srand (time (0));
561− f = rand () % (16 - br4);
562−
563− if (w)
564− {
565− while(f)
566− {
567− if (w==0)
568− break;
569−
570− f--;
571− w--;
572− add_br (4, 1);
573− draw_statistics();
574− draw_station(4);
575− draw_taxi(0, coords);
576− Sleep (300);
577− }
578− Sleep (3000);
579− }
580− }
581−
582− if (i == 7) // station 4 for enter
583− {
584− int br4 = add_br (4, 0);
585− f = rand () % (11 - w);
586−
587−
588− if (br4 && !empty_st)
589− {
590− while (br4 > 0 && f > 0)
591− {
592− f--;
593− w++;
594− br4 = add_br (4, -1);
595−
596− draw_statistics();
597− draw_station(4);
598− draw_taxi(0, coords);
599− Sleep (300);
600− }
601− Sleep (3000);
602− }
603− }
604− Sleep (300);
605− }
606−
607− for (k = 0; k < 48; k++) // taxi rigth
608− {
609− coords.X = 12 + k;
610− coords.Y = 5;
611− draw_taxi (1, coords);
612−
613− if (k == 19) // station 1 for exit
614− {
615− int br1 = add_br (1, 0);
616− empty_st = (br1 == 0);
617−
618− srand (time (0));
619− f = rand () % (16 - br1);
620−
621− if (w)
622− {
623− while(f)
624− {
625− if (w==0)
626− break;
627−
628− f--;
629− w--;
630− add_br (1, 1);
631− draw_statistics();
632− draw_station(1);
633− draw_taxi(0, coords);
634− Sleep (300);
635− }
636− Sleep (3000);
637− }
638− }
639−
640− if (k == 23) // station 1 for enter
641− {
642− int br1 = add_br (1, 0);
643− f = rand () % (11 - w);
644−
645− if (br1 && !empty_st)
646− {
647− while (br1 > 0 && f > 0)
648− {
649− f--;
650− w++;
651− br1 = add_br (1, -1);
652−
653− draw_statistics();
654− draw_station(1);
655− draw_taxi(0, coords);
656− Sleep (300);
657− }
658− Sleep (3000);
659− }
660− }
661− Sleep (300);
662− }
663−
664− for (i = 0; i < 9; i++) // taxi down
665− {
666− coords.X = 60;
667− coords.Y = 3 + i;
668− draw_taxi (2, coords);
669−
670− if (i == 4) // station 2 for exit
671− {
672− int br2 = add_br (2, 0);
673− empty_st = (br2 == 0);
674−
675− srand (time (0));
676− f = rand () % (16 - br2);
677−
678− if (w)
679− {
680− while(f)
681− {
682− if (w==0)
683− break;
684−
685− f--;
686− w--;
687− add_br (2, 1);
688− draw_statistics();
689− draw_station(2);
690− draw_taxi(0, coords);
691− Sleep (300);
692− }
693− Sleep (3000);
694− }
695− }
696−
697− if (i == 6) // station 2 for enter
698− {
699− int br2 = add_br (2, 0);
700− f = rand () % (11 - w);
701−
702− if (br2 && !empty_st)
703− {
704− while (br2 > 0 && f > 0)
705− {
706− f--;
707− w++;
708− br2 = add_br (2, -1);
709−
710− draw_statistics();
711− draw_station(2);
712− draw_taxi(0, coords);
713− Sleep (300);
714− }
715− Sleep (3000);
716− }
717− }
718−
719− Sleep (300);
720− }
721−
722− ht2 = CreateThread (NULL, 4096, Taxi, NULL, 0, NULL); // endless loop
723− return 0;
724−}
725−
726−DWORD WINAPI
727−Si1 (LPVOID _unused_thread_parm) // a passengers thread for the station 1
728−{
729− int a, j, n;
730− COORD coords;
731−
732− srand (time (0));
733− a = 6 + rand () % 74; // a new passengers number, 6..79
734−
735− while (a != 40)
736− {
737− if (a < 40)
738− a++;
739− else
740− a--;
741−
742− coords.X = a;
743− coords.Y = 0;
744−
745− if (a < 40)
746− write_console (" *", 2, coords, si_attr);
747− else
748− write_console ("* ", 2, coords, si_attr);
749−
750− Sleep (1000);
751− }
752−
753− add_br (1, 1);
754− draw_station(1);
755− draw_statistics();
756−
757− Sleep (1000);
758− return 0;
759−}
760−
761−DWORD WINAPI
762−Si3 (LPVOID _unused_thread_parm) // a passengers thread for the station 3
763−{
764− int b, j, n;
765− COORD coords;
766−
767− srand (time (0));
768− b = 1 + rand () % 79;
769−
770− while (b != 33)
771− {
772− if (b < 33)
773− b++;
774− else
775− b--;
776−
777− coords.X = b;
778− coords.Y = 24;
779−
780− if (b < 33)
781− write_console (" *", 2, coords, si_attr);
782− else
783− write_console ("* ", 2, coords, si_attr);
784−
785− Sleep (1000);
786− }
787−
788− add_br (3, 1);
789− draw_station(3);
790− draw_statistics();
791−
792− Sleep (1000);
793− return 0;
794−}
795−
796−DWORD WINAPI
797−Si4 (LPVOID _unused_thread_parm) // a passengers thread for the station 4
798−{
799−
800− int c, j, n;
801− COORD coords;
802−
803− srand (time (0));
804− c = 6 + rand () % 19; // a new passengers number, 6..24
805−
806− coords.X = 0;
807− while (c != 10)
808− {
809− coords.Y = c;
810− write_console ("*", 1, coords, si_attr);
811−
812− if (c < 10) {
813− c++;
814− coords.Y--;
815− }
816− else {
817− c--;
818− coords.Y++;
819− }
820− write_console (" ", 1, coords, si_attr);
821−
822− Sleep (1000);
823− }
824−
825− add_br (4, 1);
826− draw_station(4);
827− draw_statistics();
828−
829− Sleep (1000);
830− return 0;
831−}
832−
833−DWORD WINAPI
834−Si2 (LPVOID _unused_thread_parm) // a passengers thread for the station 2
835−{
836− int d, j, n;
837− COORD coords;
838−
839− srand (time (0));
840− d = 1 + rand () % 24; // a new passengers number, 1..24
841−
842− coords.X = 79;
843− while (d != 14)
844− {
845− coords.Y = d;
846− write_console ("*", 1, coords, si_attr);
847− if (d < 14)
848− {
849− d++;
850− coords.Y--;
851− }
852− else
853− {
854− d--;
855− coords.Y++;
856− }
857− write_console (" ", 1, coords, si_attr);
858− Sleep (1000);
859− }
860−
861− add_br (2, 1);
862− draw_station(2);
863− draw_statistics();
864−
865− Sleep (1000);
866− return 0;
867−}
868−
869−UINT oldcp; // CodePage on the program start
870−CONSOLE_CURSOR_INFO old_ci;
871−
872−void init_scr()
873−{
874− hstdout = GetStdHandle (STD_OUTPUT_HANDLE);
875− if (hstdout == INVALID_HANDLE_VALUE)
876− {
877− printf ("Error, can't get console handle\n");
878− exit (1);
879− }
880−
881− if (oldcp == 0)
882− {
883− oldcp = GetConsoleOutputCP();
884− SetConsoleOutputCP(CP_UTF8);
885−
886− GetConsoleCursorInfo (hstdout, &old_ci);
887− }
888− else
889− {
890− CONSOLE_CURSOR_INFO new_ci;
891−
892− new_ci.bVisible = FALSE;
893− new_ci.dwSize = old_ci.dwSize;
894− SetConsoleCursorInfo (hstdout, &new_ci);
895− }
896−
897− clrscr ();
898−}
899−
900−void restore_scr()
901−{
902− SetConsoleOutputCP(oldcp);
903− SetConsoleCursorInfo (hstdout, &old_ci);
904− clrscr ();
905−}
906−
907−void clrscr()
908−{
909− CONSOLE_SCREEN_BUFFER_INFO csbi;
910− DWORD nocw;
911− COORD coords;
912−
913− SetConsoleTextAttribute (hstdout, FOREGROUND_RED|FOREGROUND_BLUE|FOREGROUND_GREEN);
914− GetConsoleScreenBufferInfo (hstdout, &csbi);
915−
916− // printf ("csbi.dwSize.X=%u csbi.dwSize.Y=%u\n",
917− // csbi.dwSize.X, csbi.dwSize.Y);
918− // getch ();
919−
920− coords.X=0; coords.Y=0;
921− SetConsoleCursorPosition (hstdout, coords);
922− FillConsoleOutputCharacterA(hstdout, ' ', csbi.dwSize.X * csbi.dwSize.Y, coords, &nocw);
923−}
924−
925−void write_console(const char *msg, DWORD len, COORD coords, DWORD attr)
926−{
927− DWORD len2;
928−
929− WaitForSingleObject (hs_wc, INFINITE);
930−
931− SetConsoleTextAttribute (hstdout, attr);
932− SetConsoleCursorPosition (hstdout, coords);
933− WriteConsole (hstdout, msg, len, &len2, NULL);
934−
935− ReleaseSemaphore (hs_wc, 1, NULL);
936−}
937−
938−int add_br (int n, int addon)
939−{
940− int new;
941−
942− WaitForSingleObject (hs_br, INFINITE);
943− br[n] += addon;
944− new = br[n];
945− ReleaseSemaphore (hs_br, 1, NULL);
946−
947− return new;
948−}
win32/include/winapi/_bsd_types.h+0−21
@@ -1,21 +0,0 @@
1−/**
2− * This file has no copyright assigned and is placed in the Public Domain.
3− * This file is part of the w64 mingw-runtime package.
4− * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5− */
6−
7−#ifndef _BSDTYPES_DEFINED
8−#define _BSDTYPES_DEFINED
9−
10−typedef unsigned char u_char;
11−typedef unsigned short u_short;
12−typedef unsigned int u_int;
13−typedef unsigned long u_long;
14−#if defined(__GNUC__) || \
15− defined(__GNUG__)
16−__extension__
17−#endif /* gcc / g++ */
18−typedef unsigned long long u_int64;
19−
20−#endif /* _BSDTYPES_DEFINED */
21−
win32/include/winapi/_mingw_unicode.h+0−33
@@ -1,33 +0,0 @@
1−/**
2− * This file has no copyright assigned and is placed in the Public Domain.
3− * This file is part of the w64 mingw-runtime package.
4− * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5− */
6−
7−#if !defined(_INC_CRT_UNICODE_MACROS)
8−/* _INC_CRT_UNICODE_MACROS defined based on UNICODE flag */
9−
10−#if defined(UNICODE)
11−# define _INC_CRT_UNICODE_MACROS 1
12−# define __MINGW_NAME_AW(func) func##W
13−# define __MINGW_NAME_AW_EXT(func,ext) func##W##ext
14−# define __MINGW_NAME_UAW(func) func##_W
15−# define __MINGW_NAME_UAW_EXT(func,ext) func##_W_##ext
16−# define __MINGW_STRING_AW(str) L##str /* same as TEXT() from winnt.h */
17−# define __MINGW_PROCNAMEEXT_AW "W"
18−#else
19−# define _INC_CRT_UNICODE_MACROS 2
20−# define __MINGW_NAME_AW(func) func##A
21−# define __MINGW_NAME_AW_EXT(func,ext) func##A##ext
22−# define __MINGW_NAME_UAW(func) func##_A
23−# define __MINGW_NAME_UAW_EXT(func,ext) func##_A_##ext
24−# define __MINGW_STRING_AW(str) str /* same as TEXT() from winnt.h */
25−# define __MINGW_PROCNAMEEXT_AW "A"
26−#endif
27−
28−#define __MINGW_TYPEDEF_AW(type) \
29− typedef __MINGW_NAME_AW(type) type;
30−#define __MINGW_TYPEDEF_UAW(type) \
31− typedef __MINGW_NAME_UAW(type) type;
32−
33−#endif /* !defined(_INC_CRT_UNICODE_MACROS) */
win32/include/winapi/_timeval.h+0−23
@@ -1,23 +0,0 @@
1−/**
2− * This file has no copyright assigned and is placed in the Public Domain.
3− * This file is part of the w64 mingw-runtime package.
4− * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5− */
6−
7−#ifndef _TIMEVAL_DEFINED
8−#define _TIMEVAL_DEFINED
9−
10−struct timeval
11−{
12− long tv_sec;
13− long tv_usec;
14−};
15−
16−#define timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec)
17−#define timercmp(tvp,uvp,cmp) \
18− ((tvp)->tv_sec cmp (uvp)->tv_sec || \
19− ((tvp)->tv_sec == (uvp)->tv_sec && (tvp)->tv_usec cmp (uvp)->tv_usec))
20−#define timerclear(tvp) (tvp)->tv_sec = (tvp)->tv_usec = 0
21−
22−#endif /* _TIMEVAL_DEFINED */
23−
win32/include/winapi/in6addr.h+0−28
@@ -1,28 +0,0 @@
1−/**
2− * This file has no copyright assigned and is placed in the Public Domain.
3− * This file is part of the w64 mingw-runtime package.
4− * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5− */
6−
7−#ifndef s6_addr
8−
9−#include <_bsd_types.h>
10−
11−typedef struct in6_addr {
12− union {
13− u_char Byte[16];
14− u_short Word[8];
15− } u;
16−} IN6_ADDR, *PIN6_ADDR, *LPIN6_ADDR;
17−
18−#define in_addr6 in6_addr
19−
20−#define _S6_un u
21−#define _S6_u8 Byte
22−#define s6_addr _S6_un._S6_u8
23−
24−#define s6_bytes u.Byte
25−#define s6_words u.Word
26−
27−#endif /* s6_addr */
28−
win32/include/winapi/inaddr.h+0−27
@@ -1,27 +0,0 @@
1−/**
2− * This file has no copyright assigned and is placed in the Public Domain.
3− * This file is part of the w64 mingw-runtime package.
4− * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5− */
6−
7−#ifndef s_addr
8−
9−#include <_bsd_types.h>
10−
11−typedef struct in_addr {
12− union {
13− struct { u_char s_b1, s_b2, s_b3, s_b4; } S_un_b;
14− struct { u_short s_w1, s_w2; } S_un_w;
15− u_long S_addr;
16− } S_un;
17−} IN_ADDR, *PIN_ADDR, *LPIN_ADDR;
18−
19−#define s_addr S_un.S_addr
20−#define s_host S_un.S_un_b.s_b2
21−#define s_net S_un.S_un_b.s_b1
22−#define s_imp S_un.S_un_w.s_w2
23−#define s_impno S_un.S_un_b.s_b4
24−#define s_lh S_un.S_un_b.s_b3
25−
26−#endif /* s_addr */
27−
win32/include/winapi/mstcpip.h+0−195
@@ -1,195 +0,0 @@
1−/**
2− * This file has no copyright assigned and is placed in the Public Domain.
3− * This file is part of the w64 mingw-runtime package.
4− * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5− */
6−#ifndef _MSTCPIP_
7−#define _MSTCPIP_
8−
9−#include <_mingw_unicode.h>
10−
11−struct tcp_keepalive {
12− u_long onoff;
13− u_long keepalivetime;
14− u_long keepaliveinterval;
15−};
16−
17−#define SIO_RCVALL _WSAIOW(IOC_VENDOR,1)
18−#define SIO_RCVALL_MCAST _WSAIOW(IOC_VENDOR,2)
19−#define SIO_RCVALL_IGMPMCAST _WSAIOW(IOC_VENDOR,3)
20−#define SIO_KEEPALIVE_VALS _WSAIOW(IOC_VENDOR,4)
21−#define SIO_ABSORB_RTRALERT _WSAIOW(IOC_VENDOR,5)
22−#define SIO_UCAST_IF _WSAIOW(IOC_VENDOR,6)
23−#define SIO_LIMIT_BROADCASTS _WSAIOW(IOC_VENDOR,7)
24−#define SIO_INDEX_BIND _WSAIOW(IOC_VENDOR,8)
25−#define SIO_INDEX_MCASTIF _WSAIOW(IOC_VENDOR,9)
26−#define SIO_INDEX_ADD_MCAST _WSAIOW(IOC_VENDOR,10)
27−#define SIO_INDEX_DEL_MCAST _WSAIOW(IOC_VENDOR,11)
28−
29−#define RCVALL_OFF 0
30−#define RCVALL_ON 1
31−#define RCVALL_SOCKETLEVELONLY 2
32−
33−#if (_WIN32_WINNT >= 0x0502)
34−#define SOCKET_SETTINGS_GUARANTEE_ENCRYPTION 0x00000001
35−#define SOCKET_SETTINGS_ALLOW_INSECURE 0x00000002
36−
37−typedef enum _SOCKET_SECURITY_PROTOCOL {
38− SOCKET_SECURITY_PROTOCOL_DEFAULT,
39− SOCKET_SECURITY_PROTOCOL_IPSEC,
40− SOCKET_SECURITY_PROTOCOL_INVALID
41−} SOCKET_SECURITY_PROTOCOL;
42−
43−typedef enum _SOCKET_USAGE_TYPE {
44− SYSTEM_CRITICAL_SOCKET = 1
45−} SOCKET_USAGE_TYPE;
46−
47−typedef struct _SOCKET_PEER_TARGET_NAME {
48− SOCKET_SECURITY_PROTOCOL SecurityProtocol;
49− SOCKADDR_STORAGE PeerAddress;
50− ULONG PeerTargetNameStringLen;
51− wchar_t AllStrings[];
52−} SOCKET_PEER_TARGET_NAME;
53−
54−#define SOCKET_INFO_CONNECTION_SECURED 0x00000001
55−#define SOCKET_INFO_CONNECTION_ENCRYPTED 0x00000002
56−#define SOCKET_INFO_CONNECTION_IMPERSONATED 0x00000004
57−
58−typedef struct _SOCKET_SECURITY_QUERY_INFO {
59− SOCKET_SECURITY_PROTOCOL SecurityProtocol;
60− ULONG Flags;
61− UINT64 PeerApplicationAccessTokenHandle;
62− UINT64 PeerMachineAccessTokenHandle;
63−} SOCKET_SECURITY_QUERY_INFO;
64−
65−typedef struct _SOCKET_SECURITY_QUERY_TEMPLATE {
66− SOCKET_SECURITY_PROTOCOL SecurityProtocol;
67− SOCKADDR_STORAGE PeerAddress;
68− ULONG PeerTokenAccessMask;
69−} SOCKET_SECURITY_QUERY_TEMPLATE;
70−
71−typedef struct _SOCKET_SECURITY_SETTINGS {
72− SOCKET_SECURITY_PROTOCOL SecurityProtocol;
73− ULONG SecurityFlags;
74−} SOCKET_SECURITY_SETTINGS;
75−
76−#define SOCKET_SETTINGS_IPSEC_SKIP_FILTER_INSTANTIATION 0x00000001
77−
78−typedef struct _SOCKET_SECURITY_SETTINGS_IPSEC {
79− SOCKET_SECURITY_PROTOCOL SecurityProtocol;
80− ULONG SecurityFlags;
81− ULONG IpsecFlags;
82− GUID AuthipMMPolicyKey;
83− GUID AuthipQMPolicyKey;
84− GUID Reserved;
85− UINT64 Reserved2;
86− ULONG UserNameStringLen;
87− ULONG DomainNameStringLen;
88− ULONG PasswordStringLen;
89− wchar_t AllStrings[];
90−} SOCKET_SECURITY_SETTINGS_IPSEC;
91−
92−#define RtlIpv6AddressToString __MINGW_NAME_AW(RtlIpv6AddressToString)
93−#define RtlIpv6AddressToStringEx __MINGW_NAME_AW(RtlIpv6AddressToStringEx)
94−
95−LPWSTR NTAPI RtlIpv6AddressToStringA(
96− const IN6_ADDR *Addr,
97− LPSTR S
98−);
99−
100−LPSTR NTAPI RtlIpv6AddressToStringW(
101− const IN6_ADDR *Addr,
102− LPWSTR S
103−);
104−
105−LONG NTAPI RtlIpv6AddressToStringExA(
106− const IN6_ADDR *Address,
107− ULONG ScopeId,
108− USHORT Port,
109− LPSTR AddressString,
110− PULONG AddressStringLength
111−);
112−
113−LONG NTAPI RtlIpv6AddressToStringExW(
114− const IN6_ADDR *Address,
115− ULONG ScopeId,
116− USHORT Port,
117− LPWSTR AddressString,
118− PULONG AddressStringLength
119−);
120−
121−#define RtlIpv4AddressToString __MINGW_NAME_AW(RtlIpv4AddressToString)
122−LPTSTR NTAPI RtlIpv4AddressToStringA(
123− const IN_ADDR *Addr,
124− LPSTR S
125−);
126−
127−LPTSTR NTAPI RtlIpv4AddressToStringW(
128− const IN_ADDR *Addr,
129− LPWSTR S
130−);
131−
132−#define RtlIpv4AddressToStringEx __MINGW_NAME_AW(RtlIpv4AddressToStringEx)
133−LONG NTAPI RtlIpv4AddressToStringExA(
134− const IN_ADDR *Address,
135− USHORT Port,
136− LPSTR AddressString,
137− PULONG AddressStringLength
138−);
139−
140−LONG NTAPI RtlIpv4AddressToStringExW(
141− const IN_ADDR *Address,
142− USHORT Port,
143− LPWSTR AddressString,
144− PULONG AddressStringLength
145−);
146−
147−#define RtlIpv4StringToAddress __MINGW_NAME_AW(RtlIpv4StringToAddress)
148−LONG NTAPI RtlIpv4StringToAddressA(
149− PCSTR S,
150− BOOLEAN Strict,
151− LPSTR *Terminator,
152− IN_ADDR *Addr
153−);
154−
155−LONG NTAPI RtlIpv4StringToAddressW(
156− PCWSTR S,
157− BOOLEAN Strict,
158− LPWSTR *Terminator,
159− IN_ADDR *Addr
160−);
161−
162−#define RtlIpv4StringToAddressEx __MINGW_NAME_AW(RtlIpv4StringToAddressEx)
163−LONG NTAPI RtlIpv4StringToAddressExA(
164− PCSTR AddressString,
165− BOOLEAN Strict,
166− IN_ADDR *Address,
167− PUSHORT Port
168−);
169−
170−LONG NTAPI RtlIpv4StringToAddressExW(
171− PCWSTR AddressString,
172− BOOLEAN Strict,
173− IN_ADDR *Address,
174− PUSHORT Port
175−);
176−
177−#define RtlIpv6StringToAddressEx __MINGW_NAME_AW(RtlIpv6StringToAddressEx)
178−LONG NTAPI RtlIpv6StringToAddressExA(
179− PCSTR AddressString,
180− IN6_ADDR *Address,
181− PULONG ScopeId,
182− PUSHORT Port
183−);
184−
185−LONG NTAPI RtlIpv6StringToAddressExW(
186− PCSTR AddressString,
187− IN6_ADDR *Address,
188− PULONG ScopeId,
189− PUSHORT Port
190−);
191−
192−#endif /*(_WIN32_WINNT >= 0x0502)*/
193−
194−#endif /* _MSTCPIP_ */
195−
win32/include/winapi/mswsock.h+0−193
@@ -1,193 +0,0 @@
1−/**
2− * This file has no copyright assigned and is placed in the Public Domain.
3− * This file is part of the mingw-w64 runtime package.
4− * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5− */
6−
7−#ifndef _MSWSOCK_
8−#define _MSWSOCK_
9−
10−#include <winsock2.h>
11−
12−#ifdef __cplusplus
13−extern "C" {
14−#endif
15−
16−#define SO_CONNDATA 0x7000
17−#define SO_CONNOPT 0x7001
18−#define SO_DISCDATA 0x7002
19−#define SO_DISCOPT 0x7003
20−#define SO_CONNDATALEN 0x7004
21−#define SO_CONNOPTLEN 0x7005
22−#define SO_DISCDATALEN 0x7006
23−#define SO_DISCOPTLEN 0x7007
24−
25−#define SO_OPENTYPE 0x7008
26−
27−#define SO_SYNCHRONOUS_ALERT 0x10
28−#define SO_SYNCHRONOUS_NONALERT 0x20
29−
30−#define SO_MAXDG 0x7009
31−#define SO_MAXPATHDG 0x700A
32−#define SO_UPDATE_ACCEPT_CONTEXT 0x700B
33−#define SO_CONNECT_TIME 0x700C
34−#define SO_UPDATE_CONNECT_CONTEXT 0x7010
35−
36−#define TCP_BSDURGENT 0x7000
37−
38−#define SIO_UDP_CONNRESET _WSAIOW(IOC_VENDOR,12)
39−#if (_WIN32_WINNT < 0x0600) && (_WIN32_WINNT >= 0x0501)
40−#define SIO_SOCKET_CLOSE_NOTIFY _WSAIOW(IOC_VENDOR,13)
41−#endif /* >= XP && < VISTA */
42−#if (_WIN32_WINNT >= 0x0600)
43−#define SIO_BSP_HANDLE _WSAIOR(IOC_WS2,27)
44−#define SIO_BSP_HANDLE_SELECT _WSAIOR(IOC_WS2,28)
45−#define SIO_BSP_HANDLE_POLL _WSAIOR(IOC_WS2,29)
46−
47−#define SIO_EXT_SELECT _WSAIORW(IOC_WS2,30)
48−#define SIO_EXT_POLL _WSAIORW(IOC_WS2,31)
49−#define SIO_EXT_SENDMSG _WSAIORW(IOC_WS2,32)
50−
51−#define SIO_BASE_HANDLE _WSAIOR(IOC_WS2,34)
52−#endif /* _WIN32_WINNT >= 0x0600 */
53−
54−#ifndef __MSWSOCK_WS1_SHARED
55− int WINAPI WSARecvEx(SOCKET s,char *buf,int len,int *flags);
56−#endif /* __MSWSOCK_WS1_SHARED */
57−
58−#define TF_DISCONNECT 0x01
59−#define TF_REUSE_SOCKET 0x02
60−#define TF_WRITE_BEHIND 0x04
61−#define TF_USE_DEFAULT_WORKER 0x00
62−#define TF_USE_SYSTEM_THREAD 0x10
63−#define TF_USE_KERNEL_APC 0x20
64−
65−#include <psdk_inc/_xmitfile.h>
66−#ifndef __MSWSOCK_WS1_SHARED
67− WINBOOL WINAPI TransmitFile(SOCKET hSocket,HANDLE hFile,DWORD nNumberOfBytesToWrite,DWORD nNumberOfBytesPerSend,LPOVERLAPPED lpOverlapped,LPTRANSMIT_FILE_BUFFERS lpTransmitBuffers,DWORD dwReserved);
68− WINBOOL WINAPI AcceptEx(SOCKET sListenSocket,SOCKET sAcceptSocket,PVOID lpOutputBuffer,DWORD dwReceiveDataLength,DWORD dwLocalAddressLength,DWORD dwRemoteAddressLength,LPDWORD lpdwBytesReceived,LPOVERLAPPED lpOverlapped);
69− VOID WINAPI GetAcceptExSockaddrs(PVOID lpOutputBuffer,DWORD dwReceiveDataLength,DWORD dwLocalAddressLength,DWORD dwRemoteAddressLength,struct sockaddr **LocalSockaddr,LPINT LocalSockaddrLength,struct sockaddr **RemoteSockaddr,LPINT RemoteSockaddrLength);
70−#endif /* __MSWSOCK_WS1_SHARED */
71−
72− typedef WINBOOL (WINAPI *LPFN_TRANSMITFILE)(SOCKET hSocket,HANDLE hFile,DWORD nNumberOfBytesToWrite,DWORD nNumberOfBytesPerSend,LPOVERLAPPED lpOverlapped,LPTRANSMIT_FILE_BUFFERS lpTransmitBuffers,DWORD dwReserved);
73−
74−#define WSAID_TRANSMITFILE {0xb5367df0,0xcbac,0x11cf,{0x95,0xca,0x00,0x80,0x5f,0x48,0xa1,0x92}}
75−
76− typedef WINBOOL (WINAPI *LPFN_ACCEPTEX)(SOCKET sListenSocket,SOCKET sAcceptSocket,PVOID lpOutputBuffer,DWORD dwReceiveDataLength,DWORD dwLocalAddressLength,DWORD dwRemoteAddressLength,LPDWORD lpdwBytesReceived,LPOVERLAPPED lpOverlapped);
77−
78−#define WSAID_ACCEPTEX {0xb5367df1,0xcbac,0x11cf,{0x95,0xca,0x00,0x80,0x5f,0x48,0xa1,0x92}}
79−
80− typedef VOID (WINAPI *LPFN_GETACCEPTEXSOCKADDRS)(PVOID lpOutputBuffer,DWORD dwReceiveDataLength,DWORD dwLocalAddressLength,DWORD dwRemoteAddressLength,struct sockaddr **LocalSockaddr,LPINT LocalSockaddrLength,struct sockaddr **RemoteSockaddr,LPINT RemoteSockaddrLength);
81−
82−#define WSAID_GETACCEPTEXSOCKADDRS {0xb5367df2,0xcbac,0x11cf,{0x95,0xca,0x00,0x80,0x5f,0x48,0xa1,0x92}}
83−
84− typedef struct _TRANSMIT_PACKETS_ELEMENT {
85− ULONG dwElFlags;
86−#define TP_ELEMENT_MEMORY 1
87−#define TP_ELEMENT_FILE 2
88−#define TP_ELEMENT_EOP 4
89− ULONG cLength;
90− __C89_NAMELESS union {
91− __C89_NAMELESS struct {
92− LARGE_INTEGER nFileOffset;
93− HANDLE hFile;
94− };
95− PVOID pBuffer;
96− };
97− } TRANSMIT_PACKETS_ELEMENT,*PTRANSMIT_PACKETS_ELEMENT,*LPTRANSMIT_PACKETS_ELEMENT;
98−
99−#define TP_DISCONNECT TF_DISCONNECT
100−#define TP_REUSE_SOCKET TF_REUSE_SOCKET
101−#define TP_USE_DEFAULT_WORKER TF_USE_DEFAULT_WORKER
102−#define TP_USE_SYSTEM_THREAD TF_USE_SYSTEM_THREAD
103−#define TP_USE_KERNEL_APC TF_USE_KERNEL_APC
104−
105− typedef WINBOOL (WINAPI *LPFN_TRANSMITPACKETS) (SOCKET hSocket,LPTRANSMIT_PACKETS_ELEMENT lpPacketArray,DWORD nElementCount,DWORD nSendSize,LPOVERLAPPED lpOverlapped,DWORD dwFlags);
106−
107−#define WSAID_TRANSMITPACKETS {0xd9689da0,0x1f90,0x11d3,{0x99,0x71,0x00,0xc0,0x4f,0x68,0xc8,0x76}}
108−
109− typedef WINBOOL (WINAPI *LPFN_CONNECTEX)(SOCKET s,const struct sockaddr *name,int namelen,PVOID lpSendBuffer,DWORD dwSendDataLength,LPDWORD lpdwBytesSent,LPOVERLAPPED lpOverlapped);
110−
111−#define WSAID_CONNECTEX {0x25a207b9,0xddf3,0x4660,{0x8e,0xe9,0x76,0xe5,0x8c,0x74,0x06,0x3e}}
112−
113− typedef WINBOOL (WINAPI *LPFN_DISCONNECTEX)(SOCKET s,LPOVERLAPPED lpOverlapped,DWORD dwFlags,DWORD dwReserved);
114−
115−#define WSAID_DISCONNECTEX {0x7fda2e11,0x8630,0x436f,{0xa0,0x31,0xf5,0x36,0xa6,0xee,0xc1,0x57}}
116−
117−#define DE_REUSE_SOCKET TF_REUSE_SOCKET
118−
119−#define NLA_NAMESPACE_GUID {0x6642243a,0x3ba8,0x4aa6,{0xba,0xa5,0x2e,0xb,0xd7,0x1f,0xdd,0x83}}
120−
121−#define NLA_SERVICE_CLASS_GUID {0x37e515,0xb5c9,0x4a43,{0xba,0xda,0x8b,0x48,0xa8,0x7a,0xd2,0x39}}
122−
123−#define NLA_ALLUSERS_NETWORK 0x00000001
124−#define NLA_FRIENDLY_NAME 0x00000002
125−
126− typedef enum _NLA_BLOB_DATA_TYPE {
127− NLA_RAW_DATA = 0,NLA_INTERFACE = 1,NLA_802_1X_LOCATION = 2,NLA_CONNECTIVITY = 3,NLA_ICS = 4
128− } NLA_BLOB_DATA_TYPE,*PNLA_BLOB_DATA_TYPE;
129−
130− typedef enum _NLA_CONNECTIVITY_TYPE {
131− NLA_NETWORK_AD_HOC = 0,NLA_NETWORK_MANAGED = 1,NLA_NETWORK_UNMANAGED = 2,NLA_NETWORK_UNKNOWN = 3
132− } NLA_CONNECTIVITY_TYPE,*PNLA_CONNECTIVITY_TYPE;
133−
134− typedef enum _NLA_INTERNET {
135− NLA_INTERNET_UNKNOWN = 0,NLA_INTERNET_NO = 1,NLA_INTERNET_YES = 2
136− } NLA_INTERNET,*PNLA_INTERNET;
137−
138− typedef struct _NLA_BLOB {
139− struct {
140− NLA_BLOB_DATA_TYPE type;
141− DWORD dwSize;
142− DWORD nextOffset;
143− } header;
144− union {
145− CHAR rawData[1];
146− struct {
147− DWORD dwType;
148− DWORD dwSpeed;
149− CHAR adapterName[1];
150− } interfaceData;
151− struct {
152− CHAR information[1];
153− } locationData;
154− struct {
155− NLA_CONNECTIVITY_TYPE type;
156− NLA_INTERNET internet;
157− } connectivity;
158− struct {
159− struct {
160− DWORD speed;
161− DWORD type;
162− DWORD state;
163− WCHAR machineName[256];
164− WCHAR sharedAdapterName[256];
165− } remote;
166− } ICS;
167− } data;
168− } NLA_BLOB,*PNLA_BLOB,*LPNLA_BLOB;
169−
170− typedef struct _WSACMSGHDR {
171− SIZE_T cmsg_len;
172− INT cmsg_level;
173− INT cmsg_type;
174− } WSACMSGHDR,*PWSACMSGHDR,*LPWSACMSGHDR;
175−
176−#define WSA_CMSGHDR_ALIGN(length) (((length) + TYPE_ALIGNMENT(WSACMSGHDR)-1) & (~(TYPE_ALIGNMENT(WSACMSGHDR)-1)))
177−#define WSA_CMSGDATA_ALIGN(length) (((length) + MAX_NATURAL_ALIGNMENT-1) & (~(MAX_NATURAL_ALIGNMENT-1)))
178−#define WSA_CMSG_FIRSTHDR(msg) (((msg)->Control.len >= sizeof(WSACMSGHDR)) ? (LPWSACMSGHDR)(msg)->Control.buf : (LPWSACMSGHDR)NULL)
179−#define WSA_CMSG_NXTHDR(msg,cmsg) ((!(cmsg)) ? WSA_CMSG_FIRSTHDR(msg) : ((((u_char *)(cmsg) + WSA_CMSGHDR_ALIGN((cmsg)->cmsg_len) + sizeof(WSACMSGHDR)) > (u_char *)((msg)->Control.buf) + (msg)->Control.len) ? (LPWSACMSGHDR)NULL : (LPWSACMSGHDR)((u_char *)(cmsg) + WSA_CMSGHDR_ALIGN((cmsg)->cmsg_len))))
180−#define WSA_CMSG_DATA(cmsg) ((u_char *)(cmsg) + WSA_CMSGDATA_ALIGN(sizeof(WSACMSGHDR)))
181−#define WSA_CMSG_SPACE(length) (WSA_CMSGDATA_ALIGN(sizeof(WSACMSGHDR) + WSA_CMSGHDR_ALIGN(length)))
182−#define WSA_CMSG_LEN(length) (WSA_CMSGDATA_ALIGN(sizeof(WSACMSGHDR)) + length)
183−
184−#define MSG_TRUNC 0x0100
185−#define MSG_CTRUNC 0x0200
186−#define MSG_BCAST 0x0400
187−#define MSG_MCAST 0x0800
188−
189−#ifdef __cplusplus
190−}
191−#endif
192−
193−#endif /* _MSWSOCK_ */
win32/include/winapi/psdk_inc/_fd_types.h+0−26
@@ -1,26 +0,0 @@
1−/**
2− * This file has no copyright assigned and is placed in the Public Domain.
3− * This file is part of the w64 mingw-runtime package.
4− * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5− */
6−
7−#ifndef ___WSA_FD_TYPES_H
8−#define ___WSA_FD_TYPES_H
9−
10−#include <psdk_inc/_socket_types.h>
11−
12−#ifndef FD_SETSIZE
13−#define FD_SETSIZE 64
14−#endif
15−typedef struct fd_set
16−{
17− u_int fd_count;
18− SOCKET fd_array[FD_SETSIZE];
19−} fd_set;
20−
21−typedef struct fd_set FD_SET;
22−typedef struct fd_set *PFD_SET;
23−typedef struct fd_set *LPFD_SET;
24−
25−#endif /* ___WSA_FD_TYPES_H */
26−
win32/include/winapi/psdk_inc/_ip_mreq1.h+0−18
@@ -1,18 +0,0 @@
1−/**
2− * This file has no copyright assigned and is placed in the Public Domain.
3− * This file is part of the w64 mingw-runtime package.
4− * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5− */
6−
7−#ifndef _MINGW_IP_MREQ1_H
8−#define _MINGW_IP_MREQ1_H
9−
10−#include <inaddr.h>
11−
12−struct ip_mreq {
13− struct in_addr imr_multiaddr;
14− struct in_addr imr_interface;
15−};
16−
17−#endif /* _MINGW_IP_MREQ1_H */
18−
win32/include/winapi/psdk_inc/_ip_types.h+0−104
@@ -1,104 +0,0 @@
1−/**
2− * This file has no copyright assigned and is placed in the Public Domain.
3− * This file is part of the w64 mingw-runtime package.
4− * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5− */
6−
7−#ifndef _MINGW_IP_TYPES_H
8−#define _MINGW_IP_TYPES_H
9−
10−#include <_bsd_types.h>
11−
12−#define h_addr h_addr_list[0]
13−
14−struct hostent {
15− char *h_name;
16− char **h_aliases;
17− short h_addrtype;
18− short h_length;
19− char **h_addr_list;
20−};
21−
22−struct netent {
23− char *n_name;
24− char **n_aliases;
25− short n_addrtype;
26− u_long n_net;
27−};
28−
29−struct servent {
30− char *s_name;
31− char **s_aliases;
32−#ifdef _WIN64
33− char *s_proto;
34− short s_port;
35−#else
36− short s_port;
37− char *s_proto;
38−#endif
39−};
40−
41−struct protoent {
42− char *p_name;
43− char **p_aliases;
44− short p_proto;
45−};
46−
47−typedef struct hostent HOSTENT;
48−typedef struct hostent *PHOSTENT;
49−typedef struct hostent *LPHOSTENT;
50−
51−typedef struct servent SERVENT;
52−typedef struct servent *PSERVENT;
53−typedef struct servent *LPSERVENT;
54−
55−typedef struct protoent PROTOENT;
56−typedef struct protoent *PPROTOENT;
57−typedef struct protoent *LPPROTOENT;
58−
59−
60−#include <inaddr.h>
61−
62−struct sockaddr_in {
63− short sin_family;
64− u_short sin_port;
65− struct in_addr sin_addr;
66− char sin_zero[8];
67−};
68−
69−struct sockaddr {
70− u_short sa_family;
71− char sa_data[14];
72−};
73−
74−struct sockproto {
75− u_short sp_family;
76− u_short sp_protocol;
77−};
78−
79−struct linger {
80− u_short l_onoff;
81− u_short l_linger;
82−};
83−
84−typedef struct sockaddr SOCKADDR;
85−typedef struct sockaddr *PSOCKADDR;
86−typedef struct sockaddr *LPSOCKADDR;
87−
88−typedef struct sockaddr_in SOCKADDR_IN;
89−typedef struct sockaddr_in *PSOCKADDR_IN;
90−typedef struct sockaddr_in *LPSOCKADDR_IN;
91−
92−typedef struct linger LINGER;
93−typedef struct linger *PLINGER;
94−typedef struct linger *LPLINGER;
95−
96−
97−#include <_timeval.h>
98−
99−typedef struct timeval TIMEVAL;
100−typedef struct timeval *PTIMEVAL;
101−typedef struct timeval *LPTIMEVAL;
102−
103−#endif /* _MINGW_IP_TYPES_H */
104−
win32/include/winapi/psdk_inc/_socket_types.h+0−20
@@ -1,20 +0,0 @@
1−/**
2− * This file has no copyright assigned and is placed in the Public Domain.
3− * This file is part of the w64 mingw-runtime package.
4− * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5− */
6−
7−#ifndef ___WSA_SOCKET_TYPES_H
8−#define ___WSA_SOCKET_TYPES_H
9−
10−#if 1
11−typedef UINT_PTR SOCKET;
12−#else
13−typedef INT_PTR SOCKET;
14−#endif
15−
16−#define INVALID_SOCKET (SOCKET)(~0)
17−#define SOCKET_ERROR (-1)
18−
19−#endif /* ___WSA_SOCKET_TYPES_H */
20−
win32/include/winapi/psdk_inc/_ws1_undef.h+0−248
@@ -1,248 +0,0 @@
1−/**
2− * This file has no copyright assigned and is placed in the Public Domain.
3− * This file is part of the w64 mingw-runtime package.
4− * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5− */
6−
7−#undef FD_CLR
8−#undef FD_ZERO
9−#undef FD_ISSET
10−#undef FD_SET
11−
12−#undef IOCPARM_MASK
13−#undef IOC_VOID
14−#undef IOC_OUT
15−#undef IOC_IN
16−#undef IOC_INOUT
17−
18−#undef _IO
19−#undef _IOR
20−#undef _IOW
21−
22−#undef FIONREAD
23−#undef FIONBIO
24−#undef FIOASYNC
25−
26−#undef SIOCSHIWAT
27−#undef SIOCGHIWAT
28−#undef SIOCSLOWAT
29−#undef SIOCGLOWAT
30−#undef SIOCATMARK
31−
32−#undef IPPROTO_IP
33−#undef IPPROTO_ICMP
34−#undef IPPROTO_IGMP
35−#undef IPPROTO_GGP
36−#undef IPPROTO_TCP
37−#undef IPPROTO_PUP
38−#undef IPPROTO_UDP
39−#undef IPPROTO_IDP
40−#undef IPPROTO_ND
41−
42−#undef IPPROTO_RAW
43−#undef IPPROTO_MAX
44−
45−#undef IPPORT_ECHO
46−#undef IPPORT_DISCARD
47−#undef IPPORT_SYSTAT
48−#undef IPPORT_DAYTIME
49−#undef IPPORT_NETSTAT
50−#undef IPPORT_FTP
51−#undef IPPORT_TELNET
52−#undef IPPORT_SMTP
53−#undef IPPORT_TIMESERVER
54−#undef IPPORT_NAMESERVER
55−#undef IPPORT_WHOIS
56−#undef IPPORT_MTP
57−
58−#undef IPPORT_TFTP
59−#undef IPPORT_RJE
60−#undef IPPORT_FINGER
61−#undef IPPORT_TTYLINK
62−#undef IPPORT_SUPDUP
63−
64−#undef IPPORT_EXECSERVER
65−#undef IPPORT_LOGINSERVER
66−#undef IPPORT_CMDSERVER
67−#undef IPPORT_EFSSERVER
68−
69−#undef IPPORT_BIFFUDP
70−#undef IPPORT_WHOSERVER
71−#undef IPPORT_ROUTESERVER
72−
73−#undef IPPORT_RESERVED
74−
75−#undef IMPLINK_IP
76−#undef IMPLINK_LOWEXPER
77−#undef IMPLINK_HIGHEXPER
78−
79−#undef IN_CLASSA
80−#undef IN_CLASSA_NET
81−#undef IN_CLASSA_NSHIFT
82−#undef IN_CLASSA_HOST
83−#undef IN_CLASSA_MAX
84−
85−#undef IN_CLASSB
86−#undef IN_CLASSB_NET
87−#undef IN_CLASSB_NSHIFT
88−#undef IN_CLASSB_HOST
89−#undef IN_CLASSB_MAX
90−
91−#undef IN_CLASSC
92−#undef IN_CLASSC_NET
93−#undef IN_CLASSC_NSHIFT
94−#undef IN_CLASSC_HOST
95−
96−#undef INADDR_ANY
97−#undef INADDR_LOOPBACK
98−#undef INADDR_BROADCAST
99−#undef INADDR_NONE
100−
101−#undef IP_OPTIONS
102−#undef IP_MULTICAST_IF
103−#undef IP_MULTICAST_TTL
104−#undef IP_MULTICAST_LOOP
105−#undef IP_ADD_MEMBERSHIP
106−#undef IP_DROP_MEMBERSHIP
107−#undef IP_TTL
108−#undef IP_TOS
109−#undef IP_DONTFRAGMENT
110−
111−#undef IP_DEFAULT_MULTICAST_TTL
112−#undef IP_DEFAULT_MULTICAST_LOOP
113−#undef IP_MAX_MEMBERSHIPS
114−
115−#undef SOCK_STREAM
116−#undef SOCK_DGRAM
117−#undef SOCK_RAW
118−#undef SOCK_RDM
119−#undef SOCK_SEQPACKET
120−
121−#undef SO_DEBUG
122−#undef SO_ACCEPTCONN
123−#undef SO_REUSEADDR
124−#undef SO_KEEPALIVE
125−#undef SO_DONTROUTE
126−#undef SO_BROADCAST
127−#undef SO_USELOOPBACK
128−#undef SO_LINGER
129−#undef SO_OOBINLINE
130−
131−#undef SO_DONTLINGER
132−
133−#undef SO_SNDBUF
134−#undef SO_RCVBUF
135−#undef SO_SNDLOWAT
136−#undef SO_RCVLOWAT
137−#undef SO_SNDTIMEO
138−#undef SO_RCVTIMEO
139−#undef SO_ERROR
140−#undef SO_TYPE
141−
142−#undef SO_CONNDATA
143−#undef SO_CONNOPT
144−#undef SO_DISCDATA
145−#undef SO_DISCOPT
146−#undef SO_CONNDATALEN
147−#undef SO_CONNOPTLEN
148−#undef SO_DISCDATALEN
149−#undef SO_DISCOPTLEN
150−
151−#undef SO_OPENTYPE
152−
153−#undef SO_SYNCHRONOUS_ALERT
154−#undef SO_SYNCHRONOUS_NONALERT
155−
156−#undef SO_MAXDG
157−#undef SO_MAXPATHDG
158−#undef SO_UPDATE_ACCEPT_CONTEXT
159−#undef SO_CONNECT_TIME
160−
161−#undef TCP_NODELAY
162−#undef TCP_BSDURGENT
163−
164−#undef AF_UNSPEC
165−#undef AF_UNIX
166−#undef AF_INET
167−#undef AF_IMPLINK
168−#undef AF_PUP
169−#undef AF_CHAOS
170−#undef AF_IPX
171−#undef AF_NS
172−#undef AF_ISO
173−#undef AF_OSI
174−#undef AF_ECMA
175−#undef AF_DATAKIT
176−#undef AF_CCITT
177−#undef AF_SNA
178−#undef AF_DECnet
179−#undef AF_DLI
180−#undef AF_LAT
181−#undef AF_HYLINK
182−#undef AF_APPLETALK
183−#undef AF_NETBIOS
184−#undef AF_VOICEVIEW
185−#undef AF_FIREFOX
186−#undef AF_UNKNOWN1
187−#undef AF_BAN
188−
189−#undef AF_MAX
190−
191−#undef PF_UNSPEC
192−#undef PF_UNIX
193−#undef PF_INET
194−#undef PF_IMPLINK
195−#undef PF_PUP
196−#undef PF_CHAOS
197−#undef PF_NS
198−#undef PF_IPX
199−#undef PF_ISO
200−#undef PF_OSI
201−#undef PF_ECMA
202−#undef PF_DATAKIT
203−#undef PF_CCITT
204−#undef PF_SNA
205−#undef PF_DECnet
206−#undef PF_DLI
207−#undef PF_LAT
208−#undef PF_HYLINK
209−#undef PF_APPLETALK
210−#undef PF_VOICEVIEW
211−#undef PF_FIREFOX
212−#undef PF_UNKNOWN1
213−#undef PF_BAN
214−
215−#undef PF_MAX
216−
217−#undef SOL_SOCKET
218−
219−#undef SOMAXCONN
220−
221−#undef MSG_OOB
222−#undef MSG_PEEK
223−#undef MSG_DONTROUTE
224−
225−#undef MSG_MAXIOVLEN
226−
227−#undef MSG_PARTIAL
228−
229−#undef MAXGETHOSTSTRUCT
230−
231−#undef FD_READ
232−#undef FD_WRITE
233−#undef FD_OOB
234−#undef FD_ACCEPT
235−#undef FD_CONNECT
236−#undef FD_CLOSE
237−
238−#undef TF_DISCONNECT
239−#undef TF_REUSE_SOCKET
240−#undef TF_WRITE_BEHIND
241−
242−#undef WSAMAKEASYNCREPLY
243−#undef WSAMAKESELECTREPLY
244−#undef WSAGETASYNCBUFLEN
245−#undef WSAGETASYNCERROR
246−#undef WSAGETSELECTEVENT
247−#undef WSAGETSELECTERROR
248−
win32/include/winapi/psdk_inc/_wsa_errnos.h+0−225
@@ -1,225 +0,0 @@
1−/**
2− * This file has no copyright assigned and is placed in the Public Domain.
3− * This file is part of the w64 mingw-runtime package.
4− * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5− */
6−
7−#ifndef WSABASEERR
8−
9−#define WSABASEERR 10000
10−
11−#define WSAEINTR (WSABASEERR + 4 )
12−#define WSAEBADF (WSABASEERR + 9 )
13−#define WSAEACCES (WSABASEERR + 13 )
14−#define WSAEFAULT (WSABASEERR + 14 )
15−#define WSAEINVAL (WSABASEERR + 22 )
16−#define WSAEMFILE (WSABASEERR + 24 )
17−
18−#define WSAEWOULDBLOCK (WSABASEERR + 35 )
19−#define WSAEINPROGRESS (WSABASEERR + 36 )
20−#define WSAEALREADY (WSABASEERR + 37 )
21−#define WSAENOTSOCK (WSABASEERR + 38 )
22−#define WSAEDESTADDRREQ (WSABASEERR + 39 )
23−#define WSAEMSGSIZE (WSABASEERR + 40 )
24−#define WSAEPROTOTYPE (WSABASEERR + 41 )
25−#define WSAENOPROTOOPT (WSABASEERR + 42 )
26−#define WSAEPROTONOSUPPORT (WSABASEERR + 43 )
27−#define WSAESOCKTNOSUPPORT (WSABASEERR + 44 )
28−#define WSAEOPNOTSUPP (WSABASEERR + 45 )
29−#define WSAEPFNOSUPPORT (WSABASEERR + 46 )
30−#define WSAEAFNOSUPPORT (WSABASEERR + 47 )
31−#define WSAEADDRINUSE (WSABASEERR + 48 )
32−#define WSAEADDRNOTAVAIL (WSABASEERR + 49 )
33−#define WSAENETDOWN (WSABASEERR + 50 )
34−#define WSAENETUNREACH (WSABASEERR + 51 )
35−#define WSAENETRESET (WSABASEERR + 52 )
36−#define WSAECONNABORTED (WSABASEERR + 53 )
37−#define WSAECONNRESET (WSABASEERR + 54 )
38−#define WSAENOBUFS (WSABASEERR + 55 )
39−#define WSAEISCONN (WSABASEERR + 56 )
40−#define WSAENOTCONN (WSABASEERR + 57 )
41−#define WSAESHUTDOWN (WSABASEERR + 58 )
42−#define WSAETOOMANYREFS (WSABASEERR + 59 )
43−#define WSAETIMEDOUT (WSABASEERR + 60 )
44−#define WSAECONNREFUSED (WSABASEERR + 61 )
45−#define WSAELOOP (WSABASEERR + 62 )
46−#define WSAENAMETOOLONG (WSABASEERR + 63 )
47−#define WSAEHOSTDOWN (WSABASEERR + 64 )
48−#define WSAEHOSTUNREACH (WSABASEERR + 65 )
49−#define WSAENOTEMPTY (WSABASEERR + 66 )
50−#define WSAEPROCLIM (WSABASEERR + 67 )
51−#define WSAEUSERS (WSABASEERR + 68 )
52−#define WSAEDQUOT (WSABASEERR + 69 )
53−#define WSAESTALE (WSABASEERR + 70 )
54−#define WSAEREMOTE (WSABASEERR + 71 )
55−
56−#define WSASYSNOTREADY (WSABASEERR + 91 )
57−#define WSAVERNOTSUPPORTED (WSABASEERR + 92 )
58−#define WSANOTINITIALISED (WSABASEERR + 93 )
59−
60−#define WSAEDISCON (WSABASEERR + 101 )
61−
62−#ifndef WSAHOST_NOT_FOUND
63−#define WSAHOST_NOT_FOUND (WSABASEERR + 1001)
64−#endif
65−#ifndef WSATRY_AGAIN
66−#define WSATRY_AGAIN (WSABASEERR + 1002)
67−#endif
68−#ifndef WSANO_RECOVERY
69−#define WSANO_RECOVERY (WSABASEERR + 1003)
70−#endif
71−#ifndef WSANO_DATA
72−#define WSANO_DATA (WSABASEERR + 1004)
73−#endif
74−
75−#endif /* WSABASEERR */
76−
77−#ifdef _WINSOCK2API_
78−
79−#ifndef WSAENOMORE
80−#define WSAENOMORE (WSABASEERR + 102)
81−#endif
82−#ifndef WSAECANCELLED
83−#define WSAECANCELLED (WSABASEERR + 103)
84−#endif
85−#ifndef WSAEINVALIDPROCTABLE
86−#define WSAEINVALIDPROCTABLE (WSABASEERR + 104)
87−#endif
88−#ifndef WSAEINVALIDPROVIDER
89−#define WSAEINVALIDPROVIDER (WSABASEERR + 105)
90−#endif
91−#ifndef WSAEPROVIDERFAILEDINIT
92−#define WSAEPROVIDERFAILEDINIT (WSABASEERR + 106)
93−#endif
94−#ifndef WSASYSCALLFAILURE
95−#define WSASYSCALLFAILURE (WSABASEERR + 107)
96−#endif
97−#ifndef WSASERVICE_NOT_FOUND
98−#define WSASERVICE_NOT_FOUND (WSABASEERR + 108)
99−#endif
100−#ifndef WSATYPE_NOT_FOUND
101−#define WSATYPE_NOT_FOUND (WSABASEERR + 109)
102−#endif
103−#ifndef WSA_E_NO_MORE
104−#define WSA_E_NO_MORE (WSABASEERR + 110)
105−#endif
106−#ifndef WSA_E_CANCELLED
107−#define WSA_E_CANCELLED (WSABASEERR + 111)
108−#endif
109−#ifndef WSAEREFUSED
110−#define WSAEREFUSED (WSABASEERR + 112)
111−#endif
112−#ifndef WSA_QOS_RECEIVERS
113−#define WSA_QOS_RECEIVERS (WSABASEERR + 1005)
114−#endif
115−#ifndef WSA_QOS_SENDERS
116−#define WSA_QOS_SENDERS (WSABASEERR + 1006)
117−#endif
118−#ifndef WSA_QOS_NO_SENDERS
119−#define WSA_QOS_NO_SENDERS (WSABASEERR + 1007)
120−#define WSA_QOS_NO_RECEIVERS (WSABASEERR + 1008)
121−#define WSA_QOS_REQUEST_CONFIRMED (WSABASEERR + 1009)
122−#define WSA_QOS_ADMISSION_FAILURE (WSABASEERR + 1010)
123−#define WSA_QOS_POLICY_FAILURE (WSABASEERR + 1011)
124−#define WSA_QOS_BAD_STYLE (WSABASEERR + 1012)
125−#define WSA_QOS_BAD_OBJECT (WSABASEERR + 1013)
126−#define WSA_QOS_TRAFFIC_CTRL_ERROR (WSABASEERR + 1014)
127−#define WSA_QOS_GENERIC_ERROR (WSABASEERR + 1015)
128−#define WSA_QOS_ESERVICETYPE (WSABASEERR + 1016)
129−#define WSA_QOS_EFLOWSPEC (WSABASEERR + 1017)
130−#define WSA_QOS_EPROVSPECBUF (WSABASEERR + 1018)
131−#endif
132−#ifndef WSA_QOS_EFILTERSTYLE
133−#define WSA_QOS_EFILTERSTYLE (WSABASEERR + 1019)
134−#endif
135−#ifndef WSA_QOS_EFILTERTYPE
136−#define WSA_QOS_EFILTERTYPE (WSABASEERR + 1020)
137−#endif
138−#ifndef WSA_QOS_EFILTERCOUNT
139−#define WSA_QOS_EFILTERCOUNT (WSABASEERR + 1021)
140−#endif
141−#ifndef WSA_QOS_EOBJLENGTH
142−#define WSA_QOS_EOBJLENGTH (WSABASEERR + 1022)
143−#endif
144−#ifndef WSA_QOS_EFLOWCOUNT
145−#define WSA_QOS_EFLOWCOUNT (WSABASEERR + 1023)
146−#endif
147−#ifndef WSA_QOS_EUNKNOWNPSOBJ
148−#define WSA_QOS_EUNKNOWNPSOBJ (WSABASEERR + 1024)
149−#endif
150−#ifndef WSA_QOS_EPOLICYOBJ
151−#define WSA_QOS_EPOLICYOBJ (WSABASEERR + 1025)
152−#endif
153−#ifndef WSA_QOS_EFLOWDESC
154−#define WSA_QOS_EFLOWDESC (WSABASEERR + 1026)
155−#endif
156−#ifndef WSA_QOS_EPSFLOWSPEC
157−#define WSA_QOS_EPSFLOWSPEC (WSABASEERR + 1027)
158−#endif
159−#ifndef WSA_QOS_EPSFILTERSPEC
160−#define WSA_QOS_EPSFILTERSPEC (WSABASEERR + 1028)
161−#endif
162−#ifndef WSA_QOS_ESDMODEOBJ
163−#define WSA_QOS_ESDMODEOBJ (WSABASEERR + 1029)
164−#endif
165−#ifndef WSA_QOS_ESHAPERATEOBJ
166−#define WSA_QOS_ESHAPERATEOBJ (WSABASEERR + 1030)
167−#endif
168−#ifndef WSA_QOS_RESERVED_PETYPE
169−#define WSA_QOS_RESERVED_PETYPE (WSABASEERR + 1031)
170−#endif
171−
172−#endif /* _WINSOCK2API_ */
173−
174−#ifndef __WSA_ERR_MACROS_DEFINED
175−#define __WSA_ERR_MACROS_DEFINED
176−#define h_errno WSAGetLastError()
177−#define HOST_NOT_FOUND WSAHOST_NOT_FOUND
178−#define TRY_AGAIN WSATRY_AGAIN
179−#define NO_RECOVERY WSANO_RECOVERY
180−#define NO_DATA WSANO_DATA
181−
182−#define WSANO_ADDRESS WSANO_DATA
183−#define NO_ADDRESS WSANO_ADDRESS
184−#endif /* __WSA_ERR_MACROS_DEFINED */
185−
186−#if 0
187−#define EWOULDBLOCK WSAEWOULDBLOCK
188−#define EINPROGRESS WSAEINPROGRESS
189−#define EALREADY WSAEALREADY
190−#define ENOTSOCK WSAENOTSOCK
191−#define EDESTADDRREQ WSAEDESTADDRREQ
192−#define EMSGSIZE WSAEMSGSIZE
193−#define EPROTOTYPE WSAEPROTOTYPE
194−#define ENOPROTOOPT WSAENOPROTOOPT
195−#define EPROTONOSUPPORT WSAEPROTONOSUPPORT
196−#define ESOCKTNOSUPPORT WSAESOCKTNOSUPPORT
197−#define EOPNOTSUPP WSAEOPNOTSUPP
198−#define EPFNOSUPPORT WSAEPFNOSUPPORT
199−#define EAFNOSUPPORT WSAEAFNOSUPPORT
200−#define EADDRINUSE WSAEADDRINUSE
201−#define EADDRNOTAVAIL WSAEADDRNOTAVAIL
202−#define ENETDOWN WSAENETDOWN
203−#define ENETUNREACH WSAENETUNREACH
204−#define ENETRESET WSAENETRESET
205−#define ECONNABORTED WSAECONNABORTED
206−#define ECONNRESET WSAECONNRESET
207−#define ENOBUFS WSAENOBUFS
208−#define EISCONN WSAEISCONN
209−#define ENOTCONN WSAENOTCONN
210−#define ESHUTDOWN WSAESHUTDOWN
211−#define ETOOMANYREFS WSAETOOMANYREFS
212−#define ETIMEDOUT WSAETIMEDOUT
213−#define ECONNREFUSED WSAECONNREFUSED
214−#define ELOOP WSAELOOP
215−#define ENAMETOOLONG WSAENAMETOOLONG
216−#define EHOSTDOWN WSAEHOSTDOWN
217−#define EHOSTUNREACH WSAEHOSTUNREACH
218−#define ENOTEMPTY WSAENOTEMPTY
219−#define EPROCLIM WSAEPROCLIM
220−#define EUSERS WSAEUSERS
221−#define EDQUOT WSAEDQUOT
222−#define ESTALE WSAESTALE
223−#define EREMOTE WSAEREMOTE
224−#endif /* #if 0 */
225−
win32/include/winapi/psdk_inc/_wsadata.h+0−32
@@ -1,32 +0,0 @@
1−/**
2− * This file has no copyright assigned and is placed in the Public Domain.
3− * This file is part of the w64 mingw-runtime package.
4− * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5− */
6−
7−#ifndef __MINGW_WSADATA_H
8−#define __MINGW_WSADATA_H
9−
10−#define WSADESCRIPTION_LEN 256
11−#define WSASYS_STATUS_LEN 128
12−
13−typedef struct WSAData {
14− WORD wVersion;
15− WORD wHighVersion;
16−#ifdef _WIN64
17− unsigned short iMaxSockets;
18− unsigned short iMaxUdpDg;
19− char *lpVendorInfo;
20− char szDescription[WSADESCRIPTION_LEN+1];
21− char szSystemStatus[WSASYS_STATUS_LEN+1];
22−#else
23− char szDescription[WSADESCRIPTION_LEN+1];
24− char szSystemStatus[WSASYS_STATUS_LEN+1];
25− unsigned short iMaxSockets;
26− unsigned short iMaxUdpDg;
27− char *lpVendorInfo;
28−#endif
29−} WSADATA, *LPWSADATA;
30−
31−#endif /* __MINGW_WSADATA_H */
32−
win32/include/winapi/psdk_inc/_xmitfile.h+0−18
@@ -1,18 +0,0 @@
1−/**
2− * This file has no copyright assigned and is placed in the Public Domain.
3− * This file is part of the mingw-w64 runtime package.
4− * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5− */
6−
7−#ifndef __MINGW_TRANSMIT_FILE_H
8−#define __MINGW_TRANSMIT_FILE_H
9−
10−typedef struct _TRANSMIT_FILE_BUFFERS {
11− LPVOID Head;
12− DWORD HeadLength;
13− LPVOID Tail;
14− DWORD TailLength;
15−} TRANSMIT_FILE_BUFFERS, *PTRANSMIT_FILE_BUFFERS, *LPTRANSMIT_FILE_BUFFERS;
16−
17−#endif /* __MINGW_TRANSMIT_FILE_H */
18−
win32/include/winapi/qos.h+0−72
@@ -1,72 +0,0 @@
1−/**
2− * This file has no copyright assigned and is placed in the Public Domain.
3− * This file is part of the w64 mingw-runtime package.
4− * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5− */
6−#ifndef __QOS_H_
7−#define __QOS_H_
8−
9−typedef ULONG SERVICETYPE;
10−
11−#define SERVICETYPE_NOTRAFFIC 0x00000000
12−#define SERVICETYPE_BESTEFFORT 0x00000001
13−#define SERVICETYPE_CONTROLLEDLOAD 0x00000002
14−#define SERVICETYPE_GUARANTEED 0x00000003
15−
16−#define SERVICETYPE_NETWORK_UNAVAILABLE 0x00000004
17−#define SERVICETYPE_GENERAL_INFORMATION 0x00000005
18−#define SERVICETYPE_NOCHANGE 0x00000006
19−#define SERVICETYPE_NONCONFORMING 0x00000009
20−#define SERVICETYPE_NETWORK_CONTROL 0x0000000A
21−#define SERVICETYPE_QUALITATIVE 0x0000000D
22−
23−#define SERVICE_BESTEFFORT 0x80010000
24−#define SERVICE_CONTROLLEDLOAD 0x80020000
25−#define SERVICE_GUARANTEED 0x80040000
26−#define SERVICE_QUALITATIVE 0x80200000
27−
28−#define SERVICE_NO_TRAFFIC_CONTROL 0x81000000
29−
30−#define SERVICE_NO_QOS_SIGNALING 0x40000000
31−
32− typedef struct _flowspec {
33− ULONG TokenRate;
34− ULONG TokenBucketSize;
35− ULONG PeakBandwidth;
36− ULONG Latency;
37− ULONG DelayVariation;
38− SERVICETYPE ServiceType;
39− ULONG MaxSduSize;
40− ULONG MinimumPolicedSize;
41− } FLOWSPEC,*PFLOWSPEC,*LPFLOWSPEC;
42−
43−#define QOS_NOT_SPECIFIED 0xFFFFFFFF
44−#define POSITIVE_INFINITY_RATE 0xFFFFFFFE
45−
46− typedef struct _QOS_OBJECT_HDR {
47− ULONG ObjectType;
48− ULONG ObjectLength;
49− } QOS_OBJECT_HDR, *LPQOS_OBJECT_HDR;
50−
51−#define QOS_GENERAL_ID_BASE 2000
52−#define QOS_OBJECT_END_OF_LIST (0x00000001 + QOS_GENERAL_ID_BASE)
53−#define QOS_OBJECT_SD_MODE (0x00000002 + QOS_GENERAL_ID_BASE)
54−#define QOS_OBJECT_SHAPING_RATE (0x00000003 + QOS_GENERAL_ID_BASE)
55−#define QOS_OBJECT_DESTADDR (0x00000004 + QOS_GENERAL_ID_BASE)
56−
57− typedef struct _QOS_SD_MODE {
58− QOS_OBJECT_HDR ObjectHdr;
59− ULONG ShapeDiscardMode;
60− } QOS_SD_MODE, *LPQOS_SD_MODE;
61−
62−#define TC_NONCONF_BORROW 0
63−#define TC_NONCONF_SHAPE 1
64−#define TC_NONCONF_DISCARD 2
65−#define TC_NONCONF_BORROW_PLUS 3
66−
67− typedef struct _QOS_SHAPING_RATE {
68− QOS_OBJECT_HDR ObjectHdr;
69− ULONG ShapingRate;
70− } QOS_SHAPING_RATE, *LPQOS_SHAPING_RATE;
71−
72−#endif
win32/include/winapi/shellapi.h+0−904
@@ -1,904 +0,0 @@
1−/**
2− * This file is part of the mingw-w64 runtime package.
3− * No warranty is given; refer to the file DISCLAIMER within this package.
4− */
5−
6−#ifndef _INC_SHELLAPI
7−#define _INC_SHELLAPI
8−
9−#include <_mingw_unicode.h>
10−#include <specstrings.h>
11−
12−#ifndef WINSHELLAPI
13−#ifndef _SHELL32_
14−#define WINSHELLAPI DECLSPEC_IMPORT
15−#else
16−#define WINSHELLAPI
17−#endif
18−#endif
19−
20−#ifndef SHSTDAPI
21−#ifndef _SHELL32_
22−#ifdef __cplusplus
23−#define SHSTDAPI EXTERN_C DECLSPEC_IMPORT HRESULT STDAPICALLTYPE
24−#define SHSTDAPI_(type) EXTERN_C DECLSPEC_IMPORT type STDAPICALLTYPE
25−#else
26−#define SHSTDAPI DECLSPEC_IMPORT HRESULT STDAPICALLTYPE
27−#define SHSTDAPI_(type) DECLSPEC_IMPORT type STDAPICALLTYPE
28−#endif
29−#else
30−#define SHSTDAPI STDAPI
31−#define SHSTDAPI_(type) STDAPI_(type)
32−#endif
33−#endif
34−
35−#ifndef SHDOCAPI
36−#ifndef _SHDOCVW_
37−#ifdef __cplusplus
38−#define SHDOCAPI EXTERN_C DECLSPEC_IMPORT HRESULT STDAPICALLTYPE
39−#define SHDOCAPI_(type) EXTERN_C DECLSPEC_IMPORT type STDAPICALLTYPE
40−#else
41−#define SHDOCAPI DECLSPEC_IMPORT HRESULT STDAPICALLTYPE
42−#define SHDOCAPI_(type) DECLSPEC_IMPORT type STDAPICALLTYPE
43−#endif
44−#else
45−#define SHDOCAPI STDAPI
46−#define SHDOCAPI_(type) STDAPI_(type)
47−#endif
48−#endif
49−
50−#ifndef _WIN64
51−#include <pshpack1.h>
52−#endif
53−
54−#ifdef __cplusplus
55−extern "C" {
56−#endif
57−
58−#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
59− DECLARE_HANDLE (HDROP);
60−
61−#define DragQueryFile __MINGW_NAME_AW(DragQueryFile)
62−#define ShellExecute __MINGW_NAME_AW(ShellExecute)
63−#define FindExecutable __MINGW_NAME_AW(FindExecutable)
64−#define ShellAbout __MINGW_NAME_AW(ShellAbout)
65−#define ExtractAssociatedIcon __MINGW_NAME_AW(ExtractAssociatedIcon)
66−#define ExtractAssociatedIconEx __MINGW_NAME_AW(ExtractAssociatedIconEx)
67−#define ExtractIcon __MINGW_NAME_AW(ExtractIcon)
68−
69− SHSTDAPI_(UINT) DragQueryFileA (HDROP hDrop, UINT iFile, LPSTR lpszFile, UINT cch);
70− SHSTDAPI_(UINT) DragQueryFileW (HDROP hDrop, UINT iFile, LPWSTR lpszFile, UINT cch);
71− SHSTDAPI_(WINBOOL) DragQueryPoint (HDROP hDrop, POINT *ppt);
72− SHSTDAPI_(void) DragFinish (HDROP hDrop);
73− SHSTDAPI_(void) DragAcceptFiles (HWND hWnd, WINBOOL fAccept);
74− SHSTDAPI_(HINSTANCE) ShellExecuteA (HWND hwnd, LPCSTR lpOperation, LPCSTR lpFile, LPCSTR lpParameters, LPCSTR lpDirectory, INT nShowCmd);
75− SHSTDAPI_(HINSTANCE) ShellExecuteW (HWND hwnd, LPCWSTR lpOperation, LPCWSTR lpFile, LPCWSTR lpParameters, LPCWSTR lpDirectory, INT nShowCmd);
76− SHSTDAPI_(HINSTANCE) FindExecutableA (LPCSTR lpFile, LPCSTR lpDirectory, LPSTR lpResult);
77− SHSTDAPI_(HINSTANCE) FindExecutableW (LPCWSTR lpFile, LPCWSTR lpDirectory, LPWSTR lpResult);
78− SHSTDAPI_(LPWSTR *) CommandLineToArgvW (LPCWSTR lpCmdLine, int *pNumArgs);
79− SHSTDAPI_(INT) ShellAboutA (HWND hWnd, LPCSTR szApp, LPCSTR szOtherStuff, HICON hIcon);
80− SHSTDAPI_(INT) ShellAboutW (HWND hWnd, LPCWSTR szApp, LPCWSTR szOtherStuff, HICON hIcon);
81− SHSTDAPI_(HICON) DuplicateIcon (HINSTANCE hInst, HICON hIcon);
82− SHSTDAPI_(HICON) ExtractAssociatedIconA (HINSTANCE hInst, LPSTR pszIconPath, WORD *piIcon);
83− SHSTDAPI_(HICON) ExtractAssociatedIconW (HINSTANCE hInst, LPWSTR pszIconPath, WORD *piIcon);
84− SHSTDAPI_(HICON) ExtractAssociatedIconExA (HINSTANCE hInst, LPSTR pszIconPath, WORD *piIconIndex, WORD *piIconId);
85− SHSTDAPI_(HICON) ExtractAssociatedIconExW (HINSTANCE hInst, LPWSTR pszIconPath, WORD *piIconIndex, WORD *piIconId);
86− SHSTDAPI_(HICON) ExtractIconA (HINSTANCE hInst, LPCSTR pszExeFileName, UINT nIconIndex);
87− SHSTDAPI_(HICON) ExtractIconW (HINSTANCE hInst, LPCWSTR pszExeFileName, UINT nIconIndex);
88−
89− typedef struct _DRAGINFOA {
90− UINT uSize;
91− POINT pt;
92− WINBOOL fNC;
93− LPSTR lpFileList;
94− DWORD grfKeyState;
95− } DRAGINFOA,*LPDRAGINFOA;
96−
97− typedef struct _DRAGINFOW {
98− UINT uSize;
99− POINT pt;
100− WINBOOL fNC;
101− LPWSTR lpFileList;
102− DWORD grfKeyState;
103− } DRAGINFOW,*LPDRAGINFOW;
104−
105− __MINGW_TYPEDEF_AW(DRAGINFO)
106− __MINGW_TYPEDEF_AW(LPDRAGINFO)
107−
108−#define ABM_NEW 0x00000000
109−#define ABM_REMOVE 0x00000001
110−#define ABM_QUERYPOS 0x00000002
111−#define ABM_SETPOS 0x00000003
112−#define ABM_GETSTATE 0x00000004
113−#define ABM_GETTASKBARPOS 0x00000005
114−#define ABM_ACTIVATE 0x00000006
115−#define ABM_GETAUTOHIDEBAR 0x00000007
116−#define ABM_SETAUTOHIDEBAR 0x00000008
117−
118−#define ABM_WINDOWPOSCHANGED 0x0000009
119−#define ABM_SETSTATE 0x0000000a
120−#if NTDDI_VERSION >= 0x06020000
121−#define ABM_GETAUTOHIDEBAREX 0x0000000b
122−#define ABM_SETAUTOHIDEBAREX 0x0000000c
123−#endif
124−
125−#define ABN_STATECHANGE 0x0000000
126−#define ABN_POSCHANGED 0x0000001
127−#define ABN_FULLSCREENAPP 0x0000002
128−#define ABN_WINDOWARRANGE 0x0000003
129−
130−#define ABS_AUTOHIDE 0x0000001
131−#define ABS_ALWAYSONTOP 0x0000002
132−
133−#define ABE_LEFT 0
134−#define ABE_TOP 1
135−#define ABE_RIGHT 2
136−#define ABE_BOTTOM 3
137−
138− typedef struct _AppBarData {
139− DWORD cbSize;
140− HWND hWnd;
141− UINT uCallbackMessage;
142− UINT uEdge;
143− RECT rc;
144− LPARAM lParam;
145− } APPBARDATA,*PAPPBARDATA;
146−
147− SHSTDAPI_(UINT_PTR) SHAppBarMessage (DWORD dwMessage, PAPPBARDATA pData);
148− SHSTDAPI_(DWORD) DoEnvironmentSubstA (LPSTR pszSrc, UINT cchSrc);
149− SHSTDAPI_(DWORD) DoEnvironmentSubstW (LPWSTR pszSrc, UINT cchSrc);
150− SHSTDAPI_(UINT) ExtractIconExA (LPCSTR lpszFile, int nIconIndex, HICON *phiconLarge, HICON *phiconSmall, UINT nIcons);
151− SHSTDAPI_(UINT) ExtractIconExW (LPCWSTR lpszFile, int nIconIndex, HICON *phiconLarge, HICON *phiconSmall, UINT nIcons);
152−
153−#define DoEnvironmentSubst __MINGW_NAME_AW(DoEnvironmentSubst)
154−#define ExtractIconEx __MINGW_NAME_AW(ExtractIconEx)
155−
156−#define EIRESID(x) (-1 * (int)(x))
157−
158−#define FO_MOVE 0x1
159−#define FO_COPY 0x2
160−#define FO_DELETE 0x3
161−#define FO_RENAME 0x4
162−
163−#define FOF_MULTIDESTFILES 0x1
164−#define FOF_CONFIRMMOUSE 0x2
165−#define FOF_SILENT 0x4
166−#define FOF_RENAMEONCOLLISION 0x8
167−#define FOF_NOCONFIRMATION 0x10
168−#define FOF_WANTMAPPINGHANDLE 0x20
169−#define FOF_ALLOWUNDO 0x40
170−#define FOF_FILESONLY 0x80
171−#define FOF_SIMPLEPROGRESS 0x100
172−#define FOF_NOCONFIRMMKDIR 0x200
173−#define FOF_NOERRORUI 0x400
174−#define FOF_NOCOPYSECURITYATTRIBS 0x800
175−#define FOF_NORECURSION 0x1000
176−#define FOF_NO_CONNECTED_ELEMENTS 0x2000
177−#define FOF_WANTNUKEWARNING 0x4000
178−#define FOF_NORECURSEREPARSE 0x8000
179−
180−#define FOF_NO_UI (FOF_SILENT | FOF_NOCONFIRMATION | FOF_NOERRORUI | FOF_NOCONFIRMMKDIR)
181−
182− typedef WORD FILEOP_FLAGS;
183−
184−#define PO_DELETE 0x0013
185−#define PO_RENAME 0x0014
186−#define PO_PORTCHANGE 0x0020
187−
188−#define PO_REN_PORT 0x0034
189−
190− typedef WORD PRINTEROP_FLAGS;
191−
192− typedef struct _SHFILEOPSTRUCTA {
193− HWND hwnd;
194− UINT wFunc;
195− LPCSTR pFrom;
196− LPCSTR pTo;
197− FILEOP_FLAGS fFlags;
198− WINBOOL fAnyOperationsAborted;
199− LPVOID hNameMappings;
200− PCSTR lpszProgressTitle;
201− } SHFILEOPSTRUCTA,*LPSHFILEOPSTRUCTA;
202−
203− typedef struct _SHFILEOPSTRUCTW {
204− HWND hwnd;
205− UINT wFunc;
206− LPCWSTR pFrom;
207− LPCWSTR pTo;
208− FILEOP_FLAGS fFlags;
209− WINBOOL fAnyOperationsAborted;
210− LPVOID hNameMappings;
211− PCWSTR lpszProgressTitle;
212− } SHFILEOPSTRUCTW,*LPSHFILEOPSTRUCTW;
213−
214− __MINGW_TYPEDEF_AW(SHFILEOPSTRUCT)
215− __MINGW_TYPEDEF_AW(LPSHFILEOPSTRUCT)
216−
217− SHSTDAPI_(int) SHFileOperationA (LPSHFILEOPSTRUCTA lpFileOp);
218− SHSTDAPI_(int) SHFileOperationW (LPSHFILEOPSTRUCTW lpFileOp);
219−
220−#define SHFileOperation __MINGW_NAME_AW(SHFileOperation)
221−
222− SHSTDAPI_(void) SHFreeNameMappings (HANDLE hNameMappings);
223−
224− typedef struct _SHNAMEMAPPINGA {
225− LPSTR pszOldPath;
226− LPSTR pszNewPath;
227− int cchOldPath;
228− int cchNewPath;
229− } SHNAMEMAPPINGA,*LPSHNAMEMAPPINGA;
230−
231− typedef struct _SHNAMEMAPPINGW {
232− LPWSTR pszOldPath;
233− LPWSTR pszNewPath;
234− int cchOldPath;
235− int cchNewPath;
236− } SHNAMEMAPPINGW,*LPSHNAMEMAPPINGW;
237−
238−
239− __MINGW_TYPEDEF_AW(SHNAMEMAPPING)
240− __MINGW_TYPEDEF_AW(LPSHNAMEMAPPING)
241−
242−#define SE_ERR_FNF 2
243−#define SE_ERR_PNF 3
244−#define SE_ERR_ACCESSDENIED 5
245−#define SE_ERR_OOM 8
246−#define SE_ERR_DLLNOTFOUND 32
247−
248−#define SE_ERR_SHARE 26
249−#define SE_ERR_ASSOCINCOMPLETE 27
250−#define SE_ERR_DDETIMEOUT 28
251−#define SE_ERR_DDEFAIL 29
252−#define SE_ERR_DDEBUSY 30
253−#define SE_ERR_NOASSOC 31
254−
255−#define SEE_MASK_DEFAULT 0x0
256−#define SEE_MASK_CLASSNAME 0x1
257−#define SEE_MASK_CLASSKEY 0x3
258−
259−#define SEE_MASK_IDLIST 0x4
260−#define SEE_MASK_INVOKEIDLIST 0xc
261−#if NTDDI_VERSION < 0x06000000
262−#define SEE_MASK_ICON 0x10
263−#endif
264−#define SEE_MASK_HOTKEY 0x20
265−#define SEE_MASK_NOCLOSEPROCESS 0x40
266−#define SEE_MASK_CONNECTNETDRV 0x80
267−#define SEE_MASK_NOASYNC 0x100
268−#define SEE_MASK_FLAG_DDEWAIT SEE_MASK_NOASYNC
269−#define SEE_MASK_DOENVSUBST 0x200
270−#define SEE_MASK_FLAG_NO_UI 0x400
271−#define SEE_MASK_UNICODE 0x4000
272−#define SEE_MASK_NO_CONSOLE 0x8000
273−#define SEE_MASK_ASYNCOK 0x100000
274−#define SEE_MASK_HMONITOR 0x200000
275−#define SEE_MASK_NOZONECHECKS 0x800000
276−#define SEE_MASK_NOQUERYCLASSSTORE 0x1000000
277−#define SEE_MASK_WAITFORINPUTIDLE 0x2000000
278−#define SEE_MASK_FLAG_LOG_USAGE 0x4000000
279−#if NTDDI_VERSION >= 0x06020000
280−#define SEE_MASK_FLAG_HINST_IS_SITE 0x8000000
281−#endif
282−
283−#ifndef DUMMYUNIONNAME
284−#ifdef NONAMELESSUNION
285−#define DUMMYUNIONNAME u
286−#define DUMMYUNIONNAME2 u2
287−#define DUMMYUNIONNAME3 u3
288−#define DUMMYUNIONNAME4 u4
289−#define DUMMYUNIONNAME5 u5
290−#else
291−#define DUMMYUNIONNAME
292−#define DUMMYUNIONNAME2
293−#define DUMMYUNIONNAME3
294−#define DUMMYUNIONNAME4
295−#define DUMMYUNIONNAME5
296−#endif
297−#endif
298−
299−#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
300−
301− typedef struct _SHELLEXECUTEINFOA {
302− DWORD cbSize;
303− ULONG fMask;
304− HWND hwnd;
305− LPCSTR lpVerb;
306− LPCSTR lpFile;
307− LPCSTR lpParameters;
308− LPCSTR lpDirectory;
309− int nShow;
310− HINSTANCE hInstApp;
311− void *lpIDList;
312− LPCSTR lpClass;
313− HKEY hkeyClass;
314− DWORD dwHotKey;
315− __C89_NAMELESS union {
316− HANDLE hIcon;
317− HANDLE hMonitor;
318− } DUMMYUNIONNAME;
319− HANDLE hProcess;
320− } SHELLEXECUTEINFOA,*LPSHELLEXECUTEINFOA;
321−
322− typedef struct _SHELLEXECUTEINFOW {
323− DWORD cbSize;
324− ULONG fMask;
325− HWND hwnd;
326− LPCWSTR lpVerb;
327− LPCWSTR lpFile;
328− LPCWSTR lpParameters;
329− LPCWSTR lpDirectory;
330− int nShow;
331− HINSTANCE hInstApp;
332− void *lpIDList;
333− LPCWSTR lpClass;
334− HKEY hkeyClass;
335− DWORD dwHotKey;
336− __C89_NAMELESS union {
337− HANDLE hIcon;
338− HANDLE hMonitor;
339− } DUMMYUNIONNAME;
340− HANDLE hProcess;
341− } SHELLEXECUTEINFOW,*LPSHELLEXECUTEINFOW;
342−
343− __MINGW_TYPEDEF_AW(SHELLEXECUTEINFO)
344− __MINGW_TYPEDEF_AW(LPSHELLEXECUTEINFO)
345−
346− SHSTDAPI_(WINBOOL) ShellExecuteExA (SHELLEXECUTEINFOA *pExecInfo);
347− SHSTDAPI_(WINBOOL) ShellExecuteExW (SHELLEXECUTEINFOW *pExecInfo);
348−
349−#define ShellExecuteEx __MINGW_NAME_AW(ShellExecuteEx)
350−
351− typedef struct _SHCREATEPROCESSINFOW {
352− DWORD cbSize;
353− ULONG fMask;
354− HWND hwnd;
355− LPCWSTR pszFile;
356− LPCWSTR pszParameters;
357− LPCWSTR pszCurrentDirectory;
358− HANDLE hUserToken;
359− LPSECURITY_ATTRIBUTES lpProcessAttributes;
360− LPSECURITY_ATTRIBUTES lpThreadAttributes;
361− WINBOOL bInheritHandles;
362− DWORD dwCreationFlags;
363− LPSTARTUPINFOW lpStartupInfo;
364− LPPROCESS_INFORMATION lpProcessInformation;
365− } SHCREATEPROCESSINFOW,*PSHCREATEPROCESSINFOW;
366−
367− SHSTDAPI_(WINBOOL) SHCreateProcessAsUserW (PSHCREATEPROCESSINFOW pscpi);
368−
369−#if NTDDI_VERSION >= 0x06000000
370− SHSTDAPI SHEvaluateSystemCommandTemplate (PCWSTR pszCmdTemplate, PWSTR *ppszApplication, PWSTR *ppszCommandLine, PWSTR *ppszParameters);
371−
372− typedef enum ASSOCCLASS {
373− ASSOCCLASS_SHELL_KEY = 0,
374− ASSOCCLASS_PROGID_KEY,
375− ASSOCCLASS_PROGID_STR,
376− ASSOCCLASS_CLSID_KEY,
377− ASSOCCLASS_CLSID_STR,
378− ASSOCCLASS_APP_KEY,
379− ASSOCCLASS_APP_STR,
380− ASSOCCLASS_SYSTEM_STR,
381− ASSOCCLASS_FOLDER,
382− ASSOCCLASS_STAR,
383−#if NTDDI_VERSION >= 0x06020000
384− ASSOCCLASS_FIXED_PROGID_STR,
385− ASSOCCLASS_PROTOCOL_STR,
386−#endif
387− } ASSOCCLASS;
388−
389− typedef struct ASSOCIATIONELEMENT {
390− ASSOCCLASS ac;
391− HKEY hkClass;
392− PCWSTR pszClass;
393− } ASSOCIATIONELEMENT;
394−
395− SHSTDAPI AssocCreateForClasses (const ASSOCIATIONELEMENT *rgClasses, ULONG cClasses, REFIID riid, void **ppv);
396−#endif
397−
398− typedef struct _SHQUERYRBINFO {
399− DWORD cbSize;
400− __MINGW_EXTENSION __int64 i64Size;
401− __MINGW_EXTENSION __int64 i64NumItems;
402− } SHQUERYRBINFO,*LPSHQUERYRBINFO;
403−
404−#define SHERB_NOCONFIRMATION 0x00000001
405−#define SHERB_NOPROGRESSUI 0x00000002
406−#define SHERB_NOSOUND 0x00000004
407−
408− SHSTDAPI SHQueryRecycleBinA (LPCSTR pszRootPath, LPSHQUERYRBINFO pSHQueryRBInfo);
409− SHSTDAPI SHQueryRecycleBinW (LPCWSTR pszRootPath, LPSHQUERYRBINFO pSHQueryRBInfo);
410−
411−#define SHQueryRecycleBin __MINGW_NAME_AW(SHQueryRecycleBin)
412−
413− SHSTDAPI SHEmptyRecycleBinA (HWND hwnd, LPCSTR pszRootPath, DWORD dwFlags);
414− SHSTDAPI SHEmptyRecycleBinW (HWND hwnd, LPCWSTR pszRootPath, DWORD dwFlags);
415−
416−#define SHEmptyRecycleBin __MINGW_NAME_AW(SHEmptyRecycleBin)
417−
418−#if NTDDI_VERSION >= 0x06000000
419− typedef enum {
420− QUNS_NOT_PRESENT = 1,
421− QUNS_BUSY = 2,
422− QUNS_RUNNING_D3D_FULL_SCREEN = 3,
423− QUNS_PRESENTATION_MODE = 4,
424− QUNS_ACCEPTS_NOTIFICATIONS = 5
425−#if NTDDI_VERSION >= 0x06010000
426− , QUNS_QUIET_TIME = 6
427−#endif
428−#if NTDDI_VERSION >= 0x06020000
429− , QUNS_APP = 7
430−#endif
431− } QUERY_USER_NOTIFICATION_STATE;
432−
433− SHSTDAPI SHQueryUserNotificationState (QUERY_USER_NOTIFICATION_STATE *pquns);
434−#endif
435−
436−#if NTDDI_VERSION >= 0x06010000
437− SHSTDAPI SHGetPropertyStoreForWindow (HWND hwnd, REFIID riid, void **ppv);
438−#endif
439−
440−#endif /* WINAPI_PARTITION_DESKTOP. */
441−
442− typedef struct _NOTIFYICONDATAA {
443− DWORD cbSize;
444− HWND hWnd;
445− UINT uID;
446− UINT uFlags;
447− UINT uCallbackMessage;
448− HICON hIcon;
449− CHAR szTip[128];
450− DWORD dwState;
451− DWORD dwStateMask;
452− CHAR szInfo[256];
453− __C89_NAMELESS union {
454− UINT uTimeout;
455− UINT uVersion;
456− } DUMMYUNIONNAME;
457− CHAR szInfoTitle[64];
458− DWORD dwInfoFlags;
459− GUID guidItem;
460−#if NTDDI_VERSION >= 0x06000000
461− HICON hBalloonIcon;
462−#endif
463− } NOTIFYICONDATAA,*PNOTIFYICONDATAA;
464−
465− typedef struct _NOTIFYICONDATAW {
466− DWORD cbSize;
467− HWND hWnd;
468− UINT uID;
469− UINT uFlags;
470− UINT uCallbackMessage;
471− HICON hIcon;
472− WCHAR szTip[128];
473− DWORD dwState;
474− DWORD dwStateMask;
475− WCHAR szInfo[256];
476− __C89_NAMELESS union {
477− UINT uTimeout;
478− UINT uVersion;
479− } DUMMYUNIONNAME;
480− WCHAR szInfoTitle[64];
481− DWORD dwInfoFlags;
482− GUID guidItem;
483−#if NTDDI_VERSION >= 0x06000000
484− HICON hBalloonIcon;
485−#endif
486− } NOTIFYICONDATAW,*PNOTIFYICONDATAW;
487−
488− __MINGW_TYPEDEF_AW(NOTIFYICONDATA)
489− __MINGW_TYPEDEF_AW(PNOTIFYICONDATA)
490−
491−#define NOTIFYICONDATAA_V1_SIZE FIELD_OFFSET (NOTIFYICONDATAA, szTip[64])
492−#define NOTIFYICONDATAW_V1_SIZE FIELD_OFFSET (NOTIFYICONDATAW, szTip[64])
493−#define NOTIFYICONDATAA_V2_SIZE FIELD_OFFSET (NOTIFYICONDATAA, guidItem)
494−#define NOTIFYICONDATAW_V2_SIZE FIELD_OFFSET (NOTIFYICONDATAW, guidItem)
495−#define NOTIFYICONDATAA_V3_SIZE FIELD_OFFSET (NOTIFYICONDATAA, hBalloonIcon)
496−#define NOTIFYICONDATAW_V3_SIZE FIELD_OFFSET (NOTIFYICONDATAW, hBalloonIcon)
497−
498−#define NOTIFYICONDATA_V1_SIZE __MINGW_NAME_AW_EXT(NOTIFYICONDATA,_V1_SIZE)
499−#define NOTIFYICONDATA_V2_SIZE __MINGW_NAME_AW_EXT(NOTIFYICONDATA,_V2_SIZE)
500−#define NOTIFYICONDATA_V3_SIZE __MINGW_NAME_AW_EXT(NOTIFYICONDATA,_V3_SIZE)
501−
502−#define NIN_SELECT (WM_USER + 0)
503−#define NINF_KEY 0x1
504−#define NIN_KEYSELECT (NIN_SELECT | NINF_KEY)
505−
506−#define NIN_BALLOONSHOW (WM_USER + 2)
507−#define NIN_BALLOONHIDE (WM_USER + 3)
508−#define NIN_BALLOONTIMEOUT (WM_USER + 4)
509−#define NIN_BALLOONUSERCLICK (WM_USER + 5)
510−#if NTDDI_VERSION >= 0x06000000
511−#define NIN_POPUPOPEN (WM_USER + 6)
512−#define NIN_POPUPCLOSE (WM_USER + 7)
513−#endif
514−
515−#define NIM_ADD 0x00000000
516−#define NIM_MODIFY 0x00000001
517−#define NIM_DELETE 0x00000002
518−#define NIM_SETFOCUS 0x00000003
519−#define NIM_SETVERSION 0x00000004
520−
521−#define NOTIFYICON_VERSION 3
522−#if NTDDI_VERSION >= 0x06000000
523−#define NOTIFYICON_VERSION_4 4
524−#endif
525−
526−#define NIF_MESSAGE 0x00000001
527−#define NIF_ICON 0x00000002
528−#define NIF_TIP 0x00000004
529−#define NIF_STATE 0x00000008
530−#define NIF_INFO 0x00000010
531−#if _WIN32_IE >= 0x600
532−#define NIF_GUID 0x00000020
533−#endif
534−#if NTDDI_VERSION >= 0x06000000
535−#define NIF_REALTIME 0x00000040
536−#define NIF_SHOWTIP 0x00000080
537−#endif
538−
539−#define NIS_HIDDEN 0x00000001
540−#define NIS_SHAREDICON 0x00000002
541−
542−#define NIIF_NONE 0x00000000
543−#define NIIF_INFO 0x00000001
544−#define NIIF_WARNING 0x00000002
545−#define NIIF_ERROR 0x00000003
546−#define NIIF_USER 0x00000004
547−#define NIIF_ICON_MASK 0x0000000f
548−#define NIIF_NOSOUND 0x00000010
549−#if NTDDI_VERSION >= 0x06000000
550−#define NIIF_LARGE_ICON 0x00000020
551−#endif
552−#if NTDDI_VERSION >= 0x06010000
553−#define NIIF_RESPECT_QUIET_TIME 0x00000080
554−#endif
555−
556− typedef struct _NOTIFYICONIDENTIFIER {
557− DWORD cbSize;
558− HWND hWnd;
559− UINT uID;
560− GUID guidItem;
561− } NOTIFYICONIDENTIFIER,*PNOTIFYICONIDENTIFIER;
562−
563− SHSTDAPI_(WINBOOL) Shell_NotifyIconA (DWORD dwMessage, PNOTIFYICONDATAA lpData);
564− SHSTDAPI_(WINBOOL) Shell_NotifyIconW (DWORD dwMessage, PNOTIFYICONDATAW lpData);
565−
566−#define Shell_NotifyIcon __MINGW_NAME_AW(Shell_NotifyIcon)
567−
568−#if NTDDI_VERSION >= 0x06010000
569− SHSTDAPI Shell_NotifyIconGetRect (const NOTIFYICONIDENTIFIER *identifier, RECT *iconLocation);
570−#endif
571−
572−#ifndef SHFILEINFO_DEFINED
573−#define SHFILEINFO_DEFINED
574−
575− typedef struct _SHFILEINFOA {
576− HICON hIcon;
577− int iIcon;
578− DWORD dwAttributes;
579− CHAR szDisplayName[MAX_PATH];
580− CHAR szTypeName[80];
581− } SHFILEINFOA;
582−
583− typedef struct _SHFILEINFOW {
584− HICON hIcon;
585− int iIcon;
586− DWORD dwAttributes;
587− WCHAR szDisplayName[MAX_PATH];
588− WCHAR szTypeName[80];
589− } SHFILEINFOW;
590−
591− __MINGW_TYPEDEF_AW(SHFILEINFO)
592−#endif
593−
594−#define SHGFI_ICON 0x000000100
595−#define SHGFI_DISPLAYNAME 0x000000200
596−#define SHGFI_TYPENAME 0x000000400
597−#define SHGFI_ATTRIBUTES 0x000000800
598−#define SHGFI_ICONLOCATION 0x000001000
599−#define SHGFI_EXETYPE 0x000002000
600−#define SHGFI_SYSICONINDEX 0x000004000
601−#define SHGFI_LINKOVERLAY 0x000008000
602−#define SHGFI_SELECTED 0x000010000
603−#define SHGFI_ATTR_SPECIFIED 0x000020000
604−
605−#define SHGFI_LARGEICON 0x000000000
606−#define SHGFI_SMALLICON 0x000000001
607−#define SHGFI_OPENICON 0x000000002
608−#define SHGFI_SHELLICONSIZE 0x000000004
609−#define SHGFI_PIDL 0x000000008
610−#define SHGFI_USEFILEATTRIBUTES 0x000000010
611−
612−#define SHGFI_ADDOVERLAYS 0x000000020
613−#define SHGFI_OVERLAYINDEX 0x000000040
614−
615− SHSTDAPI_(DWORD_PTR) SHGetFileInfoA (LPCSTR pszPath, DWORD dwFileAttributes, SHFILEINFOA *psfi, UINT cbFileInfo, UINT uFlags);
616− SHSTDAPI_(DWORD_PTR) SHGetFileInfoW (LPCWSTR pszPath, DWORD dwFileAttributes, SHFILEINFOW *psfi, UINT cbFileInfo, UINT uFlags);
617−
618−#define SHGetFileInfo __MINGW_NAME_AW(SHGetFileInfo)
619−
620−#if NTDDI_VERSION >= 0x06000000
621− typedef struct _SHSTOCKICONINFO {
622− DWORD cbSize;
623− HICON hIcon;
624− int iSysImageIndex;
625− int iIcon;
626− WCHAR szPath[MAX_PATH];
627− } SHSTOCKICONINFO;
628−
629−#define SHGSI_ICONLOCATION 0
630−#define SHGSI_ICON SHGFI_ICON
631−#define SHGSI_SYSICONINDEX SHGFI_SYSICONINDEX
632−#define SHGSI_LINKOVERLAY SHGFI_LINKOVERLAY
633−#define SHGSI_SELECTED SHGFI_SELECTED
634−#define SHGSI_LARGEICON SHGFI_LARGEICON
635−#define SHGSI_SMALLICON SHGFI_SMALLICON
636−#define SHGSI_SHELLICONSIZE SHGFI_SHELLICONSIZE
637−
638− typedef enum SHSTOCKICONID {
639− SIID_DOCNOASSOC = 0,
640− SIID_DOCASSOC = 1,
641− SIID_APPLICATION = 2,
642− SIID_FOLDER = 3,
643− SIID_FOLDEROPEN = 4,
644− SIID_DRIVE525 = 5,
645− SIID_DRIVE35 = 6,
646− SIID_DRIVEREMOVE = 7,
647− SIID_DRIVEFIXED = 8,
648− SIID_DRIVENET = 9,
649− SIID_DRIVENETDISABLED = 10,
650− SIID_DRIVECD = 11,
651− SIID_DRIVERAM = 12,
652− SIID_WORLD = 13,
653− SIID_SERVER = 15,
654− SIID_PRINTER = 16,
655− SIID_MYNETWORK = 17,
656− SIID_FIND = 22,
657− SIID_HELP = 23,
658− SIID_SHARE = 28,
659− SIID_LINK = 29,
660− SIID_SLOWFILE = 30,
661− SIID_RECYCLER = 31,
662− SIID_RECYCLERFULL = 32,
663− SIID_MEDIACDAUDIO = 40,
664− SIID_LOCK = 47,
665− SIID_AUTOLIST = 49,
666− SIID_PRINTERNET = 50,
667− SIID_SERVERSHARE = 51,
668− SIID_PRINTERFAX = 52,
669− SIID_PRINTERFAXNET = 53,
670− SIID_PRINTERFILE = 54,
671− SIID_STACK = 55,
672− SIID_MEDIASVCD = 56,
673− SIID_STUFFEDFOLDER = 57,
674− SIID_DRIVEUNKNOWN = 58,
675− SIID_DRIVEDVD = 59,
676− SIID_MEDIADVD = 60,
677− SIID_MEDIADVDRAM = 61,
678− SIID_MEDIADVDRW = 62,
679− SIID_MEDIADVDR = 63,
680− SIID_MEDIADVDROM = 64,
681− SIID_MEDIACDAUDIOPLUS = 65,
682− SIID_MEDIACDRW = 66,
683− SIID_MEDIACDR = 67,
684− SIID_MEDIACDBURN = 68,
685− SIID_MEDIABLANKCD = 69,
686− SIID_MEDIACDROM = 70,
687− SIID_AUDIOFILES = 71,
688− SIID_IMAGEFILES = 72,
689− SIID_VIDEOFILES = 73,
690− SIID_MIXEDFILES = 74,
691− SIID_FOLDERBACK = 75,
692− SIID_FOLDERFRONT = 76,
693− SIID_SHIELD = 77,
694− SIID_WARNING = 78,
695− SIID_INFO = 79,
696− SIID_ERROR = 80,
697− SIID_KEY = 81,
698− SIID_SOFTWARE = 82,
699− SIID_RENAME = 83,
700− SIID_DELETE = 84,
701− SIID_MEDIAAUDIODVD = 85,
702− SIID_MEDIAMOVIEDVD = 86,
703− SIID_MEDIAENHANCEDCD = 87,
704− SIID_MEDIAENHANCEDDVD = 88,
705− SIID_MEDIAHDDVD = 89,
706− SIID_MEDIABLURAY = 90,
707− SIID_MEDIAVCD = 91,
708− SIID_MEDIADVDPLUSR = 92,
709− SIID_MEDIADVDPLUSRW = 93,
710− SIID_DESKTOPPC = 94,
711− SIID_MOBILEPC = 95,
712− SIID_USERS = 96,
713− SIID_MEDIASMARTMEDIA = 97,
714− SIID_MEDIACOMPACTFLASH = 98,
715− SIID_DEVICECELLPHONE = 99,
716− SIID_DEVICECAMERA = 100,
717− SIID_DEVICEVIDEOCAMERA = 101,
718− SIID_DEVICEAUDIOPLAYER = 102,
719− SIID_NETWORKCONNECT = 103,
720− SIID_INTERNET = 104,
721− SIID_ZIPFILE = 105,
722− SIID_SETTINGS = 106,
723−
724− SIID_DRIVEHDDVD = 132,
725− SIID_DRIVEBD = 133,
726− SIID_MEDIAHDDVDROM = 134,
727− SIID_MEDIAHDDVDR = 135,
728− SIID_MEDIAHDDVDRAM = 136,
729− SIID_MEDIABDROM = 137,
730− SIID_MEDIABDR = 138,
731− SIID_MEDIABDRE = 139,
732− SIID_CLUSTEREDDRIVE = 140,
733−
734− SIID_MAX_ICONS = 175
735− } SHSTOCKICONID;
736−
737−#define SIID_INVALID ((SHSTOCKICONID)-1)
738−
739− SHSTDAPI SHGetStockIconInfo (SHSTOCKICONID siid, UINT uFlags, SHSTOCKICONINFO *psii);
740−#endif
741−
742−#define SHGetDiskFreeSpace SHGetDiskFreeSpaceEx
743−
744− SHSTDAPI_(WINBOOL) SHGetDiskFreeSpaceExA (LPCSTR pszDirectoryName, ULARGE_INTEGER *pulFreeBytesAvailableToCaller, ULARGE_INTEGER *pulTotalNumberOfBytes, ULARGE_INTEGER *pulTotalNumberOfFreeBytes);
745− SHSTDAPI_(WINBOOL) SHGetDiskFreeSpaceExW (LPCWSTR pszDirectoryName, ULARGE_INTEGER *pulFreeBytesAvailableToCaller, ULARGE_INTEGER *pulTotalNumberOfBytes, ULARGE_INTEGER *pulTotalNumberOfFreeBytes);
746− SHSTDAPI_(WINBOOL) SHGetNewLinkInfoA (LPCSTR pszLinkTo, LPCSTR pszDir, LPSTR pszName, WINBOOL *pfMustCopy, UINT uFlags);
747− SHSTDAPI_(WINBOOL) SHGetNewLinkInfoW (LPCWSTR pszLinkTo, LPCWSTR pszDir, LPWSTR pszName, WINBOOL *pfMustCopy, UINT uFlags);
748−
749−#define SHGetDiskFreeSpaceEx __MINGW_NAME_AW(SHGetDiskFreeSpaceEx)
750−#define SHGetNewLinkInfo __MINGW_NAME_AW(SHGetNewLinkInfo)
751−
752−#define SHGNLI_PIDL 0x000000001
753−#define SHGNLI_PREFIXNAME 0x000000002
754−#define SHGNLI_NOUNIQUE 0x000000004
755−#define SHGNLI_NOLNK 0x000000008
756−#if _WIN32_IE >= 0x0600
757−#define SHGNLI_NOLOCNAME 0x000000010
758−#endif
759−#if NTDDI_VERSION >= 0x06010000
760−#define SHGNLI_USEURLEXT 0x000000020
761−#endif
762−
763−#define PRINTACTION_OPEN 0
764−#define PRINTACTION_PROPERTIES 1
765−#define PRINTACTION_NETINSTALL 2
766−#define PRINTACTION_NETINSTALLLINK 3
767−#define PRINTACTION_TESTPAGE 4
768−#define PRINTACTION_OPENNETPRN 5
769−#define PRINTACTION_DOCUMENTDEFAULTS 6
770−#define PRINTACTION_SERVERPROPERTIES 7
771−
772− SHSTDAPI_(WINBOOL) SHInvokePrinterCommandA (HWND hwnd, UINT uAction, LPCSTR lpBuf1, LPCSTR lpBuf2, WINBOOL fModal);
773− SHSTDAPI_(WINBOOL) SHInvokePrinterCommandW (HWND hwnd, UINT uAction, LPCWSTR lpBuf1, LPCWSTR lpBuf2, WINBOOL fModal);
774−
775−#define SHInvokePrinterCommand __MINGW_NAME_AW(SHInvokePrinterCommand)
776−
777−#if NTDDI_VERSION >= 0x06000000
778− typedef struct _OPEN_PRINTER_PROPS_INFOA {
779− DWORD dwSize;
780− LPSTR pszSheetName;
781− UINT uSheetIndex;
782− DWORD dwFlags;
783− WINBOOL bModal;
784− } OPEN_PRINTER_PROPS_INFOA,*POPEN_PRINTER_PROPS_INFOA;
785−
786− typedef struct _OPEN_PRINTER_PROPS_INFOW {
787− DWORD dwSize;
788− LPWSTR pszSheetName;
789− UINT uSheetIndex;
790− DWORD dwFlags;
791− WINBOOL bModal;
792− } OPEN_PRINTER_PROPS_INFOW,*POPEN_PRINTER_PROPS_INFOW;
793−
794− __MINGW_TYPEDEF_AW(OPEN_PRINTER_PROPS_INFO)
795− __MINGW_TYPEDEF_AW(POPEN_PRINTER_PROPS_INFO)
796−#define PRINT_PROP_FORCE_NAME 0x01
797−#endif
798−
799− SHSTDAPI SHLoadNonloadedIconOverlayIdentifiers (void);
800− SHSTDAPI SHIsFileAvailableOffline (PCWSTR pwszPath, DWORD *pdwStatus);
801−
802−#define OFFLINE_STATUS_LOCAL 0x0001
803−#define OFFLINE_STATUS_REMOTE 0x0002
804−#define OFFLINE_STATUS_INCOMPLETE 0x0004
805−
806− SHSTDAPI SHSetLocalizedName (PCWSTR pszPath, PCWSTR pszResModule, int idsRes);
807−
808−#if NTDDI_VERSION >= 0x06000000
809− SHSTDAPI SHRemoveLocalizedName (PCWSTR pszPath);
810− SHSTDAPI SHGetLocalizedName (PCWSTR pszPath, PWSTR pszResModule, UINT cch, int *pidsRes);
811−#endif
812−
813−#ifndef _SHLWAPI_
814−#define LWSTDAPIV_(type) EXTERN_C DECLSPEC_IMPORT type STDAPIVCALLTYPE
815−#else
816−#define LWSTDAPIV_(type) STDAPIV_ (type)
817−#endif
818−
819− LWSTDAPIV_ (int) ShellMessageBoxA (HINSTANCE hAppInst, HWND hWnd, LPCSTR lpcText, LPCSTR lpcTitle, UINT fuStyle,...);
820− LWSTDAPIV_ (int) ShellMessageBoxW (HINSTANCE hAppInst, HWND hWnd, LPCWSTR lpcText, LPCWSTR lpcTitle, UINT fuStyle,...);
821−
822−#define ShellMessageBox __MINGW_NAME_AW(ShellMessageBox)
823−
824− SHSTDAPI_(WINBOOL) IsLFNDriveA (LPCSTR pszPath);
825− SHSTDAPI_(WINBOOL) IsLFNDriveW (LPCWSTR pszPath);
826−
827−#define IsLFNDrive __MINGW_NAME_AW(IsLFNDrive)
828−
829−#if _WIN32_IE >= 0x0600
830− STDAPI SHEnumerateUnreadMailAccountsA (HKEY hKeyUser, DWORD dwIndex, LPSTR pszMailAddress, int cchMailAddress);
831− STDAPI SHEnumerateUnreadMailAccountsW (HKEY hKeyUser, DWORD dwIndex, LPWSTR pszMailAddress, int cchMailAddress);
832− STDAPI SHGetUnreadMailCountA (HKEY hKeyUser, LPCSTR pszMailAddress, DWORD *pdwCount, FILETIME *pFileTime, LPSTR pszShellExecuteCommand, int cchShellExecuteCommand);
833− STDAPI SHGetUnreadMailCountW (HKEY hKeyUser, LPCWSTR pszMailAddress, DWORD *pdwCount, FILETIME *pFileTime, LPWSTR pszShellExecuteCommand, int cchShellExecuteCommand);
834− STDAPI SHSetUnreadMailCountA (LPCSTR pszMailAddress, DWORD dwCount, LPCSTR pszShellExecuteCommand);
835− STDAPI SHSetUnreadMailCountW (LPCWSTR pszMailAddress, DWORD dwCount, LPCWSTR pszShellExecuteCommand);
836−
837−#define SHEnumerateUnreadMailAccounts __MINGW_NAME_AW(SHEnumerateUnreadMailAccounts)
838−#define SHGetUnreadMailCount __MINGW_NAME_AW(SHGetUnreadMailCount)
839−#define SHSetUnreadMailCount __MINGW_NAME_AW(SHSetUnreadMailCount)
840−
841−#endif
842−#if _WIN32_IE >= 0x0601
843− STDAPI_ (WINBOOL) SHTestTokenMembership (HANDLE hToken, ULONG ulRID);
844−#endif
845−
846−#if _WIN32_IE >= 0x0600
847− SHSTDAPI SHGetImageList (int iImageList, REFIID riid, void **ppvObj);
848−
849−#define SHIL_LARGE 0
850−#define SHIL_SMALL 1
851−#define SHIL_EXTRALARGE 2
852−#define SHIL_SYSSMALL 3
853−#if NTDDI_VERSION >= 0x06000000
854−#define SHIL_JUMBO 4
855−#define SHIL_LAST SHIL_JUMBO
856−#else
857−#define SHIL_LAST SHIL_SYSSMALL
858−#endif
859−
860− typedef HRESULT (STDMETHODCALLTYPE *PFNCANSHAREFOLDERW) (PCWSTR pszPath);
861− typedef HRESULT (STDMETHODCALLTYPE *PFNSHOWSHAREFOLDERUIW) (HWND hwndParent, PCWSTR pszPath);
862−
863−#endif
864−#endif
865−
866−#ifdef __cplusplus
867−}
868−#endif
869−
870−#ifndef _WIN64
871−#include <poppack.h>
872−#endif
873−
874−#if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
875−#if NTDDI_VERSION >= 0x06000000
876−
877−#define WC_NETADDRESS L"msctls_netaddress"
878−
879−SHSTDAPI_(WINBOOL) InitNetworkAddressControl (void);
880−
881−#define NCM_GETADDRESS (WM_USER+1)
882−#define NetAddr_GetAddress(hwnd, pv) (HRESULT)SNDMSG (hwnd, NCM_GETADDRESS, 0,(LPARAM)pv)
883−
884−typedef struct tagNC_ADDRESS {
885− struct NET_ADDRESS_INFO_ *pAddrInfo;
886− USHORT PortNumber;
887− BYTE PrefixLength;
888−} NC_ADDRESS,*PNC_ADDRESS;
889−
890−#define NCM_SETALLOWTYPE (WM_USER+2)
891−#define NetAddr_SetAllowType(hwnd, addrMask) (HRESULT)SNDMSG (hwnd, NCM_SETALLOWTYPE,(WPARAM)addrMask, 0)
892−
893−#define NCM_GETALLOWTYPE (WM_USER+3)
894−#define NetAddr_GetAllowType(hwnd) (DWORD)SNDMSG (hwnd, NCM_GETALLOWTYPE, 0, 0)
895−
896−#define NCM_DISPLAYERRORTIP (WM_USER+4)
897−#define NetAddr_DisplayErrorTip(hwnd) (HRESULT)SNDMSG (hwnd, NCM_DISPLAYERRORTIP, 0, 0)
898−#endif
899−
900−#if NTDDI_VERSION >= 0x06000000
901−STDAPI SHGetDriveMedia (PCWSTR pszDrive, DWORD *pdwMediaContent);
902−#endif
903−#endif
904−#endif
win32/include/winapi/tvout.h+0−79
@@ -1,79 +0,0 @@
1−/**
2− * This file has no copyright assigned and is placed in the Public Domain.
3− * This file is part of the w64 mingw-runtime package.
4− * No warranty is given; refer to the file DISCLAIMER within this package.
5− */
6−#ifndef __TVOUT__
7−#define __TVOUT__
8−
9−#include <guiddef.h>
10−
11−typedef struct _VIDEOPARAMETERS {
12− GUID Guid;
13− ULONG dwOffset;
14− ULONG dwCommand;
15− ULONG dwFlags;
16− ULONG dwMode;
17− ULONG dwTVStandard;
18− ULONG dwAvailableModes;
19− ULONG dwAvailableTVStandard;
20− ULONG dwFlickerFilter;
21− ULONG dwOverScanX;
22− ULONG dwOverScanY;
23− ULONG dwMaxUnscaledX;
24− ULONG dwMaxUnscaledY;
25− ULONG dwPositionX;
26− ULONG dwPositionY;
27− ULONG dwBrightness;
28− ULONG dwContrast;
29− ULONG dwCPType;
30− ULONG dwCPCommand;
31− ULONG dwCPStandard;
32− ULONG dwCPKey;
33− ULONG bCP_APSTriggerBits;
34− UCHAR bOEMCopyProtection[256];
35−} VIDEOPARAMETERS,*PVIDEOPARAMETERS,*LPVIDEOPARAMETERS;
36−
37−#define VP_COMMAND_GET 0x0001
38−#define VP_COMMAND_SET 0x0002
39−
40−#define VP_FLAGS_TV_MODE 0x0001
41−#define VP_FLAGS_TV_STANDARD 0x0002
42−#define VP_FLAGS_FLICKER 0x0004
43−#define VP_FLAGS_OVERSCAN 0x0008
44−#define VP_FLAGS_MAX_UNSCALED 0x0010
45−#define VP_FLAGS_POSITION 0x0020
46−#define VP_FLAGS_BRIGHTNESS 0x0040
47−#define VP_FLAGS_CONTRAST 0x0080
48−#define VP_FLAGS_COPYPROTECT 0x0100
49−
50−#define VP_MODE_WIN_GRAPHICS 0x0001
51−#define VP_MODE_TV_PLAYBACK 0x0002
52−
53−#define VP_TV_STANDARD_NTSC_M 0x0001
54−#define VP_TV_STANDARD_NTSC_M_J 0x0002
55−#define VP_TV_STANDARD_PAL_B 0x0004
56−#define VP_TV_STANDARD_PAL_D 0x0008
57−#define VP_TV_STANDARD_PAL_H 0x0010
58−#define VP_TV_STANDARD_PAL_I 0x0020
59−#define VP_TV_STANDARD_PAL_M 0x0040
60−#define VP_TV_STANDARD_PAL_N 0x0080
61−#define VP_TV_STANDARD_SECAM_B 0x0100
62−#define VP_TV_STANDARD_SECAM_D 0x0200
63−#define VP_TV_STANDARD_SECAM_G 0x0400
64−#define VP_TV_STANDARD_SECAM_H 0x0800
65−#define VP_TV_STANDARD_SECAM_K 0x1000
66−#define VP_TV_STANDARD_SECAM_K1 0x2000
67−#define VP_TV_STANDARD_SECAM_L 0x4000
68−#define VP_TV_STANDARD_WIN_VGA 0x8000
69−#define VP_TV_STANDARD_NTSC_433 0x00010000
70−#define VP_TV_STANDARD_PAL_G 0x00020000
71−#define VP_TV_STANDARD_PAL_60 0x00040000
72−#define VP_TV_STANDARD_SECAM_L1 0x00080000
73−
74−#define VP_CP_TYPE_APS_TRIGGER 0x0001
75−#define VP_CP_TYPE_MACROVISION 0x0002
76−#define VP_CP_CMD_ACTIVATE 0x0001
77−#define VP_CP_CMD_DEACTIVATE 0x0002
78−#define VP_CP_CMD_CHANGE 0x0004
79−#endif
win32/include/winapi/winsock2.h+0−1253
@@ -1,1253 +0,0 @@
1−/**
2− * This file has no copyright assigned and is placed in the Public Domain.
3− * This file is part of the w64 mingw-runtime package.
4− * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5− */
6−
7−#ifndef _WINSOCK2API_
8−#define _WINSOCK2API_
9−
10−#include <_mingw_unicode.h>
11−
12−#ifndef _WINSOCKAPI_
13−#define _WINSOCKAPI_
14−#else
15−#warning Please include winsock2.h before windows.h
16−#endif
17−
18−#ifndef INCL_WINSOCK_API_TYPEDEFS
19−#define INCL_WINSOCK_API_TYPEDEFS 0
20−#endif
21−
22−#ifndef _INC_WINDOWS
23−#include <windows.h>
24−#endif
25−
26−#ifndef MAKEWORD
27−#define MAKEWORD(low,high) ((WORD)(((BYTE)(low)) | ((WORD)((BYTE)(high))) << 8))
28−#endif
29−
30−#ifndef WINSOCK_VERSION
31−#define WINSOCK_VERSION MAKEWORD(2,2)
32−#endif
33−
34−#ifndef WINSOCK_API_LINKAGE
35−#ifdef DECLSPEC_IMPORT
36−#define WINSOCK_API_LINKAGE DECLSPEC_IMPORT
37−#else
38−#define WINSOCK_API_LINKAGE
39−#endif
40−#endif /* WINSOCK_API_LINKAGE */
41−#define WSAAPI WINAPI
42−
43−/* undefine macros from winsock.h */
44−#include <psdk_inc/_ws1_undef.h>
45−
46−#include <_timeval.h>
47−#include <_bsd_types.h>
48−#include <inaddr.h>
49−#include <psdk_inc/_socket_types.h>
50−#include <psdk_inc/_fd_types.h>
51−#include <psdk_inc/_ip_types.h>
52−#include <psdk_inc/_wsadata.h>
53−#include <ws2def.h> /* FIXME: include order */
54−
55−#ifdef __cplusplus
56−extern "C" {
57−#endif
58−
59−extern int WINAPI __WSAFDIsSet(SOCKET,fd_set *);
60−
61−#define FD_CLR(fd,set) \
62− do { \
63− u_int __i; \
64− for(__i = 0; __i < ((fd_set *)(set))->fd_count; __i++) { \
65− if (((fd_set *)(set))->fd_array[__i] == fd) { \
66− while (__i < ((fd_set *)(set))->fd_count - 1) { \
67− ((fd_set *)(set))->fd_array[__i] = \
68− ((fd_set *)(set))->fd_array[__i + 1]; \
69− __i++; \
70− } \
71− ((fd_set *)(set))->fd_count--; \
72− break; \
73− } \
74− } \
75−} while(0)
76−
77−#define FD_ZERO(set) (((fd_set *)(set))->fd_count = 0)
78−
79−#define FD_ISSET(fd,set) __WSAFDIsSet((SOCKET)(fd),(fd_set *)(set))
80−
81−#define FD_SET(fd,set) \
82− do { \
83− u_int __i; \
84− for(__i = 0; __i < ((fd_set *)(set))->fd_count; __i++) { \
85− if (((fd_set *)(set))->fd_array[__i] == (fd)) { \
86− break; \
87− } \
88− } \
89− if (__i == ((fd_set *)(set))->fd_count) { \
90− if (((fd_set *)(set))->fd_count < FD_SETSIZE) { \
91− ((fd_set *)(set))->fd_array[__i] = (fd); \
92− ((fd_set *)(set))->fd_count++; \
93− } \
94− } \
95−} while(0)
96−
97−#define IOCPARM_MASK 0x7f
98−#define IOC_VOID 0x20000000
99−#define IOC_OUT 0x40000000
100−#define IOC_IN 0x80000000
101−#define IOC_INOUT (IOC_IN|IOC_OUT)
102−
103−#define _IO(x,y) (IOC_VOID|((x)<<8)|(y))
104−#define _IOR(x,y,t) (IOC_OUT|(((long)sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y))
105−#define _IOW(x,y,t) (IOC_IN|(((long)sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y))
106−
107−#define FIONREAD _IOR('f',127,u_long)
108−#define FIONBIO _IOW('f',126,u_long)
109−#define FIOASYNC _IOW('f',125,u_long)
110−
111−#define SIOCSHIWAT _IOW('s',0,u_long)
112−#define SIOCGHIWAT _IOR('s',1,u_long)
113−#define SIOCSLOWAT _IOW('s',2,u_long)
114−#define SIOCGLOWAT _IOR('s',3,u_long)
115−#define SIOCATMARK _IOR('s',7,u_long)
116−
117−#define IPPROTO_IP 0
118−#define IPPROTO_HOPOPTS 0
119−#define IPPROTO_ICMP 1
120−#define IPPROTO_IGMP 2
121−#define IPPROTO_GGP 3
122−#define IPPROTO_IPV4 4
123−#define IPPROTO_TCP 6
124−#define IPPROTO_PUP 12
125−#define IPPROTO_UDP 17
126−#define IPPROTO_IDP 22
127−#define IPPROTO_IPV6 41
128−#define IPPROTO_ROUTING 43
129−#define IPPROTO_FRAGMENT 44
130−#define IPPROTO_ESP 50
131−#define IPPROTO_AH 51
132−#define IPPROTO_ICMPV6 58
133−#define IPPROTO_NONE 59
134−#define IPPROTO_DSTOPTS 60
135−#define IPPROTO_ND 77
136−#define IPPROTO_ICLFXBM 78
137−
138−#define IPPROTO_RAW 255
139−#define IPPROTO_MAX 256
140−
141−#define IPPORT_ECHO 7
142−#define IPPORT_DISCARD 9
143−#define IPPORT_SYSTAT 11
144−#define IPPORT_DAYTIME 13
145−#define IPPORT_NETSTAT 15
146−#define IPPORT_FTP 21
147−#define IPPORT_TELNET 23
148−#define IPPORT_SMTP 25
149−#define IPPORT_TIMESERVER 37
150−#define IPPORT_NAMESERVER 42
151−#define IPPORT_WHOIS 43
152−#define IPPORT_MTP 57
153−
154−#define IPPORT_TFTP 69
155−#define IPPORT_RJE 77
156−#define IPPORT_FINGER 79
157−#define IPPORT_TTYLINK 87
158−#define IPPORT_SUPDUP 95
159−
160−#define IPPORT_EXECSERVER 512
161−#define IPPORT_LOGINSERVER 513
162−#define IPPORT_CMDSERVER 514
163−#define IPPORT_EFSSERVER 520
164−
165−#define IPPORT_BIFFUDP 512
166−#define IPPORT_WHOSERVER 513
167−#define IPPORT_ROUTESERVER 520
168−
169−#define IPPORT_RESERVED 1024
170−
171−#define IMPLINK_IP 155
172−#define IMPLINK_LOWEXPER 156
173−#define IMPLINK_HIGHEXPER 158
174−
175−
176−#define IN_CLASSA(i) (((long)(i) & 0x80000000)==0)
177−#define IN_CLASSA_NET 0xff000000
178−#define IN_CLASSA_NSHIFT 24
179−#define IN_CLASSA_HOST 0x00ffffff
180−#define IN_CLASSA_MAX 128
181−
182−#define IN_CLASSB(i) (((long)(i) & 0xc0000000)==0x80000000)
183−#define IN_CLASSB_NET 0xffff0000
184−#define IN_CLASSB_NSHIFT 16
185−#define IN_CLASSB_HOST 0x0000ffff
186−#define IN_CLASSB_MAX 65536
187−
188−#define IN_CLASSC(i) (((long)(i) & 0xe0000000)==0xc0000000)
189−#define IN_CLASSC_NET 0xffffff00
190−#define IN_CLASSC_NSHIFT 8
191−#define IN_CLASSC_HOST 0x000000ff
192−
193−#define IN_CLASSD(i) (((long)(i) & 0xf0000000)==0xe0000000)
194−#define IN_CLASSD_NET 0xf0000000
195−#define IN_CLASSD_NSHIFT 28
196−#define IN_CLASSD_HOST 0x0fffffff
197−#define IN_MULTICAST(i) IN_CLASSD(i)
198−
199−#define INADDR_ANY (u_long)0x00000000
200−#define INADDR_LOOPBACK 0x7f000001
201−#define INADDR_BROADCAST (u_long)0xffffffff
202−#define INADDR_NONE 0xffffffff
203−
204−#define ADDR_ANY INADDR_ANY
205−
206−#define FROM_PROTOCOL_INFO (-1)
207−
208−#define SOCK_STREAM 1
209−#define SOCK_DGRAM 2
210−#define SOCK_RAW 3
211−#define SOCK_RDM 4
212−#define SOCK_SEQPACKET 5
213−
214−#define SO_DEBUG 0x0001
215−#define SO_ACCEPTCONN 0x0002
216−#define SO_REUSEADDR 0x0004
217−#define SO_KEEPALIVE 0x0008
218−#define SO_DONTROUTE 0x0010
219−#define SO_BROADCAST 0x0020
220−#define SO_USELOOPBACK 0x0040
221−#define SO_LINGER 0x0080
222−#define SO_OOBINLINE 0x0100
223−
224−#define SO_DONTLINGER (int)(~SO_LINGER)
225−#define SO_EXCLUSIVEADDRUSE ((int)(~SO_REUSEADDR))
226−
227−#define SO_SNDBUF 0x1001
228−#define SO_RCVBUF 0x1002
229−#define SO_SNDLOWAT 0x1003
230−#define SO_RCVLOWAT 0x1004
231−#define SO_SNDTIMEO 0x1005
232−#define SO_RCVTIMEO 0x1006
233−#define SO_ERROR 0x1007
234−#define SO_TYPE 0x1008
235−
236−#define SO_GROUP_ID 0x2001
237−#define SO_GROUP_PRIORITY 0x2002
238−#define SO_MAX_MSG_SIZE 0x2003
239−#define SO_PROTOCOL_INFOA 0x2004
240−#define SO_PROTOCOL_INFOW 0x2005
241−
242−#define SO_PROTOCOL_INFO __MINGW_NAME_AW(SO_PROTOCOL_INFO)
243−
244−#define PVD_CONFIG 0x3001
245−#define SO_CONDITIONAL_ACCEPT 0x3002
246−
247−#define TCP_NODELAY 0x0001
248−
249−#define AF_UNSPEC 0
250−
251−#define AF_UNIX 1
252−#define AF_INET 2
253−#define AF_IMPLINK 3
254−#define AF_PUP 4
255−#define AF_CHAOS 5
256−#define AF_NS 6
257−#define AF_IPX AF_NS
258−#define AF_ISO 7
259−#define AF_OSI AF_ISO
260−#define AF_ECMA 8
261−#define AF_DATAKIT 9
262−#define AF_CCITT 10
263−#define AF_SNA 11
264−#define AF_DECnet 12
265−#define AF_DLI 13
266−#define AF_LAT 14
267−#define AF_HYLINK 15
268−#define AF_APPLETALK 16
269−#define AF_NETBIOS 17
270−#define AF_VOICEVIEW 18
271−#define AF_FIREFOX 19
272−#define AF_UNKNOWN1 20
273−#define AF_BAN 21
274−#define AF_ATM 22
275−#define AF_INET6 23
276−#define AF_CLUSTER 24
277−#define AF_12844 25
278−#define AF_IRDA 26
279−#define AF_NETDES 28
280−#define AF_TCNPROCESS 29
281−#define AF_TCNMESSAGE 30
282−#define AF_ICLFXBM 31
283−#define AF_BTH 32
284−#define AF_MAX 33
285−
286−#define _SS_MAXSIZE 128
287−#define _SS_ALIGNSIZE (8)
288−
289−#define _SS_PAD1SIZE (_SS_ALIGNSIZE - sizeof (short))
290−#define _SS_PAD2SIZE (_SS_MAXSIZE - (sizeof (short) + _SS_PAD1SIZE + _SS_ALIGNSIZE))
291−
292− struct sockaddr_storage {
293− short ss_family;
294− char __ss_pad1[_SS_PAD1SIZE];
295−
296− __MINGW_EXTENSION __int64 __ss_align;
297− char __ss_pad2[_SS_PAD2SIZE];
298− };
299−
300−#define PF_UNSPEC AF_UNSPEC
301−#define PF_UNIX AF_UNIX
302−#define PF_INET AF_INET
303−#define PF_IMPLINK AF_IMPLINK
304−#define PF_PUP AF_PUP
305−#define PF_CHAOS AF_CHAOS
306−#define PF_NS AF_NS
307−#define PF_IPX AF_IPX
308−#define PF_ISO AF_ISO
309−#define PF_OSI AF_OSI
310−#define PF_ECMA AF_ECMA
311−#define PF_DATAKIT AF_DATAKIT
312−#define PF_CCITT AF_CCITT
313−#define PF_SNA AF_SNA
314−#define PF_DECnet AF_DECnet
315−#define PF_DLI AF_DLI
316−#define PF_LAT AF_LAT
317−#define PF_HYLINK AF_HYLINK
318−#define PF_APPLETALK AF_APPLETALK
319−#define PF_VOICEVIEW AF_VOICEVIEW
320−#define PF_FIREFOX AF_FIREFOX
321−#define PF_UNKNOWN1 AF_UNKNOWN1
322−#define PF_BAN AF_BAN
323−#define PF_ATM AF_ATM
324−#define PF_INET6 AF_INET6
325−#define PF_BTH AF_BTH
326−
327−#define PF_MAX AF_MAX
328−
329−#define SOL_SOCKET 0xffff
330−
331−#define SOMAXCONN 0x7fffffff
332−
333−#define MSG_OOB 0x1
334−#define MSG_PEEK 0x2
335−#define MSG_DONTROUTE 0x4
336−#define MSG_WAITALL 0x8
337−
338−#define MSG_PARTIAL 0x8000
339−
340−#define MSG_INTERRUPT 0x10
341−
342−#define MSG_MAXIOVLEN 16
343−
344−#define MAXGETHOSTSTRUCT 1024
345−
346−#define FD_READ_BIT 0
347−#define FD_READ (1 << FD_READ_BIT)
348−
349−#define FD_WRITE_BIT 1
350−#define FD_WRITE (1 << FD_WRITE_BIT)
351−
352−#define FD_OOB_BIT 2
353−#define FD_OOB (1 << FD_OOB_BIT)
354−
355−#define FD_ACCEPT_BIT 3
356−#define FD_ACCEPT (1 << FD_ACCEPT_BIT)
357−
358−#define FD_CONNECT_BIT 4
359−#define FD_CONNECT (1 << FD_CONNECT_BIT)
360−
361−#define FD_CLOSE_BIT 5
362−#define FD_CLOSE (1 << FD_CLOSE_BIT)
363−
364−#define FD_QOS_BIT 6
365−#define FD_QOS (1 << FD_QOS_BIT)
366−
367−#define FD_GROUP_QOS_BIT 7
368−#define FD_GROUP_QOS (1 << FD_GROUP_QOS_BIT)
369−
370−#define FD_ROUTING_INTERFACE_CHANGE_BIT 8
371−#define FD_ROUTING_INTERFACE_CHANGE (1 << FD_ROUTING_INTERFACE_CHANGE_BIT)
372−
373−#define FD_ADDRESS_LIST_CHANGE_BIT 9
374−#define FD_ADDRESS_LIST_CHANGE (1 << FD_ADDRESS_LIST_CHANGE_BIT)
375−
376−#define FD_MAX_EVENTS 10
377−#define FD_ALL_EVENTS ((1 << FD_MAX_EVENTS) - 1)
378−
379−#include <psdk_inc/_wsa_errnos.h>
380−
381−#define WSAEVENT HANDLE
382−#define LPWSAEVENT LPHANDLE
383−#define WSAOVERLAPPED OVERLAPPED
384−
385− typedef struct _OVERLAPPED *LPWSAOVERLAPPED;
386−
387−#define WSA_IO_PENDING (ERROR_IO_PENDING)
388−#define WSA_IO_INCOMPLETE (ERROR_IO_INCOMPLETE)
389−#define WSA_INVALID_HANDLE (ERROR_INVALID_HANDLE)
390−#define WSA_INVALID_PARAMETER (ERROR_INVALID_PARAMETER)
391−#define WSA_NOT_ENOUGH_MEMORY (ERROR_NOT_ENOUGH_MEMORY)
392−#define WSA_OPERATION_ABORTED (ERROR_OPERATION_ABORTED)
393−
394−#define WSA_INVALID_EVENT ((WSAEVENT)NULL)
395−#define WSA_MAXIMUM_WAIT_EVENTS (MAXIMUM_WAIT_OBJECTS)
396−#define WSA_WAIT_FAILED (WAIT_FAILED)
397−#define WSA_WAIT_EVENT_0 (WAIT_OBJECT_0)
398−#define WSA_WAIT_IO_COMPLETION (WAIT_IO_COMPLETION)
399−#define WSA_WAIT_TIMEOUT (WAIT_TIMEOUT)
400−#define WSA_INFINITE (INFINITE)
401−
402− typedef struct _WSABUF {
403− u_long len;
404− char *buf;
405− } WSABUF,*LPWSABUF;
406−
407−#include <qos.h>
408−
409− typedef struct _QualityOfService {
410− FLOWSPEC SendingFlowspec;
411− FLOWSPEC ReceivingFlowspec;
412− WSABUF ProviderSpecific;
413− } QOS,*LPQOS;
414−
415−#define CF_ACCEPT 0x0000
416−#define CF_REJECT 0x0001
417−#define CF_DEFER 0x0002
418−
419−#define SD_RECEIVE 0x00
420−#define SD_SEND 0x01
421−#define SD_BOTH 0x02
422−
423−typedef unsigned int GROUP;
424−
425−#define SG_UNCONSTRAINED_GROUP 0x01
426−#define SG_CONSTRAINED_GROUP 0x02
427−
428− typedef struct _WSANETWORKEVENTS {
429− long lNetworkEvents;
430− int iErrorCode[FD_MAX_EVENTS];
431− } WSANETWORKEVENTS,*LPWSANETWORKEVENTS;
432−
433−#ifndef GUID_DEFINED
434−#include <guiddef.h>
435−#endif
436−
437−#define MAX_PROTOCOL_CHAIN 7
438−
439−#define BASE_PROTOCOL 1
440−#define LAYERED_PROTOCOL 0
441−
442− typedef struct _WSAPROTOCOLCHAIN {
443− int ChainLen;
444−
445− DWORD ChainEntries[MAX_PROTOCOL_CHAIN];
446− } WSAPROTOCOLCHAIN,*LPWSAPROTOCOLCHAIN;
447−
448−#define WSAPROTOCOL_LEN 255
449−
450− typedef struct _WSAPROTOCOL_INFOA {
451− DWORD dwServiceFlags1;
452− DWORD dwServiceFlags2;
453− DWORD dwServiceFlags3;
454− DWORD dwServiceFlags4;
455− DWORD dwProviderFlags;
456− GUID ProviderId;
457− DWORD dwCatalogEntryId;
458− WSAPROTOCOLCHAIN ProtocolChain;
459− int iVersion;
460− int iAddressFamily;
461− int iMaxSockAddr;
462− int iMinSockAddr;
463− int iSocketType;
464− int iProtocol;
465− int iProtocolMaxOffset;
466− int iNetworkByteOrder;
467− int iSecurityScheme;
468− DWORD dwMessageSize;
469− DWORD dwProviderReserved;
470− CHAR szProtocol[WSAPROTOCOL_LEN+1];
471− } WSAPROTOCOL_INFOA,*LPWSAPROTOCOL_INFOA;
472−
473− typedef struct _WSAPROTOCOL_INFOW {
474− DWORD dwServiceFlags1;
475− DWORD dwServiceFlags2;
476− DWORD dwServiceFlags3;
477− DWORD dwServiceFlags4;
478− DWORD dwProviderFlags;
479− GUID ProviderId;
480− DWORD dwCatalogEntryId;
481− WSAPROTOCOLCHAIN ProtocolChain;
482− int iVersion;
483− int iAddressFamily;
484− int iMaxSockAddr;
485− int iMinSockAddr;
486− int iSocketType;
487− int iProtocol;
488− int iProtocolMaxOffset;
489− int iNetworkByteOrder;
490− int iSecurityScheme;
491− DWORD dwMessageSize;
492− DWORD dwProviderReserved;
493− WCHAR szProtocol[WSAPROTOCOL_LEN+1];
494− } WSAPROTOCOL_INFOW,*LPWSAPROTOCOL_INFOW;
495−
496− __MINGW_TYPEDEF_AW(WSAPROTOCOL_INFO)
497− __MINGW_TYPEDEF_AW(LPWSAPROTOCOL_INFO)
498−
499−#define PFL_MULTIPLE_PROTO_ENTRIES 0x00000001
500−#define PFL_RECOMMENDED_PROTO_ENTRY 0x00000002
501−#define PFL_HIDDEN 0x00000004
502−#define PFL_MATCHES_PROTOCOL_ZERO 0x00000008
503−
504−#define XP1_CONNECTIONLESS 0x00000001
505−#define XP1_GUARANTEED_DELIVERY 0x00000002
506−#define XP1_GUARANTEED_ORDER 0x00000004
507−#define XP1_MESSAGE_ORIENTED 0x00000008
508−#define XP1_PSEUDO_STREAM 0x00000010
509−#define XP1_GRACEFUL_CLOSE 0x00000020
510−#define XP1_EXPEDITED_DATA 0x00000040
511−#define XP1_CONNECT_DATA 0x00000080
512−#define XP1_DISCONNECT_DATA 0x00000100
513−#define XP1_SUPPORT_BROADCAST 0x00000200
514−#define XP1_SUPPORT_MULTIPOINT 0x00000400
515−#define XP1_MULTIPOINT_CONTROL_PLANE 0x00000800
516−#define XP1_MULTIPOINT_DATA_PLANE 0x00001000
517−#define XP1_QOS_SUPPORTED 0x00002000
518−#define XP1_INTERRUPT 0x00004000
519−#define XP1_UNI_SEND 0x00008000
520−#define XP1_UNI_RECV 0x00010000
521−#define XP1_IFS_HANDLES 0x00020000
522−#define XP1_PARTIAL_MESSAGE 0x00040000
523−
524−#define BIGENDIAN 0x0000
525−#define LITTLEENDIAN 0x0001
526−
527−#define SECURITY_PROTOCOL_NONE 0x0000
528−
529−#define JL_SENDER_ONLY 0x01
530−#define JL_RECEIVER_ONLY 0x02
531−#define JL_BOTH 0x04
532−
533−#define WSA_FLAG_OVERLAPPED 0x01
534−#define WSA_FLAG_MULTIPOINT_C_ROOT 0x02
535−#define WSA_FLAG_MULTIPOINT_C_LEAF 0x04
536−#define WSA_FLAG_MULTIPOINT_D_ROOT 0x08
537−#define WSA_FLAG_MULTIPOINT_D_LEAF 0x10
538−
539−#define IOC_UNIX 0x00000000
540−#define IOC_WS2 0x08000000
541−#define IOC_PROTOCOL 0x10000000
542−#define IOC_VENDOR 0x18000000
543−
544−#define _WSAIO(x,y) (IOC_VOID|(x)|(y))
545−#define _WSAIOR(x,y) (IOC_OUT|(x)|(y))
546−#define _WSAIOW(x,y) (IOC_IN|(x)|(y))
547−#define _WSAIORW(x,y) (IOC_INOUT|(x)|(y))
548−
549−#define SIO_ASSOCIATE_HANDLE _WSAIOW(IOC_WS2,1)
550−#define SIO_ENABLE_CIRCULAR_QUEUEING _WSAIO(IOC_WS2,2)
551−#define SIO_FIND_ROUTE _WSAIOR(IOC_WS2,3)
552−#define SIO_FLUSH _WSAIO(IOC_WS2,4)
553−#define SIO_GET_BROADCAST_ADDRESS _WSAIOR(IOC_WS2,5)
554−#define SIO_GET_EXTENSION_FUNCTION_POINTER _WSAIORW(IOC_WS2,6)
555−#define SIO_GET_QOS _WSAIORW(IOC_WS2,7)
556−#define SIO_GET_GROUP_QOS _WSAIORW(IOC_WS2,8)
557−#define SIO_MULTIPOINT_LOOPBACK _WSAIOW(IOC_WS2,9)
558−#define SIO_MULTICAST_SCOPE _WSAIOW(IOC_WS2,10)
559−#define SIO_SET_QOS _WSAIOW(IOC_WS2,11)
560−#define SIO_SET_GROUP_QOS _WSAIOW(IOC_WS2,12)
561−#define SIO_TRANSLATE_HANDLE _WSAIORW(IOC_WS2,13)
562−#define SIO_ROUTING_INTERFACE_QUERY _WSAIORW(IOC_WS2,20)
563−#define SIO_ROUTING_INTERFACE_CHANGE _WSAIOW(IOC_WS2,21)
564−#define SIO_ADDRESS_LIST_QUERY _WSAIOR(IOC_WS2,22)
565−#define SIO_ADDRESS_LIST_CHANGE _WSAIO(IOC_WS2,23)
566−#define SIO_QUERY_TARGET_PNP_HANDLE _WSAIOR(IOC_WS2,24)
567−#define SIO_ADDRESS_LIST_SORT _WSAIORW(IOC_WS2,25)
568−#if (_WIN32_WINNT >= 0x0600)
569−#define SIO_RESERVED_1 _WSAIOW(IOC_WS2,26)
570−#define SIO_RESERVED_2 _WSAIOW(IOC_WS2,33)
571−#endif /* _WIN32_WINNT >= 0x0600 */
572−
573− typedef int (CALLBACK *LPCONDITIONPROC)(LPWSABUF lpCallerId,LPWSABUF lpCallerData,LPQOS lpSQOS,LPQOS lpGQOS,LPWSABUF lpCalleeId,LPWSABUF lpCalleeData,GROUP *g,DWORD_PTR dwCallbackData);
574− typedef void (CALLBACK *LPWSAOVERLAPPED_COMPLETION_ROUTINE)(DWORD dwError,DWORD cbTransferred,LPWSAOVERLAPPED lpOverlapped,DWORD dwFlags);
575−
576−#define SIO_NSP_NOTIFY_CHANGE _WSAIOW(IOC_WS2,25)
577−
578− typedef enum _WSACOMPLETIONTYPE {
579− NSP_NOTIFY_IMMEDIATELY = 0,
580− NSP_NOTIFY_HWND,
581− NSP_NOTIFY_EVENT,
582− NSP_NOTIFY_PORT,
583− NSP_NOTIFY_APC
584− } WSACOMPLETIONTYPE,*PWSACOMPLETIONTYPE,*LPWSACOMPLETIONTYPE;
585−
586− typedef struct _WSACOMPLETION {
587− WSACOMPLETIONTYPE Type;
588− union {
589− struct {
590− HWND hWnd;
591− UINT uMsg;
592− WPARAM context;
593− } WindowMessage;
594− struct {
595− LPWSAOVERLAPPED lpOverlapped;
596− } Event;
597− struct {
598− LPWSAOVERLAPPED lpOverlapped;
599− LPWSAOVERLAPPED_COMPLETION_ROUTINE lpfnCompletionProc;
600− } Apc;
601− struct {
602− LPWSAOVERLAPPED lpOverlapped;
603− HANDLE hPort;
604− ULONG_PTR Key;
605− } Port;
606− } Parameters;
607− } WSACOMPLETION,*PWSACOMPLETION,*LPWSACOMPLETION;
608−
609−#define TH_NETDEV 0x00000001
610−#define TH_TAPI 0x00000002
611−
612− typedef struct sockaddr_storage SOCKADDR_STORAGE;
613− typedef struct sockaddr_storage *PSOCKADDR_STORAGE;
614− typedef struct sockaddr_storage *LPSOCKADDR_STORAGE;
615− typedef u_short ADDRESS_FAMILY;
616−
617−#ifndef _tagBLOB_DEFINED
618−#define _tagBLOB_DEFINED
619−#define _BLOB_DEFINED
620−#define _LPBLOB_DEFINED
621− typedef struct _BLOB {
622− ULONG cbSize;
623− BYTE *pBlobData;
624− } BLOB,*LPBLOB;
625−#endif /* _tagBLOB_DEFINED */
626−
627−#define SERVICE_MULTIPLE (0x00000001)
628−
629−#define NS_ALL (0)
630−
631−#define NS_SAP (1)
632−#define NS_NDS (2)
633−#define NS_PEER_BROWSE (3)
634−#define NS_SLP (5)
635−#define NS_DHCP (6)
636−
637−#define NS_TCPIP_LOCAL (10)
638−#define NS_TCPIP_HOSTS (11)
639−#define NS_DNS (12)
640−#define NS_NETBT (13)
641−#define NS_WINS (14)
642−#define NS_NLA (15)
643−
644−#define NS_NBP (20)
645−
646−#define NS_MS (30)
647−#define NS_STDA (31)
648−#define NS_NTDS (32)
649−
650−#define NS_X500 (40)
651−#define NS_NIS (41)
652−#define NS_NISPLUS (42)
653−
654−#define NS_WRQ (50)
655−
656−#define NS_NETDES (60)
657−
658−#define RES_UNUSED_1 (0x00000001)
659−#define RES_FLUSH_CACHE (0x00000002)
660−#ifndef RES_SERVICE
661−#define RES_SERVICE (0x00000004)
662−#endif
663−
664−#define SERVICE_TYPE_VALUE_IPXPORTA "IpxSocket"
665−#define SERVICE_TYPE_VALUE_IPXPORTW L"IpxSocket"
666−#define SERVICE_TYPE_VALUE_SAPIDA "SapId"
667−#define SERVICE_TYPE_VALUE_SAPIDW L"SapId"
668−
669−#define SERVICE_TYPE_VALUE_TCPPORTA "TcpPort"
670−#define SERVICE_TYPE_VALUE_TCPPORTW L"TcpPort"
671−
672−#define SERVICE_TYPE_VALUE_UDPPORTA "UdpPort"
673−#define SERVICE_TYPE_VALUE_UDPPORTW L"UdpPort"
674−
675−#define SERVICE_TYPE_VALUE_OBJECTIDA "ObjectId"
676−#define SERVICE_TYPE_VALUE_OBJECTIDW L"ObjectId"
677−
678−#define SERVICE_TYPE_VALUE_SAPID __MINGW_NAME_AW(SERVICE_TYPE_VALUE_SAPID)
679−#define SERVICE_TYPE_VALUE_TCPPORT __MINGW_NAME_AW(SERVICE_TYPE_VALUE_TCPPORT)
680−#define SERVICE_TYPE_VALUE_UDPPORT __MINGW_NAME_AW(SERVICE_TYPE_VALUE_UDPPORT)
681−#define SERVICE_TYPE_VALUE_OBJECTID __MINGW_NAME_AW(SERVICE_TYPE_VALUE_OBJECTID)
682−
683−#ifndef __CSADDR_DEFINED__
684−#define __CSADDR_DEFINED__
685−
686− typedef struct _SOCKET_ADDRESS {
687− LPSOCKADDR lpSockaddr;
688− INT iSockaddrLength;
689− } SOCKET_ADDRESS,*PSOCKET_ADDRESS,*LPSOCKET_ADDRESS;
690−
691− typedef struct _CSADDR_INFO {
692− SOCKET_ADDRESS LocalAddr;
693− SOCKET_ADDRESS RemoteAddr;
694− INT iSocketType;
695− INT iProtocol;
696− } CSADDR_INFO,*PCSADDR_INFO,*LPCSADDR_INFO;
697−#endif /* __CSADDR_DEFINED__ */
698−
699− typedef struct _SOCKET_ADDRESS_LIST {
700− INT iAddressCount;
701− SOCKET_ADDRESS Address[1];
702− } SOCKET_ADDRESS_LIST,*PSOCKET_ADDRESS_LIST,*LPSOCKET_ADDRESS_LIST;
703−
704− typedef struct _AFPROTOCOLS {
705− INT iAddressFamily;
706− INT iProtocol;
707− } AFPROTOCOLS,*PAFPROTOCOLS,*LPAFPROTOCOLS;
708−
709− typedef enum _WSAEcomparator {
710− COMP_EQUAL = 0,
711− COMP_NOTLESS
712− } WSAECOMPARATOR,*PWSAECOMPARATOR,*LPWSAECOMPARATOR;
713−
714− typedef struct _WSAVersion {
715− DWORD dwVersion;
716− WSAECOMPARATOR ecHow;
717− } WSAVERSION,*PWSAVERSION,*LPWSAVERSION;
718−
719− typedef struct _WSAQuerySetA {
720− DWORD dwSize;
721− LPSTR lpszServiceInstanceName;
722− LPGUID lpServiceClassId;
723− LPWSAVERSION lpVersion;
724− LPSTR lpszComment;
725− DWORD dwNameSpace;
726− LPGUID lpNSProviderId;
727− LPSTR lpszContext;
728− DWORD dwNumberOfProtocols;
729− LPAFPROTOCOLS lpafpProtocols;
730− LPSTR lpszQueryString;
731− DWORD dwNumberOfCsAddrs;
732− LPCSADDR_INFO lpcsaBuffer;
733− DWORD dwOutputFlags;
734− LPBLOB lpBlob;
735− } WSAQUERYSETA,*PWSAQUERYSETA,*LPWSAQUERYSETA;
736−
737− typedef struct _WSAQuerySetW {
738− DWORD dwSize;
739− LPWSTR lpszServiceInstanceName;
740− LPGUID lpServiceClassId;
741− LPWSAVERSION lpVersion;
742− LPWSTR lpszComment;
743− DWORD dwNameSpace;
744− LPGUID lpNSProviderId;
745− LPWSTR lpszContext;
746− DWORD dwNumberOfProtocols;
747− LPAFPROTOCOLS lpafpProtocols;
748− LPWSTR lpszQueryString;
749− DWORD dwNumberOfCsAddrs;
750− LPCSADDR_INFO lpcsaBuffer;
751− DWORD dwOutputFlags;
752− LPBLOB lpBlob;
753− } WSAQUERYSETW,*PWSAQUERYSETW,*LPWSAQUERYSETW;
754−
755− __MINGW_TYPEDEF_AW(WSAQUERYSET)
756− __MINGW_TYPEDEF_AW(PWSAQUERYSET)
757− __MINGW_TYPEDEF_AW(LPWSAQUERYSET)
758−
759−#define LUP_DEEP 0x0001
760−#define LUP_CONTAINERS 0x0002
761−#define LUP_NOCONTAINERS 0x0004
762−#define LUP_NEAREST 0x0008
763−#define LUP_RETURN_NAME 0x0010
764−#define LUP_RETURN_TYPE 0x0020
765−#define LUP_RETURN_VERSION 0x0040
766−#define LUP_RETURN_COMMENT 0x0080
767−#define LUP_RETURN_ADDR 0x0100
768−#define LUP_RETURN_BLOB 0x0200
769−#define LUP_RETURN_ALIASES 0x0400
770−#define LUP_RETURN_QUERY_STRING 0x0800
771−#define LUP_RETURN_ALL 0x0FF0
772−#define LUP_RES_SERVICE 0x8000
773−
774−#define LUP_FLUSHCACHE 0x1000
775−#define LUP_FLUSHPREVIOUS 0x2000
776−
777−#define LUP_NON_AUTHORITATIVE 0x4000
778−#define LUP_SECURE 0x8000
779−#define LUP_RETURN_PREFERRED_NAMES 0x10000
780−
781−#define LUP_ADDRCONFIG 0x100000
782−#define LUP_DUAL_ADDR 0x200000
783−#define LUP_FILESERVER 0x400000
784−
785−#define LUP_RES_RESERVICE 0x8000 /* FIXME: not in PSDK anymore?? */
786−
787−#define RESULT_IS_ALIAS 0x0001
788−#define RESULT_IS_ADDED 0x0010
789−#define RESULT_IS_CHANGED 0x0020
790−#define RESULT_IS_DELETED 0x0040
791−
792− typedef enum _WSAESETSERVICEOP {
793− RNRSERVICE_REGISTER = 0,
794− RNRSERVICE_DEREGISTER,
795− RNRSERVICE_DELETE
796− } WSAESETSERVICEOP,*PWSAESETSERVICEOP,*LPWSAESETSERVICEOP;
797−
798− typedef struct _WSANSClassInfoA {
799− LPSTR lpszName;
800− DWORD dwNameSpace;
801− DWORD dwValueType;
802− DWORD dwValueSize;
803− LPVOID lpValue;
804− } WSANSCLASSINFOA,*PWSANSCLASSINFOA,*LPWSANSCLASSINFOA;
805−
806− typedef struct _WSANSClassInfoW {
807− LPWSTR lpszName;
808− DWORD dwNameSpace;
809− DWORD dwValueType;
810− DWORD dwValueSize;
811− LPVOID lpValue;
812− } WSANSCLASSINFOW,*PWSANSCLASSINFOW,*LPWSANSCLASSINFOW;
813−
814− __MINGW_TYPEDEF_AW(WSANSCLASSINFO)
815− __MINGW_TYPEDEF_AW(PWSANSCLASSINFO)
816− __MINGW_TYPEDEF_AW(LPWSANSCLASSINFO)
817−
818− typedef struct _WSAServiceClassInfoA {
819− LPGUID lpServiceClassId;
820− LPSTR lpszServiceClassName;
821− DWORD dwCount;
822− LPWSANSCLASSINFOA lpClassInfos;
823− } WSASERVICECLASSINFOA,*PWSASERVICECLASSINFOA,*LPWSASERVICECLASSINFOA;
824−
825− typedef struct _WSAServiceClassInfoW {
826− LPGUID lpServiceClassId;
827− LPWSTR lpszServiceClassName;
828− DWORD dwCount;
829− LPWSANSCLASSINFOW lpClassInfos;
830− } WSASERVICECLASSINFOW,*PWSASERVICECLASSINFOW,*LPWSASERVICECLASSINFOW;
831−
832− __MINGW_TYPEDEF_AW(WSASERVICECLASSINFO)
833− __MINGW_TYPEDEF_AW(PWSASERVICECLASSINFO)
834− __MINGW_TYPEDEF_AW(LPWSASERVICECLASSINFO)
835−
836− typedef struct _WSANAMESPACE_INFOA {
837− GUID NSProviderId;
838− DWORD dwNameSpace;
839− WINBOOL fActive;
840− DWORD dwVersion;
841− LPSTR lpszIdentifier;
842− } WSANAMESPACE_INFOA,*PWSANAMESPACE_INFOA,*LPWSANAMESPACE_INFOA;
843−
844− typedef struct _WSANAMESPACE_INFOW {
845− GUID NSProviderId;
846− DWORD dwNameSpace;
847− WINBOOL fActive;
848− DWORD dwVersion;
849− LPWSTR lpszIdentifier;
850− } WSANAMESPACE_INFOW,*PWSANAMESPACE_INFOW,*LPWSANAMESPACE_INFOW;
851−
852− __MINGW_TYPEDEF_AW(WSANAMESPACE_INFO)
853− __MINGW_TYPEDEF_AW(PWSANAMESPACE_INFO)
854− __MINGW_TYPEDEF_AW(LPWSANAMESPACE_INFO)
855−
856−/* FIXME: WSAMSG originally lived in mswsock.h,
857− * newer SDKs moved it into a new ws2def.h. for
858− * now we keep it here. */
859− typedef struct _WSAMSG {
860− LPSOCKADDR name;
861− INT namelen;
862− LPWSABUF lpBuffers;
863− DWORD dwBufferCount;
864− WSABUF Control;
865− DWORD dwFlags;
866− } WSAMSG,*PWSAMSG,*LPWSAMSG;
867−
868−#if INCL_WINSOCK_API_TYPEDEFS
869−#define LPFN_WSADUPLICATESOCKET __MINGW_NAME_AW(LPFN_WSADUPLICATESOCKET)
870−#define LPFN_WSAENUMPROTOCOLS __MINGW_NAME_AW(LPFN_WSAENUMPROTOCOLS)
871−#define LPFN_WSASOCKET __MINGW_NAME_AW(LPFN_WSASOCKET)
872−#define LPFN_WSAADDRESSTOSTRING __MINGW_NAME_AW(LPFN_WSAADDRESSTOSTRING)
873−#define LPFN_WSASTRINGTOADDRESS __MINGW_NAME_AW(LPFN_WSASTRINGTOADDRESS)
874−#define LPFN_WSALOOKUPSERVICEBEGIN __MINGW_NAME_AW(LPFN_WSALOOKUPSERVICEBEGIN)
875−#define LPFN_WSALOOKUPSERVICENEXT __MINGW_NAME_AW(LPFN_WSALOOKUPSERVICENEXT)
876−#define LPFN_WSAINSTALLSERVICECLASS __MINGW_NAME_AW(LPFN_WSAINSTALLSERVICECLASS)
877−#define LPFN_WSAGETSERVICECLASSINFO __MINGW_NAME_AW(LPFN_WSAGETSERVICECLASSINFO)
878−#define LPFN_WSAENUMNAMESPACEPROVIDERS __MINGW_NAME_AW(LPFN_WSAENUMNAMESPACEPROVIDERS)
879−#define LPFN_WSAGETSERVICECLASSNAMEBYCLASSID __MINGW_NAME_AW(LPFN_WSAGETSERVICECLASSNAMEBYCLASSID)
880−#define LPFN_WSASETSERVICE __MINGW_NAME_AW(LPFN_WSASETSERVICE)
881−
882− typedef SOCKET (WSAAPI *LPFN_ACCEPT)(SOCKET s,struct sockaddr *addr,int *addrlen);
883− typedef int (WSAAPI *LPFN_BIND)(SOCKET s,const struct sockaddr *name,int namelen);
884− typedef int (WSAAPI *LPFN_CLOSESOCKET)(SOCKET s);
885− typedef int (WSAAPI *LPFN_CONNECT)(SOCKET s,const struct sockaddr *name,int namelen);
886− typedef int (WSAAPI *LPFN_IOCTLSOCKET)(SOCKET s,long cmd,u_long *argp);
887− typedef int (WSAAPI *LPFN_GETPEERNAME)(SOCKET s,struct sockaddr *name,int *namelen);
888− typedef int (WSAAPI *LPFN_GETSOCKNAME)(SOCKET s,struct sockaddr *name,int *namelen);
889− typedef int (WSAAPI *LPFN_GETSOCKOPT)(SOCKET s,int level,int optname,char *optval,int *optlen);
890− typedef u_long (WSAAPI *LPFN_HTONL)(u_long hostlong);
891− typedef u_short (WSAAPI *LPFN_HTONS)(u_short hostshort);
892− typedef unsigned long (WSAAPI *LPFN_INET_ADDR)(const char *cp);
893− typedef char *(WSAAPI *LPFN_INET_NTOA)(struct in_addr in);
894− typedef int (WSAAPI *LPFN_LISTEN)(SOCKET s,int backlog);
895− typedef u_long (WSAAPI *LPFN_NTOHL)(u_long netlong);
896− typedef u_short (WSAAPI *LPFN_NTOHS)(u_short netshort);
897− typedef int (WSAAPI *LPFN_RECV)(SOCKET s,char *buf,int len,int flags);
898− typedef int (WSAAPI *LPFN_RECVFROM)(SOCKET s,char *buf,int len,int flags,struct sockaddr *from,int *fromlen);
899− typedef int (WSAAPI *LPFN_SELECT)(int nfds,fd_set *readfds,fd_set *writefds,fd_set *exceptfds,const struct timeval *timeout);
900− typedef int (WSAAPI *LPFN_SEND)(SOCKET s,const char *buf,int len,int flags);
901− typedef int (WSAAPI *LPFN_SENDTO)(SOCKET s,const char *buf,int len,int flags,const struct sockaddr *to,int tolen);
902− typedef int (WSAAPI *LPFN_SETSOCKOPT)(SOCKET s,int level,int optname,const char *optval,int optlen);
903− typedef int (WSAAPI *LPFN_SHUTDOWN)(SOCKET s,int how);
904− typedef SOCKET (WSAAPI *LPFN_SOCKET)(int af,int type,int protocol);
905− typedef struct hostent *(WSAAPI *LPFN_GETHOSTBYADDR)(const char *addr,int len,int type);
906− typedef struct hostent *(WSAAPI *LPFN_GETHOSTBYNAME)(const char *name);
907− typedef int (WSAAPI *LPFN_GETHOSTNAME)(char *name,int namelen);
908− typedef struct servent *(WSAAPI *LPFN_GETSERVBYPORT)(int port,const char *proto);
909− typedef struct servent *(WSAAPI *LPFN_GETSERVBYNAME)(const char *name,const char *proto);
910− typedef struct protoent *(WSAAPI *LPFN_GETPROTOBYNUMBER)(int number);
911− typedef struct protoent *(WSAAPI *LPFN_GETPROTOBYNAME)(const char *name);
912− typedef int (WSAAPI *LPFN_WSASTARTUP)(WORD wVersionRequested,LPWSADATA lpWSAData);
913− typedef int (WSAAPI *LPFN_WSACLEANUP)(void);
914− typedef void (WSAAPI *LPFN_WSASETLASTERROR)(int iError);
915− typedef int (WSAAPI *LPFN_WSAGETLASTERROR)(void);
916− typedef WINBOOL (WSAAPI *LPFN_WSAISBLOCKING)(void);
917− typedef int (WSAAPI *LPFN_WSAUNHOOKBLOCKINGHOOK)(void);
918− typedef FARPROC (WSAAPI *LPFN_WSASETBLOCKINGHOOK)(FARPROC lpBlockFunc);
919− typedef int (WSAAPI *LPFN_WSACANCELBLOCKINGCALL)(void);
920− typedef HANDLE (WSAAPI *LPFN_WSAASYNCGETSERVBYNAME)(HWND hWnd,u_int wMsg,const char *name,const char *proto,char *buf,int buflen);
921− typedef HANDLE (WSAAPI *LPFN_WSAASYNCGETSERVBYPORT)(HWND hWnd,u_int wMsg,int port,const char *proto,char *buf,int buflen);
922− typedef HANDLE (WSAAPI *LPFN_WSAASYNCGETPROTOBYNAME)(HWND hWnd,u_int wMsg,const char *name,char *buf,int buflen);
923− typedef HANDLE (WSAAPI *LPFN_WSAASYNCGETPROTOBYNUMBER)(HWND hWnd,u_int wMsg,int number,char *buf,int buflen);
924− typedef HANDLE (WSAAPI *LPFN_WSAASYNCGETHOSTBYNAME)(HWND hWnd,u_int wMsg,const char *name,char *buf,int buflen);
925− typedef HANDLE (WSAAPI *LPFN_WSAASYNCGETHOSTBYADDR)(HWND hWnd,u_int wMsg,const char *addr,int len,int type,char *buf,int buflen);
926− typedef int (WSAAPI *LPFN_WSACANCELASYNCREQUEST)(HANDLE hAsyncTaskHandle);
927− typedef int (WSAAPI *LPFN_WSAASYNCSELECT)(SOCKET s,HWND hWnd,u_int wMsg,long lEvent);
928− typedef SOCKET (WSAAPI *LPFN_WSAACCEPT)(SOCKET s,struct sockaddr *addr,LPINT addrlen,LPCONDITIONPROC lpfnCondition,DWORD_PTR dwCallbackData);
929− typedef WINBOOL (WSAAPI *LPFN_WSACLOSEEVENT)(WSAEVENT hEvent);
930− typedef int (WSAAPI *LPFN_WSACONNECT)(SOCKET s,const struct sockaddr *name,int namelen,LPWSABUF lpCallerData,LPWSABUF lpCalleeData,LPQOS lpSQOS,LPQOS lpGQOS);
931− typedef WSAEVENT (WSAAPI *LPFN_WSACREATEEVENT)(void);
932− typedef int (WSAAPI *LPFN_WSADUPLICATESOCKETA)(SOCKET s,DWORD dwProcessId,LPWSAPROTOCOL_INFOA lpProtocolInfo);
933− typedef int (WSAAPI *LPFN_WSADUPLICATESOCKETW)(SOCKET s,DWORD dwProcessId,LPWSAPROTOCOL_INFOW lpProtocolInfo);
934− typedef int (WSAAPI *LPFN_WSAENUMNETWORKEVENTS)(SOCKET s,WSAEVENT hEventObject,LPWSANETWORKEVENTS lpNetworkEvents);
935− typedef int (WSAAPI *LPFN_WSAENUMPROTOCOLSA)(LPINT lpiProtocols,LPWSAPROTOCOL_INFOA lpProtocolBuffer,LPDWORD lpdwBufferLength);
936− typedef int (WSAAPI *LPFN_WSAENUMPROTOCOLSW)(LPINT lpiProtocols,LPWSAPROTOCOL_INFOW lpProtocolBuffer,LPDWORD lpdwBufferLength);
937− typedef int (WSAAPI *LPFN_WSAEVENTSELECT)(SOCKET s,WSAEVENT hEventObject,long lNetworkEvents);
938− typedef WINBOOL (WSAAPI *LPFN_WSAGETOVERLAPPEDRESULT)(SOCKET s,LPWSAOVERLAPPED lpOverlapped,LPDWORD lpcbTransfer,WINBOOL fWait,LPDWORD lpdwFlags);
939− typedef WINBOOL (WSAAPI *LPFN_WSAGETQOSBYNAME)(SOCKET s,LPWSABUF lpQOSName,LPQOS lpQOS);
940− typedef int (WSAAPI *LPFN_WSAHTONL)(SOCKET s,u_long hostlong,u_long *lpnetlong);
941− typedef int (WSAAPI *LPFN_WSAHTONS)(SOCKET s,u_short hostshort,u_short *lpnetshort);
942− typedef int (WSAAPI *LPFN_WSAIOCTL)(SOCKET s,DWORD dwIoControlCode,LPVOID lpvInBuffer,DWORD cbInBuffer,LPVOID lpvOutBuffer,DWORD cbOutBuffer,LPDWORD lpcbBytesReturned,LPWSAOVERLAPPED lpOverlapped,LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
943− typedef SOCKET (WSAAPI *LPFN_WSAJOINLEAF)(SOCKET s,const struct sockaddr *name,int namelen,LPWSABUF lpCallerData,LPWSABUF lpCalleeData,LPQOS lpSQOS,LPQOS lpGQOS,DWORD dwFlags);
944− typedef int (WSAAPI *LPFN_WSANTOHL)(SOCKET s,u_long netlong,u_long *lphostlong);
945− typedef int (WSAAPI *LPFN_WSANTOHS)(SOCKET s,u_short netshort,u_short *lphostshort);
946− typedef int (WSAAPI *LPFN_WSARECV)(SOCKET s,LPWSABUF lpBuffers,DWORD dwBufferCount,LPDWORD lpNumberOfBytesRecvd,LPDWORD lpFlags,LPWSAOVERLAPPED lpOverlapped,LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
947− typedef int (WSAAPI *LPFN_WSARECVDISCONNECT)(SOCKET s,LPWSABUF lpInboundDisconnectData);
948− typedef int (WSAAPI *LPFN_WSARECVFROM)(SOCKET s,LPWSABUF lpBuffers,DWORD dwBufferCount,LPDWORD lpNumberOfBytesRecvd,LPDWORD lpFlags,struct sockaddr *lpFrom,LPINT lpFromlen,LPWSAOVERLAPPED lpOverlapped,LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
949− typedef WINBOOL (WSAAPI *LPFN_WSARESETEVENT)(WSAEVENT hEvent);
950− typedef int (WSAAPI *LPFN_WSASEND)(SOCKET s,LPWSABUF lpBuffers,DWORD dwBufferCount,LPDWORD lpNumberOfBytesSent,DWORD dwFlags,LPWSAOVERLAPPED lpOverlapped,LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
951− typedef int (WSAAPI *LPFN_WSASENDDISCONNECT)(SOCKET s,LPWSABUF lpOutboundDisconnectData);
952− typedef int (WSAAPI *LPFN_WSASENDTO)(SOCKET s,LPWSABUF lpBuffers,DWORD dwBufferCount,LPDWORD lpNumberOfBytesSent,DWORD dwFlags,const struct sockaddr *lpTo,int iTolen,LPWSAOVERLAPPED lpOverlapped,LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
953− typedef WINBOOL (WSAAPI *LPFN_WSASETEVENT)(WSAEVENT hEvent);
954− typedef SOCKET (WSAAPI *LPFN_WSASOCKETA)(int af,int type,int protocol,LPWSAPROTOCOL_INFOA lpProtocolInfo,GROUP g,DWORD dwFlags);
955− typedef SOCKET (WSAAPI *LPFN_WSASOCKETW)(int af,int type,int protocol,LPWSAPROTOCOL_INFOW lpProtocolInfo,GROUP g,DWORD dwFlags);
956− typedef DWORD (WSAAPI *LPFN_WSAWAITFORMULTIPLEEVENTS)(DWORD cEvents,const WSAEVENT *lphEvents,WINBOOL fWaitAll,DWORD dwTimeout,WINBOOL fAlertable);
957− typedef INT (WSAAPI *LPFN_WSAADDRESSTOSTRINGA)(LPSOCKADDR lpsaAddress,DWORD dwAddressLength,LPWSAPROTOCOL_INFOA lpProtocolInfo,LPSTR lpszAddressString,LPDWORD lpdwAddressStringLength);
958− typedef INT (WSAAPI *LPFN_WSAADDRESSTOSTRINGW)(LPSOCKADDR lpsaAddress,DWORD dwAddressLength,LPWSAPROTOCOL_INFOW lpProtocolInfo,LPWSTR lpszAddressString,LPDWORD lpdwAddressStringLength);
959− typedef INT (WSAAPI *LPFN_WSASTRINGTOADDRESSA)(LPSTR AddressString,INT AddressFamily,LPWSAPROTOCOL_INFOA lpProtocolInfo,LPSOCKADDR lpAddress,LPINT lpAddressLength);
960− typedef INT (WSAAPI *LPFN_WSASTRINGTOADDRESSW)(LPWSTR AddressString,INT AddressFamily,LPWSAPROTOCOL_INFOW lpProtocolInfo,LPSOCKADDR lpAddress,LPINT lpAddressLength);
961− typedef INT (WSAAPI *LPFN_WSALOOKUPSERVICEBEGINA)(LPWSAQUERYSETA lpqsRestrictions,DWORD dwControlFlags,LPHANDLE lphLookup);
962− typedef INT (WSAAPI *LPFN_WSALOOKUPSERVICEBEGINW)(LPWSAQUERYSETW lpqsRestrictions,DWORD dwControlFlags,LPHANDLE lphLookup);
963− typedef INT (WSAAPI *LPFN_WSALOOKUPSERVICENEXTA)(HANDLE hLookup,DWORD dwControlFlags,LPDWORD lpdwBufferLength,LPWSAQUERYSETA lpqsResults);
964− typedef INT (WSAAPI *LPFN_WSALOOKUPSERVICENEXTW)(HANDLE hLookup,DWORD dwControlFlags,LPDWORD lpdwBufferLength,LPWSAQUERYSETW lpqsResults);
965− typedef INT (WSAAPI *LPFN_WSANSPIOCTL)(HANDLE hLookup,DWORD dwControlCode,LPVOID lpvInBuffer,DWORD cbInBuffer,LPVOID lpvOutBuffer,DWORD cbOutBuffer,LPDWORD lpcbBytesReturned,LPWSACOMPLETION lpCompletion);
966− typedef INT (WSAAPI *LPFN_WSALOOKUPSERVICEEND)(HANDLE hLookup);
967− typedef INT (WSAAPI *LPFN_WSAINSTALLSERVICECLASSA)(LPWSASERVICECLASSINFOA lpServiceClassInfo);
968− typedef INT (WSAAPI *LPFN_WSAINSTALLSERVICECLASSW)(LPWSASERVICECLASSINFOW lpServiceClassInfo);
969− typedef INT (WSAAPI *LPFN_WSAREMOVESERVICECLASS)(LPGUID lpServiceClassId);
970− typedef INT (WSAAPI *LPFN_WSAGETSERVICECLASSINFOA)(LPGUID lpProviderId,LPGUID lpServiceClassId,LPDWORD lpdwBufSize,LPWSASERVICECLASSINFOA lpServiceClassInfo);
971− typedef INT (WSAAPI *LPFN_WSAGETSERVICECLASSINFOW)(LPGUID lpProviderId,LPGUID lpServiceClassId,LPDWORD lpdwBufSize,LPWSASERVICECLASSINFOW lpServiceClassInfo);
972− typedef INT (WSAAPI *LPFN_WSAENUMNAMESPACEPROVIDERSA)(LPDWORD lpdwBufferLength,LPWSANAMESPACE_INFOA lpnspBuffer);
973− typedef INT (WSAAPI *LPFN_WSAENUMNAMESPACEPROVIDERSW)(LPDWORD lpdwBufferLength,LPWSANAMESPACE_INFOW lpnspBuffer);
974− typedef INT (WSAAPI *LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDA)(LPGUID lpServiceClassId,LPSTR lpszServiceClassName,LPDWORD lpdwBufferLength);
975− typedef INT (WSAAPI *LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDW)(LPGUID lpServiceClassId,LPWSTR lpszServiceClassName,LPDWORD lpdwBufferLength);
976− typedef INT (WSAAPI *LPFN_WSASETSERVICEA)(LPWSAQUERYSETA lpqsRegInfo,WSAESETSERVICEOP essoperation,DWORD dwControlFlags);
977− typedef INT (WSAAPI *LPFN_WSASETSERVICEW)(LPWSAQUERYSETW lpqsRegInfo,WSAESETSERVICEOP essoperation,DWORD dwControlFlags);
978− typedef INT (WSAAPI *LPFN_WSAPROVIDERCONFIGCHANGE)(LPHANDLE lpNotificationHandle,LPWSAOVERLAPPED lpOverlapped,LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
979−#endif
980−
981−#define WSADuplicateSocket __MINGW_NAME_AW(WSADuplicateSocket)
982−#define WSAEnumProtocols __MINGW_NAME_AW(WSAEnumProtocols)
983−#define WSAAddressToString __MINGW_NAME_AW(WSAAddressToString)
984−#define WSASocket __MINGW_NAME_AW(WSASocket)
985−#define WSAStringToAddress __MINGW_NAME_AW(WSAStringToAddress)
986−#define WSALookupServiceBegin __MINGW_NAME_AW(WSALookupServiceBegin)
987−#define WSALookupServiceNext __MINGW_NAME_AW(WSALookupServiceNext)
988−#define WSAInstallServiceClass __MINGW_NAME_AW(WSAInstallServiceClass)
989−#define WSAGetServiceClassInfo __MINGW_NAME_AW(WSAGetServiceClassInfo)
990−#define WSAEnumNameSpaceProviders __MINGW_NAME_AW(WSAEnumNameSpaceProviders)
991−#define WSAGetServiceClassNameByClassId __MINGW_NAME_AW(WSAGetServiceClassNameByClassId)
992−#define WSASetService __MINGW_NAME_AW(WSASetService)
993−
994−#ifndef __WINSOCK_WS1_SHARED
995−/* these 46 functions have the same prototypes as in winsock2 */
996− WINSOCK_API_LINKAGE SOCKET WSAAPI accept(SOCKET s,struct sockaddr *addr,int *addrlen);
997− WINSOCK_API_LINKAGE int WSAAPI bind(SOCKET s,const struct sockaddr *name,int namelen);
998− WINSOCK_API_LINKAGE int WSAAPI closesocket(SOCKET s);
999− WINSOCK_API_LINKAGE int WSAAPI connect(SOCKET s,const struct sockaddr *name,int namelen);
1000− WINSOCK_API_LINKAGE int WSAAPI ioctlsocket(SOCKET s,long cmd,u_long *argp);
1001− WINSOCK_API_LINKAGE int WSAAPI getpeername(SOCKET s,struct sockaddr *name,int *namelen);
1002− WINSOCK_API_LINKAGE int WSAAPI getsockname(SOCKET s,struct sockaddr *name,int *namelen);
1003− WINSOCK_API_LINKAGE int WSAAPI getsockopt(SOCKET s,int level,int optname,char *optval,int *optlen);
1004− WINSOCK_API_LINKAGE u_long WSAAPI htonl(u_long hostlong);
1005− WINSOCK_API_LINKAGE u_short WSAAPI htons(u_short hostshort);
1006− WINSOCK_API_LINKAGE unsigned long WSAAPI inet_addr(const char *cp);
1007− WINSOCK_API_LINKAGE char *WSAAPI inet_ntoa(struct in_addr in);
1008− WINSOCK_API_LINKAGE int WSAAPI listen(SOCKET s,int backlog);
1009− WINSOCK_API_LINKAGE u_long WSAAPI ntohl(u_long netlong);
1010− WINSOCK_API_LINKAGE u_short WSAAPI ntohs(u_short netshort);
1011− WINSOCK_API_LINKAGE int WSAAPI recv(SOCKET s,char *buf,int len,int flags);
1012− WINSOCK_API_LINKAGE int WSAAPI recvfrom(SOCKET s,char *buf,int len,int flags,struct sockaddr *from,int *fromlen);
1013− WINSOCK_API_LINKAGE int WSAAPI select(int nfds,fd_set *readfds,fd_set *writefds,fd_set *exceptfds,const struct timeval *timeout);
1014− WINSOCK_API_LINKAGE int WSAAPI send(SOCKET s,const char *buf,int len,int flags);
1015− WINSOCK_API_LINKAGE int WSAAPI sendto(SOCKET s,const char *buf,int len,int flags,const struct sockaddr *to,int tolen);
1016− WINSOCK_API_LINKAGE int WSAAPI setsockopt(SOCKET s,int level,int optname,const char *optval,int optlen);
1017− WINSOCK_API_LINKAGE int WSAAPI shutdown(SOCKET s,int how);
1018− WINSOCK_API_LINKAGE SOCKET WSAAPI socket(int af,int type,int protocol);
1019− WINSOCK_API_LINKAGE struct hostent *WSAAPI gethostbyaddr(const char *addr,int len,int type);
1020− WINSOCK_API_LINKAGE struct hostent *WSAAPI gethostbyname(const char *name);
1021− WINSOCK_API_LINKAGE int WSAAPI gethostname(char *name,int namelen);
1022− WINSOCK_API_LINKAGE struct servent *WSAAPI getservbyport(int port,const char *proto);
1023− WINSOCK_API_LINKAGE struct servent *WSAAPI getservbyname(const char *name,const char *proto);
1024− WINSOCK_API_LINKAGE struct protoent *WSAAPI getprotobynumber(int number);
1025− WINSOCK_API_LINKAGE struct protoent *WSAAPI getprotobyname(const char *name);
1026− WINSOCK_API_LINKAGE int WSAAPI WSAStartup(WORD wVersionRequested,LPWSADATA lpWSAData);
1027− WINSOCK_API_LINKAGE int WSAAPI WSACleanup(void);
1028− WINSOCK_API_LINKAGE void WSAAPI WSASetLastError(int iError);
1029− WINSOCK_API_LINKAGE int WSAAPI WSAGetLastError(void);
1030− WINSOCK_API_LINKAGE WINBOOL WSAAPI WSAIsBlocking(void);
1031− WINSOCK_API_LINKAGE int WSAAPI WSAUnhookBlockingHook(void);
1032− WINSOCK_API_LINKAGE FARPROC WSAAPI WSASetBlockingHook(FARPROC lpBlockFunc);
1033− WINSOCK_API_LINKAGE int WSAAPI WSACancelBlockingCall(void);
1034− WINSOCK_API_LINKAGE HANDLE WSAAPI WSAAsyncGetServByName(HWND hWnd,u_int wMsg,const char *name,const char *proto,char *buf,int buflen);
1035− WINSOCK_API_LINKAGE HANDLE WSAAPI WSAAsyncGetServByPort(HWND hWnd,u_int wMsg,int port,const char *proto,char *buf,int buflen);
1036− WINSOCK_API_LINKAGE HANDLE WSAAPI WSAAsyncGetProtoByName(HWND hWnd,u_int wMsg,const char *name,char *buf,int buflen);
1037− WINSOCK_API_LINKAGE HANDLE WSAAPI WSAAsyncGetProtoByNumber(HWND hWnd,u_int wMsg,int number,char *buf,int buflen);
1038− WINSOCK_API_LINKAGE HANDLE WSAAPI WSAAsyncGetHostByName(HWND hWnd,u_int wMsg,const char *name,char *buf,int buflen);
1039− WINSOCK_API_LINKAGE HANDLE WSAAPI WSAAsyncGetHostByAddr(HWND hWnd,u_int wMsg,const char *addr,int len,int type,char *buf,int buflen);
1040− WINSOCK_API_LINKAGE int WSAAPI WSACancelAsyncRequest(HANDLE hAsyncTaskHandle);
1041− WINSOCK_API_LINKAGE int WSAAPI WSAAsyncSelect(SOCKET s,HWND hWnd,u_int wMsg,long lEvent);
1042−#endif /* __WINSOCK_WS1_SHARED */
1043− WINSOCK_API_LINKAGE SOCKET WSAAPI WSAAccept(SOCKET s,struct sockaddr *addr,LPINT addrlen,LPCONDITIONPROC lpfnCondition,DWORD_PTR dwCallbackData);
1044− WINSOCK_API_LINKAGE WINBOOL WSAAPI WSACloseEvent(WSAEVENT hEvent);
1045− WINSOCK_API_LINKAGE int WSAAPI WSAConnect(SOCKET s,const struct sockaddr *name,int namelen,LPWSABUF lpCallerData,LPWSABUF lpCalleeData,LPQOS lpSQOS,LPQOS lpGQOS);
1046− WINSOCK_API_LINKAGE WSAEVENT WSAAPI WSACreateEvent(void);
1047− WINSOCK_API_LINKAGE int WSAAPI WSADuplicateSocketA(SOCKET s,DWORD dwProcessId,LPWSAPROTOCOL_INFOA lpProtocolInfo);
1048− WINSOCK_API_LINKAGE int WSAAPI WSADuplicateSocketW(SOCKET s,DWORD dwProcessId,LPWSAPROTOCOL_INFOW lpProtocolInfo);
1049− WINSOCK_API_LINKAGE int WSAAPI WSAEnumNetworkEvents(SOCKET s,WSAEVENT hEventObject,LPWSANETWORKEVENTS lpNetworkEvents);
1050− WINSOCK_API_LINKAGE int WSAAPI WSAEnumProtocolsA(LPINT lpiProtocols,LPWSAPROTOCOL_INFOA lpProtocolBuffer,LPDWORD lpdwBufferLength);
1051− WINSOCK_API_LINKAGE int WSAAPI WSAEnumProtocolsW(LPINT lpiProtocols,LPWSAPROTOCOL_INFOW lpProtocolBuffer,LPDWORD lpdwBufferLength);
1052− WINSOCK_API_LINKAGE int WSAAPI WSAEventSelect(SOCKET s,WSAEVENT hEventObject,long lNetworkEvents);
1053− WINSOCK_API_LINKAGE WINBOOL WSAAPI WSAGetOverlappedResult(SOCKET s,LPWSAOVERLAPPED lpOverlapped,LPDWORD lpcbTransfer,WINBOOL fWait,LPDWORD lpdwFlags);
1054− WINSOCK_API_LINKAGE WINBOOL WSAAPI WSAGetQOSByName(SOCKET s,LPWSABUF lpQOSName,LPQOS lpQOS);
1055− WINSOCK_API_LINKAGE int WSAAPI WSAHtonl(SOCKET s,u_long hostlong,u_long *lpnetlong);
1056− WINSOCK_API_LINKAGE int WSAAPI WSAHtons(SOCKET s,u_short hostshort,u_short *lpnetshort);
1057− WINSOCK_API_LINKAGE int WSAAPI WSAIoctl(SOCKET s,DWORD dwIoControlCode,LPVOID lpvInBuffer,DWORD cbInBuffer,LPVOID lpvOutBuffer,DWORD cbOutBuffer,LPDWORD lpcbBytesReturned,LPWSAOVERLAPPED lpOverlapped,LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
1058− WINSOCK_API_LINKAGE SOCKET WSAAPI WSAJoinLeaf(SOCKET s,const struct sockaddr *name,int namelen,LPWSABUF lpCallerData,LPWSABUF lpCalleeData,LPQOS lpSQOS,LPQOS lpGQOS,DWORD dwFlags);
1059− WINSOCK_API_LINKAGE int WSAAPI WSANtohl(SOCKET s,u_long netlong,u_long *lphostlong);
1060− WINSOCK_API_LINKAGE int WSAAPI WSANtohs(SOCKET s,u_short netshort,u_short *lphostshort);
1061− WINSOCK_API_LINKAGE int WSAAPI WSARecv(SOCKET s,LPWSABUF lpBuffers,DWORD dwBufferCount,LPDWORD lpNumberOfBytesRecvd,LPDWORD lpFlags,LPWSAOVERLAPPED lpOverlapped,LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
1062− WINSOCK_API_LINKAGE int WSAAPI WSARecvDisconnect(SOCKET s,LPWSABUF lpInboundDisconnectData);
1063− WINSOCK_API_LINKAGE int WSAAPI WSARecvFrom(SOCKET s,LPWSABUF lpBuffers,DWORD dwBufferCount,LPDWORD lpNumberOfBytesRecvd,LPDWORD lpFlags,struct sockaddr *lpFrom,LPINT lpFromlen,LPWSAOVERLAPPED lpOverlapped,LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
1064− WINSOCK_API_LINKAGE WINBOOL WSAAPI WSAResetEvent(WSAEVENT hEvent);
1065− WINSOCK_API_LINKAGE int WSAAPI WSASend(SOCKET s,LPWSABUF lpBuffers,DWORD dwBufferCount,LPDWORD lpNumberOfBytesSent,DWORD dwFlags,LPWSAOVERLAPPED lpOverlapped,LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
1066− WINSOCK_API_LINKAGE int WSAAPI WSASendDisconnect(SOCKET s,LPWSABUF lpOutboundDisconnectData);
1067− WINSOCK_API_LINKAGE int WSAAPI WSASendTo(SOCKET s,LPWSABUF lpBuffers,DWORD dwBufferCount,LPDWORD lpNumberOfBytesSent,DWORD dwFlags,const struct sockaddr *lpTo,int iTolen,LPWSAOVERLAPPED lpOverlapped,LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
1068− WINSOCK_API_LINKAGE WINBOOL WSAAPI WSASetEvent(WSAEVENT hEvent);
1069− WINSOCK_API_LINKAGE SOCKET WSAAPI WSASocketA(int af,int type,int protocol,LPWSAPROTOCOL_INFOA lpProtocolInfo,GROUP g,DWORD dwFlags);
1070− WINSOCK_API_LINKAGE SOCKET WSAAPI WSASocketW(int af,int type,int protocol,LPWSAPROTOCOL_INFOW lpProtocolInfo,GROUP g,DWORD dwFlags);
1071− WINSOCK_API_LINKAGE DWORD WSAAPI WSAWaitForMultipleEvents(DWORD cEvents,const WSAEVENT *lphEvents,WINBOOL fWaitAll,DWORD dwTimeout,WINBOOL fAlertable);
1072− WINSOCK_API_LINKAGE INT WSAAPI WSAAddressToStringA(LPSOCKADDR lpsaAddress,DWORD dwAddressLength,LPWSAPROTOCOL_INFOA lpProtocolInfo,LPSTR lpszAddressString,LPDWORD lpdwAddressStringLength);
1073− WINSOCK_API_LINKAGE INT WSAAPI WSAAddressToStringW(LPSOCKADDR lpsaAddress,DWORD dwAddressLength,LPWSAPROTOCOL_INFOW lpProtocolInfo,LPWSTR lpszAddressString,LPDWORD lpdwAddressStringLength);
1074− WINSOCK_API_LINKAGE INT WSAAPI WSAStringToAddressA(LPSTR AddressString,INT AddressFamily,LPWSAPROTOCOL_INFOA lpProtocolInfo,LPSOCKADDR lpAddress,LPINT lpAddressLength);
1075− WINSOCK_API_LINKAGE INT WSAAPI WSAStringToAddressW(LPWSTR AddressString,INT AddressFamily,LPWSAPROTOCOL_INFOW lpProtocolInfo,LPSOCKADDR lpAddress,LPINT lpAddressLength);
1076− WINSOCK_API_LINKAGE INT WSAAPI WSALookupServiceBeginA(LPWSAQUERYSETA lpqsRestrictions,DWORD dwControlFlags,LPHANDLE lphLookup);
1077− WINSOCK_API_LINKAGE INT WSAAPI WSALookupServiceBeginW(LPWSAQUERYSETW lpqsRestrictions,DWORD dwControlFlags,LPHANDLE lphLookup);
1078− WINSOCK_API_LINKAGE INT WSAAPI WSALookupServiceNextA(HANDLE hLookup,DWORD dwControlFlags,LPDWORD lpdwBufferLength,LPWSAQUERYSETA lpqsResults);
1079− WINSOCK_API_LINKAGE INT WSAAPI WSALookupServiceNextW(HANDLE hLookup,DWORD dwControlFlags,LPDWORD lpdwBufferLength,LPWSAQUERYSETW lpqsResults);
1080− WINSOCK_API_LINKAGE INT WSAAPI WSANSPIoctl(HANDLE hLookup,DWORD dwControlCode,LPVOID lpvInBuffer,DWORD cbInBuffer,LPVOID lpvOutBuffer,DWORD cbOutBuffer,LPDWORD lpcbBytesReturned,LPWSACOMPLETION lpCompletion);
1081− WINSOCK_API_LINKAGE INT WSAAPI WSALookupServiceEnd(HANDLE hLookup);
1082− WINSOCK_API_LINKAGE INT WSAAPI WSAInstallServiceClassA(LPWSASERVICECLASSINFOA lpServiceClassInfo);
1083− WINSOCK_API_LINKAGE INT WSAAPI WSAInstallServiceClassW(LPWSASERVICECLASSINFOW lpServiceClassInfo);
1084− WINSOCK_API_LINKAGE INT WSAAPI WSARemoveServiceClass(LPGUID lpServiceClassId);
1085− WINSOCK_API_LINKAGE INT WSAAPI WSAGetServiceClassInfoA(LPGUID lpProviderId,LPGUID lpServiceClassId,LPDWORD lpdwBufSize,LPWSASERVICECLASSINFOA lpServiceClassInfo);
1086− WINSOCK_API_LINKAGE INT WSAAPI WSAGetServiceClassInfoW(LPGUID lpProviderId,LPGUID lpServiceClassId,LPDWORD lpdwBufSize,LPWSASERVICECLASSINFOW lpServiceClassInfo);
1087− WINSOCK_API_LINKAGE INT WSAAPI WSAEnumNameSpaceProvidersA(LPDWORD lpdwBufferLength,LPWSANAMESPACE_INFOA lpnspBuffer);
1088− WINSOCK_API_LINKAGE INT WSAAPI WSAEnumNameSpaceProvidersW(LPDWORD lpdwBufferLength,LPWSANAMESPACE_INFOW lpnspBuffer);
1089− WINSOCK_API_LINKAGE INT WSAAPI WSAGetServiceClassNameByClassIdA(LPGUID lpServiceClassId,LPSTR lpszServiceClassName,LPDWORD lpdwBufferLength);
1090− WINSOCK_API_LINKAGE INT WSAAPI WSAGetServiceClassNameByClassIdW(LPGUID lpServiceClassId,LPWSTR lpszServiceClassName,LPDWORD lpdwBufferLength);
1091− WINSOCK_API_LINKAGE INT WSAAPI WSASetServiceA(LPWSAQUERYSETA lpqsRegInfo,WSAESETSERVICEOP essoperation,DWORD dwControlFlags);
1092− WINSOCK_API_LINKAGE INT WSAAPI WSASetServiceW(LPWSAQUERYSETW lpqsRegInfo,WSAESETSERVICEOP essoperation,DWORD dwControlFlags);
1093− WINSOCK_API_LINKAGE INT WSAAPI WSAProviderConfigChange(LPHANDLE lpNotificationHandle,LPWSAOVERLAPPED lpOverlapped,LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine);
1094−
1095−#define WSAMAKEASYNCREPLY(buflen,error) MAKELONG(buflen,error)
1096−#define WSAMAKESELECTREPLY(event,error) MAKELONG(event,error)
1097−#define WSAGETASYNCBUFLEN(lParam) LOWORD(lParam)
1098−#define WSAGETASYNCERROR(lParam) HIWORD(lParam)
1099−#define WSAGETSELECTEVENT(lParam) LOWORD(lParam)
1100−#define WSAGETSELECTERROR(lParam) HIWORD(lParam)
1101−
1102−#if (_WIN32_WINNT >= 0x0600)
1103−typedef struct _WSANAMESPACE_INFOEXA {
1104− GUID NSProviderId;
1105− DWORD dwNameSpace;
1106− WINBOOL fActive;
1107− DWORD dwVersion;
1108− LPSTR lpszIdentifier;
1109− BLOB ProviderSpecific;
1110−} WSANAMESPACE_INFOEXA, *PWSANAMESPACE_INFOEXA, *LPWSANAMESPACE_INFOEXA;
1111−
1112−typedef struct _WSANAMESPACE_INFOEXW {
1113− GUID NSProviderId;
1114− DWORD dwNameSpace;
1115− WINBOOL fActive;
1116− DWORD dwVersion;
1117− LPWSTR lpszIdentifier;
1118− BLOB ProviderSpecific;
1119−} WSANAMESPACE_INFOEXW, *PWSANAMESPACE_INFOEXW, *LPWSANAMESPACE_INFOEXW;
1120−
1121−__MINGW_TYPEDEF_AW(WSANAMESPACE_INFOEX)
1122−__MINGW_TYPEDEF_AW(PWSANAMESPACE_INFOEX)
1123−__MINGW_TYPEDEF_AW(LPWSANAMESPACE_INFOEX)
1124−
1125−typedef struct _WSAQUERYSET2A {
1126− DWORD dwSize;
1127− LPSTR lpszServiceInstanceName;
1128− LPWSAVERSION lpVersion;
1129− LPSTR lpszComment;
1130− DWORD dwNameSpace;
1131− LPGUID lpNSProviderId;
1132− LPSTR lpszContext;
1133− DWORD dwNumberOfProtocols;
1134− LPAFPROTOCOLS lpafpProtocols;
1135− LPSTR lpszQueryString;
1136− DWORD dwNumberOfCsAddrs;
1137− LPCSADDR_INFO lpcsaBuffer;
1138− DWORD dwOutputFlags;
1139− LPBLOB lpBlob;
1140−} WSAQUERYSET2A, *PWSAQUERYSET2A, *LPWSAQUERYSET2A;
1141−
1142−typedef struct _WSAQUERYSET2W {
1143− DWORD dwSize;
1144− LPWSTR lpszServiceInstanceName;
1145− LPWSAVERSION lpVersion;
1146− LPWSTR lpszComment;
1147− DWORD dwNameSpace;
1148− LPGUID lpNSProviderId;
1149− LPTSTR lpszContext;
1150− DWORD dwNumberOfProtocols;
1151− LPAFPROTOCOLS lpafpProtocols;
1152− LPWSTR lpszQueryString;
1153− DWORD dwNumberOfCsAddrs;
1154− LPCSADDR_INFO lpcsaBuffer;
1155− DWORD dwOutputFlags;
1156− LPBLOB lpBlob;
1157−} WSAQUERYSET2W, *PWSAQUERYSET2W, *LPWSAQUERYSET2W;
1158−
1159−#define POLLRDNORM 0x0100
1160−#define POLLRDBAND 0x0200
1161−#define POLLIN (POLLRDNORM | POLLRDBAND)
1162−#define POLLPRI 0x0400
1163−
1164−#define POLLWRNORM 0x0010
1165−#define POLLOUT (POLLWRNORM)
1166−#define POLLWRBAND 0x0020
1167−
1168−#define POLLERR 0x0001
1169−#define POLLHUP 0x0002
1170−#define POLLNVAL 0x0004
1171−
1172−typedef struct pollfd {
1173− SOCKET fd;
1174− short events;
1175− short revents;
1176−} WSAPOLLFD, *PWSAPOLLFD, *LPWSAPOLLFD;
1177−
1178−WINSOCK_API_LINKAGE WINBOOL PASCAL WSAConnectByList(
1179− SOCKET s,
1180− PSOCKET_ADDRESS_LIST SocketAddressList,
1181− LPDWORD LocalAddressLength,
1182− LPSOCKADDR LocalAddress,
1183− LPDWORD RemoteAddressLength,
1184− LPSOCKADDR RemoteAddress,
1185− const struct timeval *timeout,
1186− LPWSAOVERLAPPED Reserved
1187−);
1188−
1189−WINSOCK_API_LINKAGE WINBOOL PASCAL WSAConnectByNameA(
1190− SOCKET s,
1191− LPSTR nodename,
1192− LPSTR servicename,
1193− LPDWORD LocalAddressLength,
1194− LPSOCKADDR LocalAddress,
1195− LPDWORD RemoteAddressLength,
1196− LPSOCKADDR RemoteAddress,
1197− const struct timeval *timeout,
1198− LPWSAOVERLAPPED Reserved
1199−);
1200−
1201−WINSOCK_API_LINKAGE WINBOOL PASCAL WSAConnectByNameW(
1202− SOCKET s,
1203− LPWSTR nodename,
1204− LPWSTR servicename,
1205− LPDWORD LocalAddressLength,
1206− LPSOCKADDR LocalAddress,
1207− LPDWORD RemoteAddressLength,
1208− LPSOCKADDR RemoteAddress,
1209− const struct timeval *timeout,
1210− LPWSAOVERLAPPED Reserved
1211−);
1212−#define WSAConnectByName __MINGW_NAME_AW(WSAConnectByName)
1213−
1214−INT WSAAPI WSAEnumNameSpaceProvidersExA(
1215− LPDWORD lpdwBufferLength,
1216− LPWSANAMESPACE_INFOEXA lpnspBuffer
1217−);
1218−
1219−INT WSAAPI WSAEnumNameSpaceProvidersExW(
1220− LPDWORD lpdwBufferLength,
1221− LPWSANAMESPACE_INFOEXW lpnspBuffer
1222−);
1223−#define WSAEnumNameSpaceProvidersEx __MINGW_NAME_AW(WSAEnumNameSpaceProvidersEx)
1224−
1225−int WSAAPI WSAPoll(
1226− WSAPOLLFD fdarray[],
1227− ULONG nfds,
1228− INT timeout
1229−);
1230−
1231−int WSAAPI WSASendMsg(
1232− SOCKET s,
1233− LPWSAMSG lpMsg,
1234− DWORD dwFlags,
1235− LPDWORD lpNumberOfBytesSent,
1236− LPWSAOVERLAPPED lpOverlapped,
1237− LPWSAOVERLAPPED_COMPLETION_ROUTINE lpCompletionRoutine
1238−);
1239−#endif /*(_WIN32_WINNT >= 0x0600)*/
1240−
1241−#ifdef __cplusplus
1242−}
1243−#endif
1244−
1245−#ifdef _NEED_POPPACK
1246−#include <poppack.h>
1247−#endif
1248−
1249−#ifdef IPV6STRICT
1250−#include <wsipv6ok.h>
1251−#endif
1252−
1253−#endif /* _WINSOCK2API_ */
win32/include/winapi/winuser.h+1−1
@@ -4870,7 +4870,7 @@ extern "C" { · 4869 unmodified lines
48704870 #define CDS_RESET 0x40000000
48714871 #define CDS_NORESET 0x10000000
48724872
4873−#include <tvout.h>
4873+//gr #include <tvout.h>
48744874
48754875 #define DISP_CHANGE_SUCCESSFUL 0
48764876 #define DISP_CHANGE_RESTART 1
win32/include/winapi/ws2def.h+0−39
@@ -1,39 +0,0 @@
1−/**
2− * This file has no copyright assigned and is placed in the Public Domain.
3− * This file is part of the w64 mingw-runtime package.
4− * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5− */
6−
7−#ifndef _WS2DEF_
8−#define _WS2DEF_
9−
10−#include <_mingw.h>
11−
12−/* FIXME FIXME FIXME FIXME FIXME: Much more data need moving here.
13− * This holds only SCOPE_LEVEL and SCOPE_ID so that compilations
14− * do not fail.
15− */
16−
17−typedef enum _SCOPE_LEVEL {
18− ScopeLevelInterface = 1,
19− ScopeLevelLink = 2,
20− ScopeLevelSubnet = 3,
21− ScopeLevelAdmin = 4,
22− ScopeLevelSite = 5,
23− ScopeLevelOrganization = 8,
24− ScopeLevelGlobal = 14,
25− ScopeLevelCount = 16
26−} SCOPE_LEVEL;
27−
28−typedef struct _SCOPE_ID {
29− __C89_NAMELESS union {
30− __C89_NAMELESS struct {
31− ULONG Zone : 28;
32− ULONG Level : 4;
33− };
34− ULONG Value;
35− };
36−} SCOPE_ID, *PSCOPE_ID;
37−
38−#endif /* _WS2DEF_ */
39−
win32/include/winapi/ws2ipdef.h+0−96
@@ -1,96 +0,0 @@
1−/**
2− * This file has no copyright assigned and is placed in the Public Domain.
3− * This file is part of the w64 mingw-runtime package.
4− * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5− */
6−#ifndef _INC_WS2IPDEF
7−#define _INC_WS2IPDEF
8−
9−#include <in6addr.h>
10−#include <ws2def.h>
11−
12−#ifdef __cplusplus
13−extern "C" {
14−#endif
15−
16−typedef struct ipv6_mreq {
17− struct in6_addr ipv6mr_multiaddr;
18− unsigned int ipv6mr_interface;
19−} IPV6_MREQ;
20−
21−struct sockaddr_in6_old {
22− short sin6_family;
23− u_short sin6_port;
24− u_long sin6_flowinfo;
25− struct in6_addr sin6_addr;
26−};
27−
28−typedef union sockaddr_gen {
29− struct sockaddr Address;
30− struct sockaddr_in AddressIn;
31− struct sockaddr_in6_old AddressIn6;
32−} sockaddr_gen;
33−
34−struct sockaddr_in6 {
35− short sin6_family;
36− u_short sin6_port;
37− u_long sin6_flowinfo;
38− struct in6_addr sin6_addr;
39− __C89_NAMELESS union {
40− u_long sin6_scope_id;
41− SCOPE_ID sin6_scope_struct;
42− };
43−};
44−
45−typedef struct sockaddr_in6 SOCKADDR_IN6;
46−typedef struct sockaddr_in6 *PSOCKADDR_IN6;
47−typedef struct sockaddr_in6 *LPSOCKADDR_IN6;
48−typedef u_short ADDRESS_FAMILY;
49−
50−typedef struct _INTERFACE_INFO {
51− u_long iiFlags;
52− sockaddr_gen iiAddress;
53− sockaddr_gen iiBroadcastAddress;
54− sockaddr_gen iiNetmask;
55−} INTERFACE_INFO,*LPINTERFACE_INFO;
56−
57−typedef enum _MULTICAST_MODE_TYPE {
58− MCAST_INCLUDE = 0,
59− MCAST_EXCLUDE
60−} MULTICAST_MODE_TYPE;
61−
62−typedef struct _sockaddr_in6_pair {
63− PSOCKADDR_IN6 SourceAddress;
64− PSOCKADDR_IN6 DestinationAddress;
65−} SOCKADDR_IN6_PAIR, *PSOCKADDR_IN6_PAIR;
66−
67−typedef union _SOCKADDR_INET {
68− SOCKADDR_IN Ipv4;
69− SOCKADDR_IN6 Ipv6;
70− ADDRESS_FAMILY si_family;
71−} SOCKADDR_INET, *PSOCKADDR_INET;
72−
73−typedef struct group_filter {
74− ULONG gf_interface;
75− SOCKADDR_STORAGE gf_group;
76− MULTICAST_MODE_TYPE gf_fmode;
77− ULONG gf_numsrc;
78− SOCKADDR_STORAGE gf_slist[1];
79−} GROUP_FILTER, *PGROUP_FILTER;
80−
81−typedef struct group_req {
82− ULONG gr_interface;
83− SOCKADDR_STORAGE gr_group;
84−} GROUP_REQ, *PGROUP_REQ;
85−
86−typedef struct group_source_req {
87− ULONG gsr_interface;
88− SOCKADDR_STORAGE gsr_group;
89− SOCKADDR_STORAGE gsr_source;
90−} GROUP_SOURCE_REQ, *PGROUP_SOURCE_REQ;
91−
92−#ifdef __cplusplus
93−}
94−#endif
95−
96−#endif /*_INC_WS2IPDEF*/
win32/include/winapi/ws2tcpip.h+0−437
@@ -1,437 +0,0 @@
1−/**
2− * This file has no copyright assigned and is placed in the Public Domain.
3− * This file is part of the w64 mingw-runtime package.
4− * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5− */
6−#ifndef _WS2TCPIP_H_
7−#define _WS2TCPIP_H_
8−
9−#include <_mingw_unicode.h>
10−
11−#include <winsock2.h>
12−#include <psdk_inc/_ip_mreq1.h>
13−
14−struct ip_mreq_source {
15− struct in_addr imr_multiaddr;
16− struct in_addr imr_sourceaddr;
17− struct in_addr imr_interface;
18−};
19−
20−struct ip_msfilter {
21− struct in_addr imsf_multiaddr;
22− struct in_addr imsf_interface;
23− u_long imsf_fmode;
24− u_long imsf_numsrc;
25− struct in_addr imsf_slist[1];
26−};
27−
28−#define IP_MSFILTER_SIZE(numsrc) (sizeof(struct ip_msfilter)-sizeof(struct in_addr) + (numsrc)*sizeof(struct in_addr))
29−
30−#define SIO_GET_INTERFACE_LIST _IOR('t',127,u_long)
31−
32−#define SIO_GET_INTERFACE_LIST_EX _IOR('t',126,u_long)
33−#define SIO_SET_MULTICAST_FILTER _IOW('t',125,u_long)
34−#define SIO_GET_MULTICAST_FILTER _IOW('t',124 | IOC_IN,u_long)
35−
36−#define IP_OPTIONS 1
37−#define IP_HDRINCL 2
38−#define IP_TOS 3
39−#define IP_TTL 4
40−#define IP_MULTICAST_IF 9
41−#define IP_MULTICAST_TTL 10
42−#define IP_MULTICAST_LOOP 11
43−#define IP_ADD_MEMBERSHIP 12
44−#define IP_DROP_MEMBERSHIP 13
45−#define IP_DONTFRAGMENT 14
46−#define IP_ADD_SOURCE_MEMBERSHIP 15
47−#define IP_DROP_SOURCE_MEMBERSHIP 16
48−#define IP_BLOCK_SOURCE 17
49−#define IP_UNBLOCK_SOURCE 18
50−#define IP_PKTINFO 19
51−#define IP_RECEIVE_BROADCAST 22
52−
53−#define IPV6_HDRINCL 2
54−#define IPV6_UNICAST_HOPS 4
55−#define IPV6_MULTICAST_IF 9
56−#define IPV6_MULTICAST_HOPS 10
57−#define IPV6_MULTICAST_LOOP 11
58−#define IPV6_ADD_MEMBERSHIP 12
59−#define IPV6_DROP_MEMBERSHIP 13
60−#define IPV6_JOIN_GROUP IPV6_ADD_MEMBERSHIP
61−#define IPV6_LEAVE_GROUP IPV6_DROP_MEMBERSHIP
62−#define IPV6_PKTINFO 19
63−#define IPV6_HOPLIMIT 21
64−#define IPV6_PROTECTION_LEVEL 23
65−
66−#define PROTECTION_LEVEL_UNRESTRICTED 10
67−#define PROTECTION_LEVEL_DEFAULT 20
68−#define PROTECTION_LEVEL_RESTRICTED 30
69−
70−#define UDP_NOCHECKSUM 1
71−#define UDP_CHECKSUM_COVERAGE 20
72−
73−#define TCP_EXPEDITED_1122 0x0002
74−
75−
76−#include <ws2ipdef.h>
77−
78−
79−#define SS_PORT(ssp) (((struct sockaddr_in*)(ssp))->sin_port)
80−
81−#define IN6ADDR_ANY_INIT { 0 }
82−#define IN6ADDR_LOOPBACK_INIT { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 }
83−
84−#ifdef __cplusplus
85−extern "C" {
86−#endif
87−
88− extern const struct in6_addr in6addr_any;
89− extern const struct in6_addr in6addr_loopback;
90−
91−#define WS2TCPIP_INLINE __CRT_INLINE
92−
93−int IN6_ADDR_EQUAL(const struct in6_addr *,const struct in6_addr *);
94−int IN6_IS_ADDR_UNSPECIFIED(const struct in6_addr *);
95−int IN6_IS_ADDR_LOOPBACK(const struct in6_addr *);
96−int IN6_IS_ADDR_MULTICAST(const struct in6_addr *);
97−int IN6_IS_ADDR_LINKLOCAL(const struct in6_addr *);
98−int IN6_IS_ADDR_SITELOCAL(const struct in6_addr *);
99−int IN6_IS_ADDR_V4MAPPED(const struct in6_addr *);
100−int IN6_IS_ADDR_V4COMPAT(const struct in6_addr *);
101−int IN6_IS_ADDR_MC_NODELOCAL(const struct in6_addr *);
102−int IN6_IS_ADDR_MC_LINKLOCAL(const struct in6_addr *);
103−int IN6_IS_ADDR_MC_SITELOCAL(const struct in6_addr *);
104−int IN6_IS_ADDR_MC_ORGLOCAL(const struct in6_addr *);
105−int IN6_IS_ADDR_MC_GLOBAL(const struct in6_addr *);
106−int IN6ADDR_ISANY(const struct sockaddr_in6 *);
107−int IN6ADDR_ISLOOPBACK(const struct sockaddr_in6 *);
108−void IN6_SET_ADDR_UNSPECIFIED(struct in6_addr *);
109−void IN6_SET_ADDR_LOOPBACK(struct in6_addr *);
110−void IN6ADDR_SETANY(struct sockaddr_in6 *);
111−void IN6ADDR_SETLOOPBACK(struct sockaddr_in6 *);
112−
113−#ifndef __CRT__NO_INLINE
114−WS2TCPIP_INLINE int IN6_ADDR_EQUAL(const struct in6_addr *a,const struct in6_addr *b) { return (memcmp(a,b,sizeof(struct in6_addr))==0); }
115−WS2TCPIP_INLINE int IN6_IS_ADDR_UNSPECIFIED(const struct in6_addr *a) { return ((a->s6_words[0]==0) && (a->s6_words[1]==0) && (a->s6_words[2]==0) && (a->s6_words[3]==0) && (a->s6_words[4]==0) && (a->s6_words[5]==0) && (a->s6_words[6]==0) && (a->s6_words[7]==0)); }
116−WS2TCPIP_INLINE int IN6_IS_ADDR_LOOPBACK(const struct in6_addr *a) { return ((a->s6_words[0]==0) && (a->s6_words[1]==0) && (a->s6_words[2]==0) && (a->s6_words[3]==0) && (a->s6_words[4]==0) && (a->s6_words[5]==0) && (a->s6_words[6]==0) && (a->s6_words[7]==0x0100)); }
117−WS2TCPIP_INLINE int IN6_IS_ADDR_MULTICAST(const struct in6_addr *a) { return (a->s6_bytes[0]==0xff); }
118−WS2TCPIP_INLINE int IN6_IS_ADDR_LINKLOCAL(const struct in6_addr *a) { return ((a->s6_bytes[0]==0xfe) && ((a->s6_bytes[1] & 0xc0)==0x80)); }
119−WS2TCPIP_INLINE int IN6_IS_ADDR_SITELOCAL(const struct in6_addr *a) { return ((a->s6_bytes[0]==0xfe) && ((a->s6_bytes[1] & 0xc0)==0xc0)); }
120−WS2TCPIP_INLINE int IN6_IS_ADDR_V4MAPPED(const struct in6_addr *a) { return ((a->s6_words[0]==0) && (a->s6_words[1]==0) && (a->s6_words[2]==0) && (a->s6_words[3]==0) && (a->s6_words[4]==0) && (a->s6_words[5]==0xffff)); }
121−WS2TCPIP_INLINE int IN6_IS_ADDR_V4COMPAT(const struct in6_addr *a) { return ((a->s6_words[0]==0) && (a->s6_words[1]==0) && (a->s6_words[2]==0) && (a->s6_words[3]==0) && (a->s6_words[4]==0) && (a->s6_words[5]==0) && !((a->s6_words[6]==0) && (a->s6_addr[14]==0) && ((a->s6_addr[15]==0) || (a->s6_addr[15]==1)))); }
122−WS2TCPIP_INLINE int IN6_IS_ADDR_MC_NODELOCAL(const struct in6_addr *a) { return IN6_IS_ADDR_MULTICAST(a) && ((a->s6_bytes[1] & 0xf)==1); }
123−WS2TCPIP_INLINE int IN6_IS_ADDR_MC_LINKLOCAL(const struct in6_addr *a) { return IN6_IS_ADDR_MULTICAST(a) && ((a->s6_bytes[1] & 0xf)==2); }
124−WS2TCPIP_INLINE int IN6_IS_ADDR_MC_SITELOCAL(const struct in6_addr *a) { return IN6_IS_ADDR_MULTICAST(a) && ((a->s6_bytes[1] & 0xf)==5); }
125−WS2TCPIP_INLINE int IN6_IS_ADDR_MC_ORGLOCAL(const struct in6_addr *a) { return IN6_IS_ADDR_MULTICAST(a) && ((a->s6_bytes[1] & 0xf)==8); }
126−WS2TCPIP_INLINE int IN6_IS_ADDR_MC_GLOBAL(const struct in6_addr *a) { return IN6_IS_ADDR_MULTICAST(a) && ((a->s6_bytes[1] & 0xf)==0xe); }
127−WS2TCPIP_INLINE int IN6ADDR_ISANY(const struct sockaddr_in6 *a) { return ((a->sin6_family==AF_INET6) && IN6_IS_ADDR_UNSPECIFIED(&a->sin6_addr)); }
128−WS2TCPIP_INLINE int IN6ADDR_ISLOOPBACK(const struct sockaddr_in6 *a) { return ((a->sin6_family==AF_INET6) && IN6_IS_ADDR_LOOPBACK(&a->sin6_addr)); }
129−WS2TCPIP_INLINE void IN6_SET_ADDR_UNSPECIFIED(struct in6_addr *a) { memset(a->s6_bytes,0,sizeof(struct in6_addr)); }
130−WS2TCPIP_INLINE void IN6_SET_ADDR_LOOPBACK(struct in6_addr *a) {
131− memset(a->s6_bytes,0,sizeof(struct in6_addr));
132− a->s6_bytes[15] = 1;
133−}
134−WS2TCPIP_INLINE void IN6ADDR_SETANY(struct sockaddr_in6 *a) {
135− a->sin6_family = AF_INET6;
136− a->sin6_port = 0;
137− a->sin6_flowinfo = 0;
138− IN6_SET_ADDR_UNSPECIFIED(&a->sin6_addr);
139− a->sin6_scope_id = 0;
140−}
141−WS2TCPIP_INLINE void IN6ADDR_SETLOOPBACK(struct sockaddr_in6 *a) {
142− a->sin6_family = AF_INET6;
143− a->sin6_port = 0;
144− a->sin6_flowinfo = 0;
145− IN6_SET_ADDR_LOOPBACK(&a->sin6_addr);
146− a->sin6_scope_id = 0;
147−}
148−#endif /* !__CRT__NO_INLINE */
149−
150−#ifdef __cplusplus
151−}
152−#endif
153−
154−typedef struct _INTERFACE_INFO_EX {
155− u_long iiFlags;
156− SOCKET_ADDRESS iiAddress;
157− SOCKET_ADDRESS iiBroadcastAddress;
158− SOCKET_ADDRESS iiNetmask;
159−} INTERFACE_INFO_EX,*LPINTERFACE_INFO_EX;
160−
161−#define IFF_UP 0x00000001
162−#define IFF_BROADCAST 0x00000002
163−#define IFF_LOOPBACK 0x00000004
164−#define IFF_POINTTOPOINT 0x00000008
165−#define IFF_MULTICAST 0x00000010
166−
167−typedef struct in_pktinfo {
168− IN_ADDR ipi_addr;
169− UINT ipi_ifindex;
170−} IN_PKTINFO;
171−
172−C_ASSERT(sizeof(IN_PKTINFO)==8);
173−
174−typedef struct in6_pktinfo {
175− IN6_ADDR ipi6_addr;
176− UINT ipi6_ifindex;
177−} IN6_PKTINFO;
178−
179−C_ASSERT(sizeof(IN6_PKTINFO)==20);
180−
181−#define EAI_AGAIN WSATRY_AGAIN
182−#define EAI_BADFLAGS WSAEINVAL
183−#define EAI_FAIL WSANO_RECOVERY
184−#define EAI_FAMILY WSAEAFNOSUPPORT
185−#define EAI_MEMORY WSA_NOT_ENOUGH_MEMORY
186−
187−#define EAI_NONAME WSAHOST_NOT_FOUND
188−#define EAI_SERVICE WSATYPE_NOT_FOUND
189−#define EAI_SOCKTYPE WSAESOCKTNOSUPPORT
190−
191−#define EAI_NODATA EAI_NONAME
192−
193−typedef struct addrinfo {
194− int ai_flags;
195− int ai_family;
196− int ai_socktype;
197− int ai_protocol;
198− size_t ai_addrlen;
199− char *ai_canonname;
200− struct sockaddr *ai_addr;
201− struct addrinfo *ai_next;
202−} ADDRINFOA,*PADDRINFOA;
203−
204−typedef struct addrinfoW {
205− int ai_flags;
206− int ai_family;
207− int ai_socktype;
208− int ai_protocol;
209− size_t ai_addrlen;
210− PWSTR ai_canonname;
211− struct sockaddr *ai_addr;
212− struct addrinfoW *ai_next;
213−} ADDRINFOW,*PADDRINFOW;
214−
215−typedef __MINGW_NAME_AW(ADDRINFO) ADDRINFOT,*PADDRINFOT;
216−
217−typedef ADDRINFOA ADDRINFO,*LPADDRINFO;
218−
219−#define AI_PASSIVE 0x1
220−#define AI_CANONNAME 0x2
221−#define AI_NUMERICHOST 0x4
222−#if (_WIN32_WINNT >= 0x0600)
223−#define AI_ADDRCONFIG 0x0400
224−#define AI_NON_AUTHORITATIVE 0x04000
225−#define AI_SECURE 0x08000
226−#define AI_RETURN_PREFERRED_NAMES 0x010000
227−#endif
228−
229−#ifdef __cplusplus
230−extern "C" {
231−#endif
232−
233−#define GetAddrInfo __MINGW_NAME_AW(GetAddrInfo)
234−
235− WINSOCK_API_LINKAGE int WSAAPI getaddrinfo(const char *nodename,const char *servname,const struct addrinfo *hints,struct addrinfo **res);
236− WINSOCK_API_LINKAGE int WSAAPI GetAddrInfoW(PCWSTR pNodeName,PCWSTR pServiceName,const ADDRINFOW *pHints,PADDRINFOW *ppResult);
237−
238−#define GetAddrInfoA getaddrinfo
239−
240−#if INCL_WINSOCK_API_TYPEDEFS
241− typedef int (WSAAPI *LPFN_GETADDRINFO)(const char *nodename,const char *servname,const struct addrinfo *hints,struct addrinfo **res);
242− typedef int (WSAAPI *LPFN_GETADDRINFOW)(PCWSTR pNodeName,PCWSTR pServiceName,const ADDRINFOW *pHints,PADDRINFOW *ppResult);
243−
244−#define LPFN_GETADDRINFOA LPFN_GETADDRINFO
245−
246−#define LPFN_GETADDRINFOT __MINGW_NAME_AW(LPFN_GETADDRINFO)
247−#endif
248−
249−#define FreeAddrInfo __MINGW_NAME_AW(FreeAddrInfo)
250−
251− WINSOCK_API_LINKAGE void WSAAPI freeaddrinfo(LPADDRINFO pAddrInfo);
252− WINSOCK_API_LINKAGE void WSAAPI FreeAddrInfoW(PADDRINFOW pAddrInfo);
253−
254−#define FreeAddrInfoA freeaddrinfo
255−
256−#if INCL_WINSOCK_API_TYPEDEFS
257− typedef void (WSAAPI *LPFN_FREEADDRINFO)(struct addrinfo *ai);
258− typedef void (WSAAPI *LPFN_FREEADDRINFOW)(PADDRINFOW pAddrInfo);
259−
260−#define LPFN_FREEADDRINFOA LPFN_FREEADDRINFO
261−
262−#define LPFN_FREEADDRINFOT __MINGW_NAME_AW(LPFN_FREEADDRINFO)
263−#endif
264−
265− typedef int socklen_t;
266−
267−#define GetNameInfo __MINGW_NAME_AW(GetNameInfo)
268−
269− WINSOCK_API_LINKAGE int WSAAPI getnameinfo(const struct sockaddr *sa,socklen_t salen,char *host,DWORD hostlen,char *serv,DWORD servlen,int flags);
270− WINSOCK_API_LINKAGE INT WSAAPI GetNameInfoW(const SOCKADDR *pSockaddr,socklen_t SockaddrLength,PWCHAR pNodeBuffer,DWORD NodeBufferSize,PWCHAR pServiceBuffer,DWORD ServiceBufferSize,INT Flags);
271−
272−#define GetNameInfoA getnameinfo
273−
274−#if INCL_WINSOCK_API_TYPEDEFS
275− typedef int (WSAAPI *LPFN_GETNAMEINFO)(const struct sockaddr *sa,socklen_t salen,char *host,DWORD hostlen,char *serv,DWORD servlen,int flags);
276− typedef INT (WSAAPI *LPFN_GETNAMEINFOW)(const SOCKADDR *pSockaddr,socklen_t SockaddrLength,PWCHAR pNodeBuffer,DWORD NodeBufferSize,PWCHAR pServiceBuffer,DWORD ServiceBufferSize,INT Flags);
277−
278−#define LPFN_GETNAMEINFOA LPFN_GETNAMEINFO
279−
280−#define LPFN_GETNAMEINFOT __MINGW_NAME_AW(LPFN_GETNAMEINFO)
281−#endif
282−
283−#define gai_strerror __MINGW_NAME_AW(gai_strerror)
284−
285−#define GAI_STRERROR_BUFFER_SIZE 1024
286−
287−char *gai_strerrorA (int);
288−WCHAR *gai_strerrorW(int);
289−
290−#define NI_MAXHOST 1025
291−#define NI_MAXSERV 32
292−
293−#define INET_ADDRSTRLEN 22
294−#define INET6_ADDRSTRLEN 65
295−
296−#define NI_NOFQDN 0x01
297−#define NI_NUMERICHOST 0x02
298−#define NI_NAMEREQD 0x04
299−#define NI_NUMERICSERV 0x08
300−#define NI_DGRAM 0x10
301−
302−#include <mstcpip.h>
303−
304−#if (_WIN32_WINNT >= 0x0600)
305−#define addrinfoEx __MINGW_NAME_AW(addrinfoEx)
306−#define PADDRINFOEX __MINGW_NAME_AW(PADDRINFOEX)
307−#define GetAddrInfoEx __MINGW_NAME_AW(GetAddrInfoEx)
308−#define SetAddrInfoEx __MINGW_NAME_AW(SetAddrInfoEx)
309−#define FreeAddrInfoEx __MINGW_NAME_AW(FreeAddrInfoEx)
310−
311− typedef struct addrinfoExA {
312− int ai_flags;
313− int ai_family;
314− int ai_socktype;
315− int ai_protocol;
316− size_t ai_addrlen;
317− LPCSTR ai_canonname;
318− struct sockaddr *ai_addr;
319− void *ai_blob;
320− size_t ai_bloblen;
321− LPGUID ai_provider;
322− struct addrinfoexA *ai_next;
323− } ADDRINFOEXA, *PADDRINFOEXA;
324−
325− typedef struct addrinfoExW {
326− int ai_flags;
327− int ai_family;
328− int ai_socktype;
329− int ai_protocol;
330− size_t ai_addrlen;
331− LPCWSTR ai_canonname;
332− struct sockaddr *ai_addr;
333− void *ai_blob;
334− size_t ai_bloblen;
335− LPGUID ai_provider;
336− struct addrinfoexW *ai_next;
337− } ADDRINFOEXW, *PADDRINFOEXW;
338−
339−typedef PVOID LPLOOKUPSERVICE_COMPLETION_ROUTINE; /*reserved*/
340−
341−WINSOCK_API_LINKAGE int WSAAPI GetAddrInfoExA(PCSTR pName, PCSTR pServiceName, DWORD dwNameSpace,
342− LPGUID lpNspId,const ADDRINFOEXA *pHints,PADDRINFOEXA *ppResult,
343− struct timeval *timeout,LPOVERLAPPED lpOverlapped,
344− LPLOOKUPSERVICE_COMPLETION_ROUTINE lpCompletionRoutine,
345− LPHANDLE lpNameHandle);
346−WINSOCK_API_LINKAGE int WSAAPI GetAddrInfoExW(PCWSTR pName,PCWSTR pServiceName,DWORD dwNameSpace,
347− LPGUID lpNspId,const ADDRINFOEXW *pHints,PADDRINFOEXW *ppResult,
348− struct timeval *timeout,LPOVERLAPPED lpOverlapped,
349− LPLOOKUPSERVICE_COMPLETION_ROUTINE lpCompletionRoutine,
350− LPHANDLE lpNameHandle);
351−
352−WINSOCK_API_LINKAGE int WSAAPI SetAddrInfoExA(PCSTR pName, PCSTR pServiceName, SOCKET_ADDRESS *pAddresses,
353− DWORD dwAddressCount,LPBLOB lpBlob,DWORD dwFlags,DWORD dwNameSpace,
354− LPGUID lpNspId,struct timeval *timeout,LPOVERLAPPED lpOverlapped,
355− LPLOOKUPSERVICE_COMPLETION_ROUTINE lpCompletionRoutine,
356− LPHANDLE lpNameHandle);
357−WINSOCK_API_LINKAGE int WSAAPI SetAddrInfoExW(PCWSTR pName,PCWSTR pServiceName,SOCKET_ADDRESS *pAddresses,
358− DWORD dwAddressCount,LPBLOB lpBlob,DWORD dwFlags,DWORD dwNameSpace,
359− LPGUID lpNspId,struct timeval *timeout,LPOVERLAPPED lpOverlapped,
360− LPLOOKUPSERVICE_COMPLETION_ROUTINE lpCompletionRoutine,
361− LPHANDLE lpNameHandle);
362−
363−WINSOCK_API_LINKAGE void WSAAPI FreeAddrInfoExA(PADDRINFOEXA pAddrInfo);
364−WINSOCK_API_LINKAGE void WSAAPI FreeAddrInfoExW(PADDRINFOEXW pAddrInfo);
365−
366−#if INCL_WINSOCK_API_TYPEDEFS
367−#define LPFN_GETADDRINFOEX __MINGW_NAME_AW(LPFN_GETADDRINFOEX)
368− typedef int (WSAAPI *LPFN_GETADDRINFOEXA)(PCSTR pName, PCSTR pServiceName, DWORD dwNameSpace,
369− LPGUID lpNspId,const ADDRINFOEXA *pHints,PADDRINFOEXA *ppResult,
370− struct timeval *timeout,LPOVERLAPPED lpOverlapped,
371− LPLOOKUPSERVICE_COMPLETION_ROUTINE lpCompletionRoutine,
372− LPHANDLE lpNameHandle);
373− typedef int (WSAAPI *LPFN_GETADDRINFOEXW)(PCWSTR pName,PCWSTR pServiceName,DWORD dwNameSpace,
374− LPGUID lpNspId,const ADDRINFOEXW *pHints,PADDRINFOEXW *ppResult,
375− struct timeval *timeout,LPOVERLAPPED lpOverlapped,
376− LPLOOKUPSERVICE_COMPLETION_ROUTINE lpCompletionRoutine,
377− LPHANDLE lpNameHandle);
378−
379−#define LPFN_SETADDRINFOEX __MINGW_NAME_AW(LPFN_SETADDRINFOEX)
380− typedef int (WSAAPI *LPFN_SETADDRINFOEXA)(PCSTR pName, PCSTR pServiceName, SOCKET_ADDRESS *pAddresses,
381− DWORD dwAddressCount,LPBLOB lpBlob,DWORD dwFlags,DWORD dwNameSpace,
382− LPGUID lpNspId,struct timeval *timeout,LPOVERLAPPED lpOverlapped,
383− LPLOOKUPSERVICE_COMPLETION_ROUTINE lpCompletionRoutine,
384− LPHANDLE lpNameHandle);
385− typedef int (WSAAPI *LPFN_SETADDRINFOEXW)(PCWSTR pName,PCWSTR pServiceName,SOCKET_ADDRESS *pAddresses,
386− DWORD dwAddressCount,LPBLOB lpBlob,DWORD dwFlags,DWORD dwNameSpace,
387− LPGUID lpNspId,struct timeval *timeout,LPOVERLAPPED lpOverlapped,
388− LPLOOKUPSERVICE_COMPLETION_ROUTINE lpCompletionRoutine,
389− LPHANDLE lpNameHandle);
390−
391−#define LPFN_FREEADDRINFOEX __MINGW_NAME_AW(LPFN_FREEADDRINFOEX)
392− typedef void (WSAAPI *LPFN_FREEADDRINFOEXA)(PADDRINFOEXA pAddrInfo);
393− typedef void (WSAAPI *LPFN_FREEADDRINFOEXW)(PADDRINFOEXW pAddrInfo);
394−#endif /* INCL_WINSOCK_API_TYPEDEFS */
395−
396−
397−WINSOCK_API_LINKAGE int WSAAPI WSAImpersonateSocketPeer(
398− SOCKET Socket,
399− const struct sockaddr *PeerAddress,
400− ULONG peerAddressLen
401−);
402−
403−WINSOCK_API_LINKAGE int WSAAPI WSAQuerySocketSecurity(
404− SOCKET Socket,
405− const SOCKET_SECURITY_QUERY_TEMPLATE *SecurityQueryTemplate,
406− ULONG SecurityQueryTemplateLen,
407− SOCKET_SECURITY_QUERY_INFO *SecurityQueryInfo,
408− ULONG *SecurityQueryInfoLen,
409− LPWSAOVERLAPPED Overlapped,
410− LPWSAOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine
411−);
412−
413−WINSOCK_API_LINKAGE int WSAAPI WSARevertImpersonation(void);
414−
415−WINSOCK_API_LINKAGE int WSAAPI WSASetSocketPeerTargetName(
416− SOCKET Socket,
417− const SOCKET_PEER_TARGET_NAME *PeerTargetName,
418− ULONG PeerTargetNameLen,
419− LPWSAOVERLAPPED Overlapped,
420− LPWSAOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine
421−);
422−
423−WINSOCK_API_LINKAGE int WSAAPI WSASetSocketSecurity(
424− SOCKET Socket,
425− const SOCKET_SECURITY_SETTINGS *SecuritySettings,
426− ULONG SecuritySettingsLen,
427− LPWSAOVERLAPPED Overlapped,
428− LPWSAOVERLAPPED_COMPLETION_ROUTINE CompletionRoutine
429−);
430−
431−#endif /*(_WIN32_WINNT >= 0x0600)*/
432−
433−#ifdef __cplusplus
434−}
435−#endif
436−
437−#endif /* _WS2TCPIP_H_ */
win32/include/winsock2.h+0−1290
@@ -1,1290 +0,0 @@
1−/**
2− * @file winsock2.h
3− * Copyright 2012, 2013 MinGW.org project
4− *
5− * Permission is hereby granted, free of charge, to any person obtaining a
6− * copy of this software and associated documentation files (the "Software"),
7− * to deal in the Software without restriction, including without limitation
8− * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9− * and/or sell copies of the Software, and to permit persons to whom the
10− * Software is furnished to do so, subject to the following conditions:
11− *
12− * The above copyright notice and this permission notice (including the next
13− * paragraph) shall be included in all copies or substantial portions of the
14− * Software.
15− *
16− * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17− * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18− * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19− * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20− * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21− * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22− * DEALINGS IN THE SOFTWARE.
23− */
24−/*
25− * Definitions for winsock 2
26− *
27− * Portions Copyright (c) 1980, 1983, 1988, 1993
28− * The Regents of the University of California. All rights reserved.
29− *
30− * Portions Copyright (c) 1993 by Digital Equipment Corporation.
31− */
32−#if !(defined _WINSOCK2_H || defined _WINSOCK_H)
33−#define _WINSOCK2_H
34−#define _WINSOCK_H /* to prevent later inclusion of winsock.h */
35−#pragma GCC system_header
36−#include <_mingw.h>
37−
38−#define _GNU_H_WINDOWS32_SOCKETS
39−
40−#include <windows.h>
41−
42−#ifndef WINSOCK_API_LINKAGE
43−#ifdef __W32API_USE_DLLIMPORT__
44−#define WINSOCK_API_LINKAGE DECLSPEC_IMPORT
45−#else
46−#define WINSOCK_API_LINKAGE
47−#endif
48−#endif
49−
50−#ifdef __cplusplus
51−extern "C" {
52−#endif
53−
54−/* Names common to Winsock1.1 and Winsock2 */
55−#if !defined ( _BSDTYPES_DEFINED )
56−/* also defined in gmon.h and in cygwin's sys/types */
57−typedef unsigned char u_char;
58−typedef unsigned short u_short;
59−typedef unsigned int u_int;
60−typedef unsigned long u_long;
61−#define _BSDTYPES_DEFINED
62−#endif /* ! def _BSDTYPES_DEFINED */
63−
64−typedef u_int SOCKET;
65−
66−#ifndef FD_SETSIZE
67−#define FD_SETSIZE 64
68−#endif
69−
70−/* shutdown() how types */
71−#define SD_RECEIVE 0x00
72−#define SD_SEND 0x01
73−#define SD_BOTH 0x02
74−
75−#ifndef _SYS_TYPES_FD_SET
76−/* fd_set may be defined by the newlib <sys/types.h>
77− * if __USE_W32_SOCKETS not defined.
78− */
79−
80−#ifdef fd_set
81−#undef fd_set
82−#endif
83−
84−typedef struct fd_set {
85− u_int fd_count;
86− SOCKET fd_array[FD_SETSIZE];
87−} fd_set;
88−int PASCAL __WSAFDIsSet(SOCKET,fd_set*);
89−
90−#ifndef FD_CLR
91−#define FD_CLR(fd,set) do { u_int __i;\
92−for (__i = 0; __i < ((fd_set *)(set))->fd_count ; __i++) {\
93− if (((fd_set *)(set))->fd_array[__i] == (fd)) {\
94− while (__i < ((fd_set *)(set))->fd_count-1) {\
95− ((fd_set*)(set))->fd_array[__i] = ((fd_set*)(set))->fd_array[__i+1];\
96− __i++;\
97− }\
98− ((fd_set*)(set))->fd_count--;\
99− break;\
100− }\
101−}\
102−} while (0)
103−#endif
104−
105−#ifndef FD_SET
106−/* this differs from the define in winsock.h and in cygwin sys/types.h */
107−#define FD_SET(fd, set) do { u_int __i;\
108−for (__i = 0; __i < ((fd_set *)(set))->fd_count ; __i++) {\
109− if (((fd_set *)(set))->fd_array[__i] == (fd)) {\
110− break;\
111− }\
112−}\
113−if (__i == ((fd_set *)(set))->fd_count) {\
114− if (((fd_set *)(set))->fd_count < FD_SETSIZE) {\
115− ((fd_set *)(set))->fd_array[__i] = (fd);\
116− ((fd_set *)(set))->fd_count++;\
117− }\
118−}\
119−} while(0)
120−#endif
121−
122−#ifndef FD_ZERO
123−#define FD_ZERO(set) (((fd_set *)(set))->fd_count=0)
124−#endif
125−
126−#ifndef FD_ISSET
127−#define FD_ISSET(fd, set) __WSAFDIsSet((SOCKET)(fd), (fd_set *)(set))
128−#endif
129−
130−#elif !defined (USE_SYS_TYPES_FD_SET)
131−
132−#warning "fd_set and associated macros have been defined in sys/types. \
133− This may cause runtime problems with W32 sockets"
134−#endif /* ndef _SYS_TYPES_FD_SET */
135−
136−#if !(defined (__INSIDE_CYGWIN__) || (__INSIDE_MSYS__))
137−
138−#ifndef _TIMEVAL_DEFINED /* also in sys/time.h */
139−#define _TIMEVAL_DEFINED
140−struct timeval {
141− long tv_sec;
142− long tv_usec;
143−};
144−#define timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec)
145−#define timercmp(tvp, uvp, cmp) \
146− (((tvp)->tv_sec != (uvp)->tv_sec) ? \
147− ((tvp)->tv_sec cmp (uvp)->tv_sec) : \
148− ((tvp)->tv_usec cmp (uvp)->tv_usec))
149−#define timerclear(tvp) (tvp)->tv_sec = (tvp)->tv_usec = 0
150−#endif /* _TIMEVAL_DEFINED */
151−
152−struct hostent {
153− char *h_name;
154− char **h_aliases;
155− short h_addrtype;
156− short h_length;
157− char **h_addr_list;
158−#define h_addr h_addr_list[0]
159−};
160−struct linger {
161− u_short l_onoff;
162− u_short l_linger;
163−};
164−#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */
165−
166−#define IOCPARM_MASK 0x7f
167−#define IOC_VOID 0x20000000
168−#define IOC_OUT 0x40000000
169−#define IOC_IN 0x80000000
170−#define IOC_INOUT (IOC_IN|IOC_OUT)
171−
172−#if ! (defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))
173−#define _IO(x,y) (IOC_VOID|((x)<<8)|(y))
174−#define _IOR(x,y,t) (IOC_OUT|(((long)sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y))
175−#define _IOW(x,y,t) (IOC_IN|(((long)sizeof(t)&IOCPARM_MASK)<<16)|((x)<<8)|(y))
176−#define FIONBIO _IOW('f', 126, u_long)
177−#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */
178−
179−#define FIONREAD _IOR('f', 127, u_long)
180−#define FIOASYNC _IOW('f', 125, u_long)
181−#define SIOCSHIWAT _IOW('s', 0, u_long)
182−#define SIOCGHIWAT _IOR('s', 1, u_long)
183−#define SIOCSLOWAT _IOW('s', 2, u_long)
184−#define SIOCGLOWAT _IOR('s', 3, u_long)
185−#define SIOCATMARK _IOR('s', 7, u_long)
186−
187−#if ! (defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))
188−struct netent {
189− char * n_name;
190− char **n_aliases;
191− short n_addrtype;
192− u_long n_net;
193−};
194−struct servent {
195− char *s_name;
196− char **s_aliases;
197− short s_port;
198− char *s_proto;
199−};
200−struct protoent {
201− char *p_name;
202− char **p_aliases;
203− short p_proto;
204−};
205−#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */
206−
207−#define IPPROTO_IP 0
208−#define IPPROTO_ICMP 1
209−#define IPPROTO_IGMP 2
210−#define IPPROTO_GGP 3
211−#define IPPROTO_TCP 6
212−#define IPPROTO_PUP 12
213−#define IPPROTO_UDP 17
214−#define IPPROTO_IDP 22
215−#define IPPROTO_ND 77
216−#define IPPROTO_RAW 255
217−#define IPPROTO_MAX 256
218−/* IPv6 options */
219−#define IPPROTO_HOPOPTS 0 /* IPv6 Hop-by-Hop options */
220−#define IPPROTO_IPV6 41 /* IPv6 header */
221−#define IPPROTO_ROUTING 43 /* IPv6 Routing header */
222−#define IPPROTO_FRAGMENT 44 /* IPv6 fragmentation header */
223−#define IPPROTO_ESP 50 /* encapsulating security payload */
224−#define IPPROTO_AH 51 /* authentication header */
225−#define IPPROTO_ICMPV6 58 /* ICMPv6 */
226−#define IPPROTO_NONE 59 /* IPv6 no next header */
227−#define IPPROTO_DSTOPTS 60 /* IPv6 Destination options */
228−#define IPPORT_ECHO 7
229−#define IPPORT_DISCARD 9
230−#define IPPORT_SYSTAT 11
231−#define IPPORT_DAYTIME 13
232−#define IPPORT_NETSTAT 15
233−#define IPPORT_FTP 21
234−#define IPPORT_TELNET 23
235−#define IPPORT_SMTP 25
236−#define IPPORT_TIMESERVER 37
237−#define IPPORT_NAMESERVER 42
238−#define IPPORT_WHOIS 43
239−#define IPPORT_MTP 57
240−#define IPPORT_TFTP 69
241−#define IPPORT_RJE 77
242−#define IPPORT_FINGER 79
243−#define IPPORT_TTYLINK 87
244−#define IPPORT_SUPDUP 95
245−#define IPPORT_EXECSERVER 512
246−#define IPPORT_LOGINSERVER 513
247−#define IPPORT_CMDSERVER 514
248−#define IPPORT_EFSSERVER 520
249−#define IPPORT_BIFFUDP 512
250−#define IPPORT_WHOSERVER 513
251−#define IPPORT_ROUTESERVER 520
252−#define IPPORT_RESERVED 1024
253−#define IMPLINK_IP 155
254−#define IMPLINK_LOWEXPER 156
255−#define IMPLINK_HIGHEXPER 158
256−struct in_addr {
257− union {
258− struct { u_char s_b1,s_b2,s_b3,s_b4; } S_un_b;
259− struct { u_short s_w1,s_w2; } S_un_w;
260− u_long S_addr;
261− } S_un;
262−#define s_addr S_un.S_addr
263−#define s_host S_un.S_un_b.s_b2
264−#define s_net S_un.S_un_b.s_b1
265−#define s_imp S_un.S_un_w.s_w2
266−#define s_impno S_un.S_un_b.s_b4
267−#define s_lh S_un.S_un_b.s_b3
268−};
269−#define IN_CLASSA(i) (((long)(i)&0x80000000) == 0)
270−#define IN_CLASSA_NET 0xff000000
271−#define IN_CLASSA_NSHIFT 24
272−#define IN_CLASSA_HOST 0x00ffffff
273−#define IN_CLASSA_MAX 128
274−#define IN_CLASSB(i) (((long)(i)&0xc0000000)==0x80000000)
275−#define IN_CLASSB_NET 0xffff0000
276−#define IN_CLASSB_NSHIFT 16
277−#define IN_CLASSB_HOST 0x0000ffff
278−#define IN_CLASSB_MAX 65536
279−#define IN_CLASSC(i) (((long)(i)&0xe0000000)==0xc0000000)
280−#define IN_CLASSC_NET 0xffffff00
281−#define IN_CLASSC_NSHIFT 8
282−#define IN_CLASSC_HOST 0xff
283−#define INADDR_ANY (u_long)0
284−#define INADDR_LOOPBACK 0x7f000001
285−#define INADDR_BROADCAST (u_long)0xffffffff
286−#define INADDR_NONE 0xffffffff
287−struct sockaddr_in {
288− short sin_family;
289− u_short sin_port;
290− struct in_addr sin_addr;
291− char sin_zero[8];
292−};
293−#define WSADESCRIPTION_LEN 256
294−#define WSASYS_STATUS_LEN 128
295−typedef struct WSAData {
296− WORD wVersion;
297− WORD wHighVersion;
298− char szDescription[WSADESCRIPTION_LEN+1];
299− char szSystemStatus[WSASYS_STATUS_LEN+1];
300− unsigned short iMaxSockets;
301− unsigned short iMaxUdpDg;
302− char * lpVendorInfo;
303−} WSADATA;
304−typedef WSADATA *LPWSADATA;
305−
306−#if ! (defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))
307−#define IP_OPTIONS 1
308−#define SO_DEBUG 1
309−#define SO_ACCEPTCONN 2
310−#define SO_REUSEADDR 4
311−#define SO_KEEPALIVE 8
312−#define SO_DONTROUTE 16
313−#define SO_BROADCAST 32
314−#define SO_USELOOPBACK 64
315−#define SO_LINGER 128
316−#define SO_OOBINLINE 256
317−#define SO_DONTLINGER (u_int)(~SO_LINGER)
318−#define SO_EXCLUSIVEADDRUSE ((u_int)(~SO_REUSEADDR))
319−#define SO_SNDBUF 0x1001
320−#define SO_RCVBUF 0x1002
321−#define SO_SNDLOWAT 0x1003
322−#define SO_RCVLOWAT 0x1004
323−#define SO_SNDTIMEO 0x1005
324−#define SO_RCVTIMEO 0x1006
325−#define SO_ERROR 0x1007
326−#define SO_TYPE 0x1008
327−#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */
328−
329−#define INVALID_SOCKET (SOCKET)(~0)
330−#define SOCKET_ERROR (-1)
331−#define SOCK_STREAM 1
332−#define SOCK_DGRAM 2
333−#define SOCK_RAW 3
334−#define SOCK_RDM 4
335−#define SOCK_SEQPACKET 5
336−#define TCP_NODELAY 0x0001
337−#define AF_UNSPEC 0
338−#define AF_UNIX 1
339−#define AF_INET 2
340−#define AF_IMPLINK 3
341−#define AF_PUP 4
342−#define AF_CHAOS 5
343−#define AF_IPX 6
344−#define AF_NS 6
345−#define AF_ISO 7
346−#define AF_OSI AF_ISO
347−#define AF_ECMA 8
348−#define AF_DATAKIT 9
349−#define AF_CCITT 10
350−#define AF_SNA 11
351−#define AF_DECnet 12
352−#define AF_DLI 13
353−#define AF_LAT 14
354−#define AF_HYLINK 15
355−#define AF_APPLETALK 16
356−#define AF_NETBIOS 17
357−#define AF_VOICEVIEW 18
358−#define AF_FIREFOX 19
359−#define AF_UNKNOWN1 20
360−#define AF_BAN 21
361−#define AF_ATM 22
362−#define AF_INET6 23
363−#define AF_CLUSTER 24
364−#define AF_12844 25
365−#define AF_IRDA 26
366−#define AF_NETDES 28
367−
368−#ifndef __INSIDE_MSYS__
369−#define AF_MAX 29
370−struct sockaddr {
371− u_short sa_family;
372− char sa_data[14];
373−};
374−
375−/* Portable IPv6/IPv4 version of sockaddr. Based on RFC 2553.
376− Pad to force 8 byte alignment and maximum size of 128 bytes. */
377−
378−/*
379− * Desired design of maximum size and alignment
380− */
381−#define _SS_MAXSIZE 128
382−#define _SS_ALIGNSIZE (sizeof (__int64))
383−/*
384− * Definitions used for sockaddr_storage structure paddings design.
385− */
386−#define _SS_PAD1SIZE (_SS_ALIGNSIZE - sizeof (short))
387−#define _SS_PAD2SIZE (_SS_MAXSIZE - (sizeof (short) \
388− + _SS_PAD1SIZE \
389− + _SS_ALIGNSIZE))
390−struct sockaddr_storage {
391− short ss_family;
392− char __ss_pad1[_SS_PAD1SIZE]; /* pad to 8 */
393− __int64 __ss_align; /* force alignment */
394− char __ss_pad2[_SS_PAD2SIZE]; /* pad to 128 */
395−};
396−#endif /* !__INSIDE_MSYS__ */
397−
398−struct sockproto {
399− u_short sp_family;
400− u_short sp_protocol;
401−};
402−#define PF_UNSPEC AF_UNSPEC
403−#define PF_UNIX AF_UNIX
404−#define PF_INET AF_INET
405−#define PF_IMPLINK AF_IMPLINK
406−#define PF_PUP AF_PUP
407−#define PF_CHAOS AF_CHAOS
408−#define PF_NS AF_NS
409−#define PF_IPX AF_IPX
410−#define PF_ISO AF_ISO
411−#define PF_OSI AF_OSI
412−#define PF_ECMA AF_ECMA
413−#define PF_DATAKIT AF_DATAKIT
414−#define PF_CCITT AF_CCITT
415−#define PF_SNA AF_SNA
416−#define PF_DECnet AF_DECnet
417−#define PF_DLI AF_DLI
418−#define PF_LAT AF_LAT
419−#define PF_HYLINK AF_HYLINK
420−#define PF_APPLETALK AF_APPLETALK
421−#define PF_VOICEVIEW AF_VOICEVIEW
422−#define PF_FIREFOX AF_FIREFOX
423−#define PF_UNKNOWN1 AF_UNKNOWN1
424−#define PF_BAN AF_BAN
425−#define PF_ATM AF_ATM
426−#define PF_INET6 AF_INET6
427−#define PF_MAX AF_MAX
428−#define SOL_SOCKET 0xffff
429−
430−#if ! (defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))
431−#define SOMAXCONN 0x7fffffff /* (5) in WinSock1.1 */
432−#define MSG_OOB 1
433−#define MSG_PEEK 2
434−#define MSG_DONTROUTE 4
435−#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */
436−
437−#define MSG_MAXIOVLEN 16
438−#define MSG_PARTIAL 0x8000
439−#define MAXGETHOSTSTRUCT 1024
440−
441−#define FD_READ_BIT 0
442−#define FD_READ (1 << FD_READ_BIT)
443−#define FD_WRITE_BIT 1
444−#define FD_WRITE (1 << FD_WRITE_BIT)
445−#define FD_OOB_BIT 2
446−#define FD_OOB (1 << FD_OOB_BIT)
447−#define FD_ACCEPT_BIT 3
448−#define FD_ACCEPT (1 << FD_ACCEPT_BIT)
449−#define FD_CONNECT_BIT 4
450−#define FD_CONNECT (1 << FD_CONNECT_BIT)
451−#define FD_CLOSE_BIT 5
452−#define FD_CLOSE (1 << FD_CLOSE_BIT)
453−/* winsock1.1 defines stop at FD_CLOSE (32) */
454−#define FD_QOS_BIT 6
455−#define FD_QOS (1 << FD_QOS_BIT)
456−#define FD_GROUP_QOS_BIT 7
457−#define FD_GROUP_QOS (1 << FD_GROUP_QOS_BIT)
458−#define FD_ROUTING_INTERFACE_CHANGE_BIT 8
459−#define FD_ROUTING_INTERFACE_CHANGE (1 << FD_ROUTING_INTERFACE_CHANGE_BIT)
460−#define FD_ADDRESS_LIST_CHANGE_BIT 9
461−#define FD_ADDRESS_LIST_CHANGE (1 << FD_ADDRESS_LIST_CHANGE_BIT)
462−#define FD_MAX_EVENTS 10
463−#define FD_ALL_EVENTS ((1 << FD_MAX_EVENTS) - 1)
464−
465−#ifndef WSABASEERR
466−#define WSABASEERR 10000
467−#define WSAEINTR (WSABASEERR+4)
468−#define WSAEBADF (WSABASEERR+9)
469−#define WSAEACCES (WSABASEERR+13)
470−#define WSAEFAULT (WSABASEERR+14)
471−#define WSAEINVAL (WSABASEERR+22)
472−#define WSAEMFILE (WSABASEERR+24)
473−#define WSAEWOULDBLOCK (WSABASEERR+35)
474−#define WSAEINPROGRESS (WSABASEERR+36) /* deprecated on WinSock2 */
475−#define WSAEALREADY (WSABASEERR+37)
476−#define WSAENOTSOCK (WSABASEERR+38)
477−#define WSAEDESTADDRREQ (WSABASEERR+39)
478−#define WSAEMSGSIZE (WSABASEERR+40)
479−#define WSAEPROTOTYPE (WSABASEERR+41)
480−#define WSAENOPROTOOPT (WSABASEERR+42)
481−#define WSAEPROTONOSUPPORT (WSABASEERR+43)
482−#define WSAESOCKTNOSUPPORT (WSABASEERR+44)
483−#define WSAEOPNOTSUPP (WSABASEERR+45)
484−#define WSAEPFNOSUPPORT (WSABASEERR+46)
485−#define WSAEAFNOSUPPORT (WSABASEERR+47)
486−#define WSAEADDRINUSE (WSABASEERR+48)
487−#define WSAEADDRNOTAVAIL (WSABASEERR+49)
488−#define WSAENETDOWN (WSABASEERR+50)
489−#define WSAENETUNREACH (WSABASEERR+51)
490−#define WSAENETRESET (WSABASEERR+52)
491−#define WSAECONNABORTED (WSABASEERR+53)
492−#define WSAECONNRESET (WSABASEERR+54)
493−#define WSAENOBUFS (WSABASEERR+55)
494−#define WSAEISCONN (WSABASEERR+56)
495−#define WSAENOTCONN (WSABASEERR+57)
496−#define WSAESHUTDOWN (WSABASEERR+58)
497−#define WSAETOOMANYREFS (WSABASEERR+59)
498−#define WSAETIMEDOUT (WSABASEERR+60)
499−#define WSAECONNREFUSED (WSABASEERR+61)
500−#define WSAELOOP (WSABASEERR+62)
501−#define WSAENAMETOOLONG (WSABASEERR+63)
502−#define WSAEHOSTDOWN (WSABASEERR+64)
503−#define WSAEHOSTUNREACH (WSABASEERR+65)
504−#define WSAENOTEMPTY (WSABASEERR+66)
505−#define WSAEPROCLIM (WSABASEERR+67)
506−#define WSAEUSERS (WSABASEERR+68)
507−#define WSAEDQUOT (WSABASEERR+69)
508−#define WSAESTALE (WSABASEERR+70)
509−#define WSAEREMOTE (WSABASEERR+71)
510−#define WSAEDISCON (WSABASEERR+101)
511−#define WSASYSNOTREADY (WSABASEERR+91)
512−#define WSAVERNOTSUPPORTED (WSABASEERR+92)
513−#define WSANOTINITIALISED (WSABASEERR+93)
514−#define WSAHOST_NOT_FOUND (WSABASEERR+1001)
515−#define WSATRY_AGAIN (WSABASEERR+1002)
516−#define WSANO_RECOVERY (WSABASEERR+1003)
517−#define WSANO_DATA (WSABASEERR+1004)
518−
519−/* WinSock2 specific error codes */
520−#define WSAENOMORE (WSABASEERR+102)
521−#define WSAECANCELLED (WSABASEERR+103)
522−#define WSAEINVALIDPROCTABLE (WSABASEERR+104)
523−#define WSAEINVALIDPROVIDER (WSABASEERR+105)
524−#define WSAEPROVIDERFAILEDINIT (WSABASEERR+106)
525−#define WSASYSCALLFAILURE (WSABASEERR+107)
526−#define WSASERVICE_NOT_FOUND (WSABASEERR+108)
527−#define WSATYPE_NOT_FOUND (WSABASEERR+109)
528−#define WSA_E_NO_MORE (WSABASEERR+110)
529−#define WSA_E_CANCELLED (WSABASEERR+111)
530−#define WSAEREFUSED (WSABASEERR+112)
531−
532−/* WS QualityofService errors */
533−#define WSA_QOS_RECEIVERS (WSABASEERR + 1005)
534−#define WSA_QOS_SENDERS (WSABASEERR + 1006)
535−#define WSA_QOS_NO_SENDERS (WSABASEERR + 1007)
536−#define WSA_QOS_NO_RECEIVERS (WSABASEERR + 1008)
537−#define WSA_QOS_REQUEST_CONFIRMED (WSABASEERR + 1009)
538−#define WSA_QOS_ADMISSION_FAILURE (WSABASEERR + 1010)
539−#define WSA_QOS_POLICY_FAILURE (WSABASEERR + 1011)
540−#define WSA_QOS_BAD_STYLE (WSABASEERR + 1012)
541−#define WSA_QOS_BAD_OBJECT (WSABASEERR + 1013)
542−#define WSA_QOS_TRAFFIC_CTRL_ERROR (WSABASEERR + 1014)
543−#define WSA_QOS_GENERIC_ERROR (WSABASEERR + 1015)
544−#define WSA_QOS_ESERVICETYPE (WSABASEERR + 1016)
545−#define WSA_QOS_EFLOWSPEC (WSABASEERR + 1017)
546−#define WSA_QOS_EPROVSPECBUF (WSABASEERR + 1018)
547−#define WSA_QOS_EFILTERSTYLE (WSABASEERR + 1019)
548−#define WSA_QOS_EFILTERTYPE (WSABASEERR + 1020)
549−#define WSA_QOS_EFILTERCOUNT (WSABASEERR + 1021)
550−#define WSA_QOS_EOBJLENGTH (WSABASEERR + 1022)
551−#define WSA_QOS_EFLOWCOUNT (WSABASEERR + 1023)
552−#define WSA_QOS_EUNKOWNPSOBJ (WSABASEERR + 1024)
553−#define WSA_QOS_EPOLICYOBJ (WSABASEERR + 1025)
554−#define WSA_QOS_EFLOWDESC (WSABASEERR + 1026)
555−#define WSA_QOS_EPSFLOWSPEC (WSABASEERR + 1027)
556−#define WSA_QOS_EPSFILTERSPEC (WSABASEERR + 1028)
557−#define WSA_QOS_ESDMODEOBJ (WSABASEERR + 1029)
558−#define WSA_QOS_ESHAPERATEOBJ (WSABASEERR + 1030)
559−#define WSA_QOS_RESERVED_PETYPE (WSABASEERR + 1031)
560−
561−#endif /* !WSABASEERR */
562−
563−#define WSANO_ADDRESS WSANO_DATA
564−
565−#if !(defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))
566−#define h_errno WSAGetLastError()
567−#define HOST_NOT_FOUND WSAHOST_NOT_FOUND
568−#define TRY_AGAIN WSATRY_AGAIN
569−#define NO_RECOVERY WSANO_RECOVERY
570−#define NO_DATA WSANO_DATA
571−#define NO_ADDRESS WSANO_ADDRESS
572−#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */
573−
574−WINSOCK_API_LINKAGE SOCKET PASCAL accept(SOCKET,struct sockaddr*,int*);
575−WINSOCK_API_LINKAGE int PASCAL bind(SOCKET,const struct sockaddr*,int);
576−WINSOCK_API_LINKAGE int PASCAL closesocket(SOCKET);
577−WINSOCK_API_LINKAGE int PASCAL connect(SOCKET,const struct sockaddr*,int);
578−WINSOCK_API_LINKAGE int PASCAL ioctlsocket(SOCKET,long,u_long *);
579−WINSOCK_API_LINKAGE int PASCAL getpeername(SOCKET,struct sockaddr*,int*);
580−WINSOCK_API_LINKAGE int PASCAL getsockname(SOCKET,struct sockaddr*,int*);
581−WINSOCK_API_LINKAGE int PASCAL getsockopt(SOCKET,int,int,char*,int*);
582−WINSOCK_API_LINKAGE unsigned long PASCAL inet_addr(const char*);
583−WINSOCK_API_LINKAGE DECLARE_STDCALL_P(char *) inet_ntoa(struct in_addr);
584−WINSOCK_API_LINKAGE int PASCAL listen(SOCKET,int);
585−WINSOCK_API_LINKAGE int PASCAL recv(SOCKET,char*,int,int);
586−WINSOCK_API_LINKAGE int PASCAL recvfrom(SOCKET,char*,int,int,struct sockaddr*,int*);
587−WINSOCK_API_LINKAGE int PASCAL send(SOCKET,const char*,int,int);
588−WINSOCK_API_LINKAGE int PASCAL sendto(SOCKET,const char*,int,int,const struct sockaddr*,int);
589−WINSOCK_API_LINKAGE int PASCAL setsockopt(SOCKET,int,int,const char*,int);
590−WINSOCK_API_LINKAGE int PASCAL shutdown(SOCKET,int);
591−WINSOCK_API_LINKAGE SOCKET PASCAL socket(int,int,int);
592−WINSOCK_API_LINKAGE DECLARE_STDCALL_P(struct hostent *) gethostbyaddr(const char*,int,int);
593−WINSOCK_API_LINKAGE DECLARE_STDCALL_P(struct hostent *) gethostbyname(const char*);
594−WINSOCK_API_LINKAGE DECLARE_STDCALL_P(struct servent *) getservbyport(int,const char*);
595−WINSOCK_API_LINKAGE DECLARE_STDCALL_P(struct servent *) getservbyname(const char*,const char*);
596−WINSOCK_API_LINKAGE DECLARE_STDCALL_P(struct protoent *) getprotobynumber(int);
597−WINSOCK_API_LINKAGE DECLARE_STDCALL_P(struct protoent *) getprotobyname(const char*);
598−typedef SOCKET (PASCAL * LPFN_ACCEPT)(SOCKET, struct sockaddr*,int *);
599−typedef int (PASCAL * LPFN_BIND)(SOCKET, const struct sockaddr*,int);
600−typedef int (PASCAL * LPFN_CLOSESOCKET)(SOCKET);
601−typedef int (PASCAL * LPFN_CONNECT)(SOCKET, const struct sockaddr*,int);
602−typedef int (PASCAL * LPFN_IOCTLSOCKET)(SOCKET, long, u_long*);
603−typedef int (PASCAL * LPFN_GETPEERNAME)(SOCKET, struct sockaddr*, int*);
604−typedef int(PASCAL * LPFN_GETSOCKNAME)(SOCKET, struct sockaddr*, int*);
605−typedef int(PASCAL * LPFN_GETSOCKOPT)(SOCKET, int, int, char*, int*);
606−typedef u_long(PASCAL * LPFN_HTONL)(u_long);
607−typedef u_short(PASCAL * LPFN_HTONS)(u_short);
608−typedef unsigned long(PASCAL * LPFN_INET_ADDR)(const char*);
609−typedef char*(PASCAL * LPFN_INET_NTOA)(struct in_addr);
610−typedef int(PASCAL * LPFN_LISTEN)(SOCKET, int);
611−typedef u_long(PASCAL * LPFN_NTOHL)(u_long);
612−typedef u_short(PASCAL * LPFN_NTOHS)(u_short);
613−typedef int(PASCAL * LPFN_RECV)(SOCKET, char*, int, int);
614−typedef int(PASCAL * LPFN_RECVFROM)(SOCKET, char*, int, int, struct sockaddr*, int*);
615−typedef int(PASCAL * LPFN_SELECT)(int, fd_set*, fd_set*, fd_set*, const struct timeval*);
616−typedef int(PASCAL * LPFN_SEND)(SOCKET, const char*, int, int);
617−typedef int(PASCAL * LPFN_SENDTO)(SOCKET, const char*, int, int, const struct sockaddr*, int);
618−typedef int(PASCAL * LPFN_SETSOCKOPT)(SOCKET, int, int, const char*, int);
619−typedef int(PASCAL * LPFN_SHUTDOWN)(SOCKET, int);
620−typedef SOCKET(PASCAL * LPFN_SOCKET)(int, int, int);
621−typedef struct hostent*(PASCAL * LPFN_GETHOSTBYADDR)( const char*, int, int);
622−typedef struct hostent*(PASCAL * LPFN_GETHOSTBYNAME)( const char*);
623−typedef int(PASCAL * LPFN_GETHOSTNAME)(char*, int);
624−typedef struct servent*(PASCAL * LPFN_GETSERVBYPORT)(int, const char*);
625−typedef struct servent*(PASCAL * LPFN_GETSERVBYNAME)(const char*, const char*);
626−typedef struct protoent*(PASCAL * LPFN_GETPROTOBYNUMBER)(int);
627−typedef struct protoent*(PASCAL * LPFN_GETPROTOBYNAME)(const char*);
628−
629−WINSOCK_API_LINKAGE int PASCAL WSAStartup(WORD,LPWSADATA);
630−WINSOCK_API_LINKAGE int PASCAL WSACleanup(void);
631−WINSOCK_API_LINKAGE void PASCAL WSASetLastError(int);
632−WINSOCK_API_LINKAGE int PASCAL WSAGetLastError(void);
633−WINSOCK_API_LINKAGE typedef int(PASCAL * LPFN_WSASTARTUP)(WORD, LPWSADATA);
634−typedef int(PASCAL * LPFN_WSACLEANUP)(void);
635−typedef void(PASCAL * LPFN_WSASETLASTERROR)(int);
636−typedef int(PASCAL * LPFN_WSAGETLASTERROR)(void);
637−/*
638− * Pseudo-blocking functions are deprecated in WinSock2
639− * spec. Use threads instead.
640− */
641−WINSOCK_API_LINKAGE BOOL PASCAL WSAIsBlocking(void);
642−WINSOCK_API_LINKAGE int PASCAL WSAUnhookBlockingHook(void);
643−WINSOCK_API_LINKAGE FARPROC PASCAL WSASetBlockingHook(FARPROC);
644−WINSOCK_API_LINKAGE int PASCAL WSACancelBlockingCall(void);
645−typedef BOOL(PASCAL * LPFN_WSAISBLOCKING)(void);
646−typedef int(PASCAL * LPFN_WSAUNHOOKBLOCKINGHOOK)(void);
647−typedef FARPROC (PASCAL * LPFN_WSASETBLOCKINGHOOK)(FARPROC);
648−typedef int(PASCAL * LPFN_WSACANCELBLOCKINGCALL)(void);
649−
650−WINSOCK_API_LINKAGE HANDLE PASCAL WSAAsyncGetServByName(HWND,u_int,const char*,const char*,char*,int);
651−WINSOCK_API_LINKAGE HANDLE PASCAL WSAAsyncGetServByPort(HWND,u_int,int,const char*,char*,int);
652−WINSOCK_API_LINKAGE HANDLE PASCAL WSAAsyncGetProtoByName(HWND,u_int,const char*,char*,int);
653−WINSOCK_API_LINKAGE HANDLE PASCAL WSAAsyncGetProtoByNumber(HWND,u_int,int,char*,int);
654−WINSOCK_API_LINKAGE HANDLE PASCAL WSAAsyncGetHostByName(HWND,u_int,const char*,char*,int);
655−WINSOCK_API_LINKAGE HANDLE PASCAL WSAAsyncGetHostByAddr(HWND,u_int,const char*,int,int,char*,int);
656−WINSOCK_API_LINKAGE int PASCAL WSACancelAsyncRequest(HANDLE);
657−WINSOCK_API_LINKAGE int PASCAL WSAAsyncSelect(SOCKET,HWND,u_int,long);
658−typedef HANDLE(PASCAL * LPFN_WSAASYNCGETSERVBYNAME)(HWND, u_int, const char *, const char *, char *, int);
659−typedef HANDLE(PASCAL * LPFN_WSAASYNCGETSERVBYPORT)(HWND, u_int, int, const char *, char *, int);
660−typedef HANDLE(PASCAL * LPFN_WSAASYNCGETPROTOBYNAME)(HWND, u_int, const char*, char*, int);
661−typedef HANDLE(PASCAL * LPFN_WSAASYNCGETPROTOBYNUMBER)(HWND, u_int, int, char*, int);
662−typedef HANDLE(PASCAL * LPFN_WSAASYNCGETHOSTBYADDR)(HWND, u_int, const char*, int, int, char*, int);
663−typedef int(PASCAL * LPFN_WSACANCELASYNCREQUEST)(HANDLE);
664−typedef int(PASCAL * LPFN_WSAASYNCSELECT)(SOCKET, HWND, u_int, long);
665−
666−#if ! (defined (__INSIDE_CYGWIN__) || defined (__INSIDE_MSYS__))
667−WINSOCK_API_LINKAGE u_long PASCAL htonl(u_long);
668−WINSOCK_API_LINKAGE u_long PASCAL ntohl(u_long);
669−WINSOCK_API_LINKAGE u_short PASCAL htons(u_short);
670−WINSOCK_API_LINKAGE u_short PASCAL ntohs(u_short);
671−WINSOCK_API_LINKAGE int PASCAL select(int nfds,fd_set*,fd_set*,fd_set*,const struct timeval*);
672−#endif /* ! (__INSIDE_CYGWIN__ || __INSIDE_MSYS__) */
673−
674−int PASCAL gethostname(char*,int);
675−
676−#define WSAMAKEASYNCREPLY(b,e) MAKELONG(b,e)
677−#define WSAMAKESELECTREPLY(e,error) MAKELONG(e,error)
678−#define WSAGETASYNCBUFLEN(l) LOWORD(l)
679−#define WSAGETASYNCERROR(l) HIWORD(l)
680−#define WSAGETSELECTEVENT(l) LOWORD(l)
681−#define WSAGETSELECTERROR(l) HIWORD(l)
682−
683−typedef struct sockaddr SOCKADDR;
684−typedef struct sockaddr *PSOCKADDR;
685−typedef struct sockaddr *LPSOCKADDR;
686−typedef struct sockaddr_storage SOCKADDR_STORAGE, *PSOCKADDR_STORAGE;
687−typedef struct sockaddr_in SOCKADDR_IN;
688−typedef struct sockaddr_in *PSOCKADDR_IN;
689−typedef struct sockaddr_in *LPSOCKADDR_IN;
690−typedef struct linger LINGER;
691−typedef struct linger *PLINGER;
692−typedef struct linger *LPLINGER;
693−typedef struct in_addr IN_ADDR;
694−typedef struct in_addr *PIN_ADDR;
695−typedef struct in_addr *LPIN_ADDR;
696−typedef struct fd_set FD_SET;
697−typedef struct fd_set *PFD_SET;
698−typedef struct fd_set *LPFD_SET;
699−typedef struct hostent HOSTENT;
700−typedef struct hostent *PHOSTENT;
701−typedef struct hostent *LPHOSTENT;
702−typedef struct servent SERVENT;
703−typedef struct servent *PSERVENT;
704−typedef struct servent *LPSERVENT;
705−typedef struct protoent PROTOENT;
706−typedef struct protoent *PPROTOENT;
707−typedef struct protoent *LPPROTOENT;
708−typedef struct timeval TIMEVAL;
709−typedef struct timeval *PTIMEVAL;
710−typedef struct timeval *LPTIMEVAL;
711−
712−/* winsock2 additions */
713−#define ADDR_ANY INADDR_ANY
714−
715−#define IN_CLASSD(i) (((long)(i) & 0xf0000000) == 0xe0000000)
716−#define IN_CLASSD_NET 0xf0000000
717−#define IN_CLASSD_NSHIFT 28
718−#define IN_CLASSD_HOST 0x0fffffff
719−#define IN_MULTICAST(i) IN_CLASSD(i)
720−
721−#define FROM_PROTOCOL_INFO (-1)
722−
723−#define SO_DONTLINGER (u_int)(~SO_LINGER)
724−#define SO_GROUP_ID 0x2001
725−#define SO_GROUP_PRIORITY 0x2002
726−#define SO_MAX_MSG_SIZE 0x2003
727−#define SO_PROTOCOL_INFOA 0x2004
728−#define SO_PROTOCOL_INFOW 0x2005
729−
730−#define SO_PROTOCOL_INFO __AW(SO_PROTOCOL_INFO)
731−
732−#define PVD_CONFIG 0x3001
733−
734−#define MSG_INTERRUPT 0x10
735−#define MSG_MAXIOVLEN 16
736−
737−#define WSAAPI WINAPI
738−#define WSAEVENT HANDLE
739−#define LPWSAEVENT LPHANDLE
740−#define WSAOVERLAPPED OVERLAPPED
741−typedef struct _OVERLAPPED *LPWSAOVERLAPPED;
742−
743−#define WSA_IO_PENDING (ERROR_IO_PENDING)
744−#define WSA_IO_INCOMPLETE (ERROR_IO_INCOMPLETE)
745−#define WSA_INVALID_HANDLE (ERROR_INVALID_HANDLE)
746−#define WSA_INVALID_PARAMETER (ERROR_INVALID_PARAMETER)
747−#define WSA_NOT_ENOUGH_MEMORY (ERROR_NOT_ENOUGH_MEMORY)
748−#define WSA_OPERATION_ABORTED (ERROR_OPERATION_ABORTED)
749−
750−#define WSA_INVALID_EVENT ((WSAEVENT)NULL)
751−#define WSA_MAXIMUM_WAIT_EVENTS (MAXIMUM_WAIT_OBJECTS)
752−#define WSA_WAIT_FAILED ((DWORD)-1L)
753−#define WSA_WAIT_EVENT_0 (WAIT_OBJECT_0)
754−#define WSA_WAIT_IO_COMPLETION (WAIT_IO_COMPLETION)
755−#define WSA_WAIT_TIMEOUT (WAIT_TIMEOUT)
756−#define WSA_INFINITE (INFINITE)
757−
758−typedef struct _WSABUF {
759− unsigned long len;
760− char *buf;
761−} WSABUF, *LPWSABUF;
762−
763−typedef enum
764−{
765− BestEffortService,
766− ControlledLoadService,
767− PredictiveService,
768− GuaranteedDelayService,
769− GuaranteedService
770−} GUARANTEE;
771−
772−/* TODO: FLOWSPEC and related definitions belong in qos.h */
773−
774−/*
775− Windows Sockets 2 Application Programming Interface,
776− revision 2.2.2 (1997) uses the type uint32 for SERVICETYPE
777− and the elements of _flowspec, but the type uint32 is not defined
778− or used anywhere else in the w32api. For now, just use
779− unsigned int, which is 32 bits on _WIN32 and _WIN64.
780−*/
781−
782−typedef unsigned int SERVICETYPE;
783−typedef struct _flowspec
784−{
785− unsigned int TokenRate;
786− unsigned int TokenBucketSize;
787− unsigned int PeakBandwidth;
788− unsigned int Latency;
789− unsigned int DelayVariation;
790− SERVICETYPE ServiceType;
791− unsigned int MaxSduSize;
792− unsigned int MinimumPolicedSize;
793− } FLOWSPEC, *PFLOWSPEC, *LPFLOWSPEC;
794−
795−typedef struct _QualityOfService
796−{
797− FLOWSPEC SendingFlowspec;
798− FLOWSPEC ReceivingFlowspec;
799− WSABUF ProviderSpecific;
800−} QOS, *LPQOS;
801−
802−#define CF_ACCEPT 0x0000
803−#define CF_REJECT 0x0001
804−#define CF_DEFER 0x0002
805−#define SD_RECEIVE 0x00
806−#define SD_SEND 0x01
807−#define SD_BOTH 0x02
808−typedef unsigned int GROUP;
809−
810−#define SG_UNCONSTRAINED_GROUP 0x01
811−#define SG_CONSTRAINED_GROUP 0x02
812−typedef struct _WSANETWORKEVENTS {
813− long lNetworkEvents;
814− int iErrorCode[FD_MAX_EVENTS];
815−} WSANETWORKEVENTS, *LPWSANETWORKEVENTS;
816−
817−#define MAX_PROTOCOL_CHAIN 7
818−
819−#define BASE_PROTOCOL 1
820−#define LAYERED_PROTOCOL 0
821−
822−typedef enum _WSAESETSERVICEOP
823−{
824− RNRSERVICE_REGISTER=0,
825− RNRSERVICE_DEREGISTER,
826− RNRSERVICE_DELETE
827−} WSAESETSERVICEOP, *PWSAESETSERVICEOP, *LPWSAESETSERVICEOP;
828−
829−typedef struct _AFPROTOCOLS {
830− INT iAddressFamily;
831− INT iProtocol;
832−} AFPROTOCOLS, *PAFPROTOCOLS, *LPAFPROTOCOLS;
833−
834−typedef enum _WSAEcomparator
835−{
836− COMP_EQUAL = 0,
837− COMP_NOTLESS
838−} WSAECOMPARATOR, *PWSAECOMPARATOR, *LPWSAECOMPARATOR;
839−
840−typedef struct _WSAVersion
841−{
842− DWORD dwVersion;
843− WSAECOMPARATOR ecHow;
844−} WSAVERSION, *PWSAVERSION, *LPWSAVERSION;
845−
846−#ifndef __CSADDR_T_DEFINED /* also in nspapi.h */
847−#define __CSADDR_T_DEFINED
848−typedef struct _SOCKET_ADDRESS {
849− LPSOCKADDR lpSockaddr;
850− INT iSockaddrLength;
851−} SOCKET_ADDRESS,*PSOCKET_ADDRESS,*LPSOCKET_ADDRESS;
852−typedef struct _CSADDR_INFO {
853− SOCKET_ADDRESS LocalAddr;
854− SOCKET_ADDRESS RemoteAddr;
855− INT iSocketType;
856− INT iProtocol;
857−} CSADDR_INFO,*PCSADDR_INFO,*LPCSADDR_INFO;
858−#endif
859−
860−typedef struct _SOCKET_ADDRESS_LIST {
861− INT iAddressCount;
862− SOCKET_ADDRESS Address[1];
863−} SOCKET_ADDRESS_LIST, * LPSOCKET_ADDRESS_LIST;
864−
865−#ifndef __BLOB_T_DEFINED /* also in wtypes.h and nspapi.h */
866−#define __BLOB_T_DEFINED
867−typedef struct _BLOB {
868− ULONG cbSize;
869− BYTE *pBlobData;
870−} BLOB,*PBLOB,*LPBLOB;
871−#endif
872−
873−typedef struct _WSAQuerySetA
874−{
875− DWORD dwSize;
876− LPSTR lpszServiceInstanceName;
877− LPGUID lpServiceClassId;
878− LPWSAVERSION lpVersion;
879− LPSTR lpszComment;
880− DWORD dwNameSpace;
881− LPGUID lpNSProviderId;
882− LPSTR lpszContext;
883− DWORD dwNumberOfProtocols;
884− LPAFPROTOCOLS lpafpProtocols;
885− LPSTR lpszQueryString;
886− DWORD dwNumberOfCsAddrs;
887− LPCSADDR_INFO lpcsaBuffer;
888− DWORD dwOutputFlags;
889− LPBLOB lpBlob;
890−} WSAQUERYSETA, *PWSAQUERYSETA, *LPWSAQUERYSETA;
891−
892−typedef struct _WSAQuerySetW
893−{
894− DWORD dwSize;
895− LPWSTR lpszServiceInstanceName;
896− LPGUID lpServiceClassId;
897− LPWSAVERSION lpVersion;
898− LPWSTR lpszComment;
899− DWORD dwNameSpace;
900− LPGUID lpNSProviderId;
901− LPWSTR lpszContext;
902− DWORD dwNumberOfProtocols;
903− LPAFPROTOCOLS lpafpProtocols;
904− LPWSTR lpszQueryString;
905− DWORD dwNumberOfCsAddrs;
906− LPCSADDR_INFO lpcsaBuffer;
907− DWORD dwOutputFlags;
908− LPBLOB lpBlob;
909−} WSAQUERYSETW, *PWSAQUERYSETW, *LPWSAQUERYSETW;
910−
911−//!!
912−#define __AW__(AW, AW_) AW ## AW_
913−#define __AW(AW) __AW__(AW, W)
914−#define __STR(AW) __AW__(L, AW)
915−
916−typedef __AW(WSAQUERYSET) WSAQUERYSET;
917−typedef __AW(PWSAQUERYSET) PWSAQUERYSET;
918−typedef __AW(LPWSAQUERYSET) LPWSAQUERYSET;
919−
920−#define LUP_DEEP 0x0001
921−#define LUP_CONTAINERS 0x0002
922−#define LUP_NOCONTAINERS 0x0004
923−#define LUP_NEAREST 0x0008
924−#define LUP_RETURN_NAME 0x0010
925−#define LUP_RETURN_TYPE 0x0020
926−#define LUP_RETURN_VERSION 0x0040
927−#define LUP_RETURN_COMMENT 0x0080
928−#define LUP_RETURN_ADDR 0x0100
929−#define LUP_RETURN_BLOB 0x0200
930−#define LUP_RETURN_ALIASES 0x0400
931−#define LUP_RETURN_QUERY_STRING 0x0800
932−#define LUP_RETURN_ALL 0x0FF0
933−#define LUP_RES_SERVICE 0x8000
934−#define LUP_FLUSHCACHE 0x1000
935−#define LUP_FLUSHPREVIOUS 0x2000
936−
937−typedef struct _WSANSClassInfoA
938−{
939− LPSTR lpszName;
940− DWORD dwNameSpace;
941− DWORD dwValueType;
942− DWORD dwValueSize;
943− LPVOID lpValue;
944−} WSANSCLASSINFOA, *PWSANSCLASSINFOA, *LPWSANSCLASSINFOA;
945−
946−typedef struct _WSANSClassInfoW
947−{
948− LPWSTR lpszName;
949− DWORD dwNameSpace;
950− DWORD dwValueType;
951− DWORD dwValueSize;
952− LPVOID lpValue;
953−} WSANSCLASSINFOW, *PWSANSCLASSINFOW, *LPWSANSCLASSINFOW;
954−
955−typedef __AW(WSANSCLASSINFO) WSANSCLASSINFO;
956−typedef __AW(PWSANSCLASSINFO) PWSANSCLASSINFO;
957−typedef __AW(LPWSANSCLASSINFO) LPWSANSCLASSINFO;
958−
959−typedef struct _WSAServiceClassInfoA
960−{
961− LPGUID lpServiceClassId;
962− LPSTR lpszServiceClassName;
963− DWORD dwCount;
964− LPWSANSCLASSINFOA lpClassInfos;
965−} WSASERVICECLASSINFOA, *PWSASERVICECLASSINFOA, *LPWSASERVICECLASSINFOA;
966−
967−typedef struct _WSAServiceClassInfoW
968−{
969− LPGUID lpServiceClassId;
970− LPWSTR lpszServiceClassName;
971− DWORD dwCount;
972− LPWSANSCLASSINFOW lpClassInfos;
973−} WSASERVICECLASSINFOW, *PWSASERVICECLASSINFOW, *LPWSASERVICECLASSINFOW;
974−
975−typedef __AW(WSASERVICECLASSINFO) WSASERVICECLASSINFO;
976−typedef __AW(PWSASERVICECLASSINFO) PWSASERVICECLASSINFO;
977−typedef __AW(LPWSASERVICECLASSINFO) LPWSASERVICECLASSINFO;
978−
979−typedef struct _WSANAMESPACE_INFOA {
980− GUID NSProviderId;
981− DWORD dwNameSpace;
982− BOOL fActive;
983− DWORD dwVersion;
984− LPSTR lpszIdentifier;
985−} WSANAMESPACE_INFOA, *PWSANAMESPACE_INFOA, *LPWSANAMESPACE_INFOA;
986−
987−typedef struct _WSANAMESPACE_INFOW {
988− GUID NSProviderId;
989− DWORD dwNameSpace;
990− BOOL fActive;
991− DWORD dwVersion;
992− LPWSTR lpszIdentifier;
993−} WSANAMESPACE_INFOW, *PWSANAMESPACE_INFOW, *LPWSANAMESPACE_INFOW;
994−
995−typedef __AW(WSANAMESPACE_INFO) WSANAMESPACE_INFO;
996−typedef __AW(PWSANAMESPACE_INFO) PWSANAMESPACE_INFO;
997−typedef __AW(LPWSANAMESPACE_INFO) LPWSANAMESPACE_INFO;
998−
999−typedef struct _WSAPROTOCOLCHAIN {
1000− int ChainLen;
1001− DWORD ChainEntries[MAX_PROTOCOL_CHAIN];
1002−} WSAPROTOCOLCHAIN, *LPWSAPROTOCOLCHAIN;
1003−
1004−#define WSAPROTOCOL_LEN 255
1005−
1006−typedef struct _WSAPROTOCOL_INFOA {
1007− DWORD dwServiceFlags1;
1008− DWORD dwServiceFlags2;
1009− DWORD dwServiceFlags3;
1010− DWORD dwServiceFlags4;
1011− DWORD dwProviderFlags;
1012− GUID ProviderId;
1013− DWORD dwCatalogEntryId;
1014− WSAPROTOCOLCHAIN ProtocolChain;
1015− int iVersion;
1016− int iAddressFamily;
1017− int iMaxSockAddr;
1018− int iMinSockAddr;
1019− int iSocketType;
1020− int iProtocol;
1021− int iProtocolMaxOffset;
1022− int iNetworkByteOrder;
1023− int iSecurityScheme;
1024− DWORD dwMessageSize;
1025− DWORD dwProviderReserved;
1026− CHAR szProtocol[WSAPROTOCOL_LEN+1];
1027−} WSAPROTOCOL_INFOA, *LPWSAPROTOCOL_INFOA;
1028−
1029−typedef struct _WSAPROTOCOL_INFOW {
1030− DWORD dwServiceFlags1;
1031− DWORD dwServiceFlags2;
1032− DWORD dwServiceFlags3;
1033− DWORD dwServiceFlags4;
1034− DWORD dwProviderFlags;
1035− GUID ProviderId;
1036− DWORD dwCatalogEntryId;
1037− WSAPROTOCOLCHAIN ProtocolChain;
1038− int iVersion;
1039− int iAddressFamily;
1040− int iMaxSockAddr;
1041− int iMinSockAddr;
1042− int iSocketType;
1043− int iProtocol;
1044− int iProtocolMaxOffset;
1045− int iNetworkByteOrder;
1046− int iSecurityScheme;
1047− DWORD dwMessageSize;
1048− DWORD dwProviderReserved;
1049− WCHAR szProtocol[WSAPROTOCOL_LEN+1];
1050−} WSAPROTOCOL_INFOW, * LPWSAPROTOCOL_INFOW;
1051−
1052−typedef int (CALLBACK *LPCONDITIONPROC)(LPWSABUF, LPWSABUF, LPQOS, LPQOS, LPWSABUF, LPWSABUF, GROUP *, DWORD);
1053−typedef void (WINAPI *LPWSAOVERLAPPED_COMPLETION_ROUTINE)(DWORD, DWORD, LPWSAOVERLAPPED, DWORD);
1054−
1055−typedef __AW(WSAPROTOCOL_INFO) WSAPROTOCOL_INFO;
1056−typedef __AW(LPWSAPROTOCOL_INFO) LPWSAPROTOCOL_INFO;
1057−
1058−/* Needed for XP & .NET Server function WSANSPIoctl. */
1059−typedef enum _WSACOMPLETIONTYPE {
1060− NSP_NOTIFY_IMMEDIATELY = 0,
1061− NSP_NOTIFY_HWND,
1062− NSP_NOTIFY_EVENT,
1063− NSP_NOTIFY_PORT,
1064− NSP_NOTIFY_APC
1065−} WSACOMPLETIONTYPE, * PWSACOMPLETIONTYPE, * LPWSACOMPLETIONTYPE;
1066−typedef struct _WSACOMPLETION {
1067− WSACOMPLETIONTYPE Type;
1068− union {
1069− struct {
1070− HWND hWnd;
1071− UINT uMsg;
1072− WPARAM context;
1073− } WindowMessage;
1074− struct {
1075− LPWSAOVERLAPPED lpOverlapped;
1076− } Event;
1077− struct {
1078− LPWSAOVERLAPPED lpOverlapped;
1079− LPWSAOVERLAPPED_COMPLETION_ROUTINE lpfnCompletionProc;
1080− } Apc;
1081− struct {
1082− LPWSAOVERLAPPED lpOverlapped;
1083− HANDLE hPort;
1084− ULONG_PTR Key;
1085− } Port;
1086− } Parameters;
1087−} WSACOMPLETION, *PWSACOMPLETION, *LPWSACOMPLETION;
1088−
1089−#define PFL_MULTIPLE_PROTO_ENTRIES 0x00000001
1090−#define PFL_RECOMMENDED_PROTO_ENTRY 0x00000002
1091−#define PFL_HIDDEN 0x00000004
1092−#define PFL_MATCHES_PROTOCOL_ZERO 0x00000008
1093−#define XP1_CONNECTIONLESS 0x00000001
1094−#define XP1_GUARANTEED_DELIVERY 0x00000002
1095−#define XP1_GUARANTEED_ORDER 0x00000004
1096−#define XP1_MESSAGE_ORIENTED 0x00000008
1097−#define XP1_PSEUDO_STREAM 0x00000010
1098−#define XP1_GRACEFUL_CLOSE 0x00000020
1099−#define XP1_EXPEDITED_DATA 0x00000040
1100−#define XP1_CONNECT_DATA 0x00000080
1101−#define XP1_DISCONNECT_DATA 0x00000100
1102−#define XP1_SUPPORT_BROADCAST 0x00000200
1103−#define XP1_SUPPORT_MULTIPOINT 0x00000400
1104−#define XP1_MULTIPOINT_CONTROL_PLANE 0x00000800
1105−#define XP1_MULTIPOINT_DATA_PLANE 0x00001000
1106−#define XP1_QOS_SUPPORTED 0x00002000
1107−#define XP1_INTERRUPT 0x00004000
1108−#define XP1_UNI_SEND 0x00008000
1109−#define XP1_UNI_RECV 0x00010000
1110−#define XP1_IFS_HANDLES 0x00020000
1111−#define XP1_PARTIAL_MESSAGE 0x00040000
1112−
1113−#define BIGENDIAN 0x0000
1114−#define LITTLEENDIAN 0x0001
1115−
1116−#define SECURITY_PROTOCOL_NONE 0x0000
1117−#define JL_SENDER_ONLY 0x01
1118−#define JL_RECEIVER_ONLY 0x02
1119−#define JL_BOTH 0x04
1120−#define WSA_FLAG_OVERLAPPED 0x01
1121−#define WSA_FLAG_MULTIPOINT_C_ROOT 0x02
1122−#define WSA_FLAG_MULTIPOINT_C_LEAF 0x04
1123−#define WSA_FLAG_MULTIPOINT_D_ROOT 0x08
1124−#define WSA_FLAG_MULTIPOINT_D_LEAF 0x10
1125−#define IOC_UNIX 0x00000000
1126−#define IOC_WS2 0x08000000
1127−#define IOC_PROTOCOL 0x10000000
1128−#define IOC_VENDOR 0x18000000
1129−
1130−#define _WSAIO(x,y) (IOC_VOID|(x)|(y))
1131−#define _WSAIOR(x,y) (IOC_OUT|(x)|(y))
1132−#define _WSAIOW(x,y) (IOC_IN|(x)|(y))
1133−#define _WSAIORW(x,y) (IOC_INOUT|(x)|(y))
1134−
1135−#define SIO_ASSOCIATE_HANDLE _WSAIOW(IOC_WS2,1)
1136−#define SIO_ENABLE_CIRCULAR_QUEUEING _WSAIO(IOC_WS2,2)
1137−#define SIO_FIND_ROUTE _WSAIOR(IOC_WS2,3)
1138−#define SIO_FLUSH _WSAIO(IOC_WS2,4)
1139−#define SIO_GET_BROADCAST_ADDRESS _WSAIOR(IOC_WS2,5)
1140−#define SIO_GET_EXTENSION_FUNCTION_POINTER _WSAIORW(IOC_WS2,6)
1141−#define SIO_GET_QOS _WSAIORW(IOC_WS2,7)
1142−#define SIO_GET_GROUP_QOS _WSAIORW(IOC_WS2,8)
1143−#define SIO_MULTIPOINT_LOOPBACK _WSAIOW(IOC_WS2,9)
1144−#define SIO_MULTICAST_SCOPE _WSAIOW(IOC_WS2,10)
1145−#define SIO_SET_QOS _WSAIOW(IOC_WS2,11)
1146−#define SIO_SET_GROUP_QOS _WSAIOW(IOC_WS2,12)
1147−#define SIO_TRANSLATE_HANDLE _WSAIORW(IOC_WS2,13)
1148−#define SIO_ROUTING_INTERFACE_QUERY _WSAIORW(IOC_WS2,20)
1149−#define SIO_ROUTING_INTERFACE_CHANGE _WSAIOW(IOC_WS2,21)
1150−#define SIO_ADDRESS_LIST_QUERY _WSAIOR(IOC_WS2,22)
1151−#define SIO_ADDRESS_LIST_CHANGE _WSAIO(IOC_WS2,23)
1152−#define SIO_QUERY_TARGET_PNP_HANDLE _WSAIOR(IOC_WS2,24)
1153−#define SIO_NSP_NOTIFY_CHANGE _WSAIOW(IOC_WS2,25)
1154−#define SIO_UDP_CONNRESET _WSAIOW(IOC_VENDOR,12)
1155−
1156−#define TH_NETDEV 0x00000001
1157−#define TH_TAPI 0x00000002
1158−
1159−WINSOCK_API_LINKAGE SOCKET WINAPI WSAAccept(SOCKET, struct sockaddr *, LPINT, LPCONDITIONPROC, DWORD);
1160−WINSOCK_API_LINKAGE INT WINAPI WSAAddressToStringA(LPSOCKADDR, DWORD, LPWSAPROTOCOL_INFOA, LPSTR, LPDWORD);
1161−WINSOCK_API_LINKAGE INT WINAPI WSAAddressToStringW(LPSOCKADDR, DWORD, LPWSAPROTOCOL_INFOW, LPWSTR, LPDWORD);
1162−WINSOCK_API_LINKAGE BOOL WINAPI WSACloseEvent(WSAEVENT);
1163−WINSOCK_API_LINKAGE int WINAPI WSAConnect(SOCKET, const struct sockaddr *, int, LPWSABUF, LPWSABUF, LPQOS, LPQOS);
1164−WINSOCK_API_LINKAGE WSAEVENT WINAPI WSACreateEvent(void);
1165−WINSOCK_API_LINKAGE int WINAPI WSADuplicateSocketA(SOCKET, DWORD, LPWSAPROTOCOL_INFOA);
1166−WINSOCK_API_LINKAGE int WINAPI WSADuplicateSocketW(SOCKET, DWORD, LPWSAPROTOCOL_INFOW);
1167−WINSOCK_API_LINKAGE INT WINAPI WSAEnumNameSpaceProvidersA(LPDWORD, LPWSANAMESPACE_INFOA);
1168−WINSOCK_API_LINKAGE INT WINAPI WSAEnumNameSpaceProvidersW(LPDWORD, LPWSANAMESPACE_INFOW);
1169−WINSOCK_API_LINKAGE int WINAPI WSAEnumNetworkEvents(SOCKET, WSAEVENT, LPWSANETWORKEVENTS);
1170−WINSOCK_API_LINKAGE int WINAPI WSAEnumProtocolsA(LPINT, LPWSAPROTOCOL_INFOA, LPDWORD);
1171−WINSOCK_API_LINKAGE int WINAPI WSAEnumProtocolsW(LPINT, LPWSAPROTOCOL_INFOW, LPDWORD);
1172−WINSOCK_API_LINKAGE int WINAPI WSAEventSelect(SOCKET, WSAEVENT, long);
1173−WINSOCK_API_LINKAGE BOOL WINAPI WSAGetOverlappedResult(SOCKET, LPWSAOVERLAPPED, LPDWORD, BOOL, LPDWORD);
1174−WINSOCK_API_LINKAGE BOOL WINAPI WSAGetQOSByName(SOCKET, LPWSABUF, LPQOS);
1175−WINSOCK_API_LINKAGE INT WINAPI WSAGetServiceClassInfoA(LPGUID, LPGUID, LPDWORD, LPWSASERVICECLASSINFOA);
1176−WINSOCK_API_LINKAGE INT WINAPI WSAGetServiceClassInfoW(LPGUID, LPGUID, LPDWORD, LPWSASERVICECLASSINFOW);
1177−WINSOCK_API_LINKAGE INT WINAPI WSAGetServiceClassNameByClassIdA(LPGUID, LPSTR, LPDWORD);
1178−WINSOCK_API_LINKAGE INT WINAPI WSAGetServiceClassNameByClassIdW(LPGUID, LPWSTR, LPDWORD);
1179−WINSOCK_API_LINKAGE int WINAPI WSAHtonl(SOCKET, unsigned long, unsigned long *);
1180−WINSOCK_API_LINKAGE int WINAPI WSAHtons(SOCKET, unsigned short, unsigned short *);
1181−WINSOCK_API_LINKAGE INT WINAPI WSAInstallServiceClassA(LPWSASERVICECLASSINFOA);
1182−WINSOCK_API_LINKAGE INT WINAPI WSAInstallServiceClassW(LPWSASERVICECLASSINFOW);
1183−WINSOCK_API_LINKAGE int WINAPI WSAIoctl(SOCKET, DWORD, LPVOID, DWORD, LPVOID, DWORD, LPDWORD, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE);
1184−WINSOCK_API_LINKAGE SOCKET WINAPI WSAJoinLeaf(SOCKET, const struct sockaddr *, int, LPWSABUF, LPWSABUF, LPQOS, LPQOS, DWORD);
1185−WINSOCK_API_LINKAGE INT WINAPI WSALookupServiceBeginA(LPWSAQUERYSETA, DWORD, LPHANDLE);
1186−WINSOCK_API_LINKAGE INT WINAPI WSALookupServiceBeginW(LPWSAQUERYSETW lpqsRestrictions, DWORD, LPHANDLE);
1187−WINSOCK_API_LINKAGE INT WINAPI WSALookupServiceNextA(HANDLE, DWORD, LPDWORD, LPWSAQUERYSETA);
1188−WINSOCK_API_LINKAGE INT WINAPI WSALookupServiceNextW(HANDLE, DWORD, LPDWORD, LPWSAQUERYSETW);
1189−WINSOCK_API_LINKAGE INT WINAPI WSALookupServiceEnd(HANDLE);
1190−WINSOCK_API_LINKAGE int WINAPI WSANSPIoctl(HANDLE,DWORD,LPVOID,DWORD,LPVOID,DWORD,LPDWORD,LPWSACOMPLETION); /* XP or .NET Server */
1191−WINSOCK_API_LINKAGE int WINAPI WSANtohl(SOCKET, unsigned long, unsigned long *);
1192−WINSOCK_API_LINKAGE int WINAPI WSANtohs(SOCKET, unsigned short, unsigned short *);
1193−WINSOCK_API_LINKAGE int WINAPI WSARecv(SOCKET, LPWSABUF, DWORD, LPDWORD, LPDWORD, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE);
1194−WINSOCK_API_LINKAGE int WINAPI WSARecvDisconnect(SOCKET, LPWSABUF);
1195−WINSOCK_API_LINKAGE int WINAPI WSARecvFrom(SOCKET, LPWSABUF, DWORD, LPDWORD, LPDWORD, struct sockaddr *, LPINT, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE);
1196−WINSOCK_API_LINKAGE INT WINAPI WSARemoveServiceClass(LPGUID);
1197−WINSOCK_API_LINKAGE BOOL WINAPI WSAResetEvent(WSAEVENT);
1198−WINSOCK_API_LINKAGE int WINAPI WSASend(SOCKET, LPWSABUF, DWORD, LPDWORD, DWORD, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE);
1199−WINSOCK_API_LINKAGE int WINAPI WSASendDisconnect(SOCKET, LPWSABUF);
1200−WINSOCK_API_LINKAGE int WINAPI WSASendTo(SOCKET, LPWSABUF, DWORD, LPDWORD, DWORD, const struct sockaddr *, int, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE);
1201−WINSOCK_API_LINKAGE BOOL WINAPI WSASetEvent(WSAEVENT);
1202−WINSOCK_API_LINKAGE INT WSAAPI WSASetServiceA(LPWSAQUERYSETA, WSAESETSERVICEOP, DWORD);
1203−WINSOCK_API_LINKAGE INT WINAPI WSASetServiceW(LPWSAQUERYSETW, WSAESETSERVICEOP, DWORD);
1204−WINSOCK_API_LINKAGE SOCKET WINAPI WSASocketA(int, int, int, LPWSAPROTOCOL_INFOA, GROUP, DWORD);
1205−WINSOCK_API_LINKAGE SOCKET WINAPI WSASocketW(int, int, int, LPWSAPROTOCOL_INFOW, GROUP, DWORD);
1206−WINSOCK_API_LINKAGE INT WINAPI WSAStringToAddressA(LPSTR, INT, LPWSAPROTOCOL_INFOA, LPSOCKADDR, LPINT);
1207−WINSOCK_API_LINKAGE INT WINAPI WSAStringToAddressW(LPWSTR, INT, LPWSAPROTOCOL_INFOW, LPSOCKADDR, LPINT);
1208−WINSOCK_API_LINKAGE DWORD WINAPI WSAWaitForMultipleEvents(DWORD, const WSAEVENT *, BOOL, DWORD, BOOL);
1209−
1210−typedef SOCKET (WINAPI *LPFN_WSAACCEPT)(SOCKET, struct sockaddr *, LPINT, LPCONDITIONPROC, DWORD);
1211−typedef INT (WINAPI *LPFN_WSAADDRESSTOSTRINGA)(LPSOCKADDR, DWORD, LPWSAPROTOCOL_INFOA, LPSTR, LPDWORD);
1212−typedef INT (WINAPI *LPFN_WSAADDRESSTOSTRINGW)(LPSOCKADDR, DWORD, LPWSAPROTOCOL_INFOW, LPWSTR, LPDWORD);
1213−typedef BOOL (WINAPI *LPFN_WSACLOSEEVENT)(WSAEVENT);
1214−typedef int (WINAPI *LPFN_WSACONNECT)(SOCKET, const struct sockaddr *, int, LPWSABUF, LPWSABUF, LPQOS, LPQOS);
1215−typedef WSAEVENT (WINAPI *LPFN_WSACREATEEVENT)(void);
1216−typedef int (WINAPI *LPFN_WSADUPLICATESOCKETA)(SOCKET, DWORD, LPWSAPROTOCOL_INFOA);
1217−typedef int (WINAPI *LPFN_WSADUPLICATESOCKETW)(SOCKET, DWORD, LPWSAPROTOCOL_INFOW);
1218−typedef INT (WINAPI *LPFN_WSAENUMNAMESPACEPROVIDERSA)(LPDWORD, LPWSANAMESPACE_INFOA);
1219−typedef INT (WINAPI *LPFN_WSAENUMNAMESPACEPROVIDERSW)(LPDWORD, LPWSANAMESPACE_INFOW);
1220−typedef int (WINAPI *LPFN_WSAENUMNETWORKEVENTS)(SOCKET, WSAEVENT, LPWSANETWORKEVENTS);
1221−typedef int (WINAPI *LPFN_WSAENUMPROTOCOLSA)(LPINT, LPWSAPROTOCOL_INFOA, LPDWORD);
1222−typedef int (WINAPI *LPFN_WSAENUMPROTOCOLSW)(LPINT, LPWSAPROTOCOL_INFOW, LPDWORD);
1223−typedef int (WINAPI *LPFN_WSAEVENTSELECT)(SOCKET, WSAEVENT, long);
1224−typedef BOOL (WINAPI *LPFN_WSAGETOVERLAPPEDRESULT)(SOCKET, LPWSAOVERLAPPED, LPDWORD, BOOL, LPDWORD);
1225−typedef BOOL (WINAPI *LPFN_WSAGETQOSBYNAME)(SOCKET, LPWSABUF, LPQOS);
1226−typedef INT (WINAPI *LPFN_WSAGETSERVICECLASSINFOA)(LPGUID, LPGUID, LPDWORD, LPWSASERVICECLASSINFOA);
1227−typedef INT (WINAPI *LPFN_WSAGETSERVICECLASSINFOW)(LPGUID, LPGUID, LPDWORD, LPWSASERVICECLASSINFOW);
1228−typedef INT (WINAPI *LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDA)(LPGUID, LPSTR, LPDWORD);
1229−typedef INT (WINAPI *LPFN_WSAGETSERVICECLASSNAMEBYCLASSIDW)(LPGUID, LPWSTR, LPDWORD);
1230−typedef int (WINAPI *LPFN_WSAHTONL)(SOCKET, unsigned long, unsigned long *);
1231−typedef int (WINAPI *LPFN_WSAHTONS)(SOCKET, unsigned short, unsigned short *);
1232−typedef INT (WINAPI *LPFN_WSAINSTALLSERVICECLASSA)(LPWSASERVICECLASSINFOA);
1233−typedef INT (WINAPI *LPFN_WSAINSTALLSERVICECLASSW)(LPWSASERVICECLASSINFOW);
1234−typedef int (WINAPI *LPFN_WSAIOCTL)(SOCKET, DWORD, LPVOID, DWORD, LPVOID, DWORD, LPDWORD, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE);
1235−typedef SOCKET (WINAPI *LPFN_WSAJOINLEAF)(SOCKET, const struct sockaddr *, int, LPWSABUF, LPWSABUF, LPQOS, LPQOS, DWORD);
1236−typedef INT (WINAPI *LPFN_WSALOOKUPSERVICEBEGINA)(LPWSAQUERYSETA, DWORD, LPHANDLE);
1237−typedef INT (WINAPI *LPFN_WSALOOKUPSERVICEBEGINW)(LPWSAQUERYSETW, DWORD, LPHANDLE);
1238−typedef INT (WINAPI *LPFN_WSALOOKUPSERVICENEXTA)(HANDLE, DWORD, LPDWORD, LPWSAQUERYSETA);
1239−typedef INT (WINAPI *LPFN_WSALOOKUPSERVICENEXTW)(HANDLE, DWORD, LPDWORD, LPWSAQUERYSETW);
1240−typedef INT (WINAPI *LPFN_WSALOOKUPSERVICEEND)(HANDLE);
1241−typedef int (WINAPI *LPFN_WSANSPIoctl)(HANDLE, DWORD,LPVOID,DWORD,LPVOID,DWORD,LPDWORD,LPWSACOMPLETION);
1242−typedef int (WINAPI *LPFN_WSANTOHL)(SOCKET, unsigned long, unsigned long *);
1243−typedef int (WINAPI *LPFN_WSANTOHS)(SOCKET, unsigned short, unsigned short *);
1244−typedef int (WINAPI *LPFN_WSARECV)(SOCKET, LPWSABUF, DWORD, LPDWORD, LPDWORD, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE);
1245−typedef int (WINAPI *LPFN_WSARECVDISCONNECT)(SOCKET, LPWSABUF);
1246−typedef int (WINAPI *LPFN_WSARECVFROM)(SOCKET, LPWSABUF, DWORD, LPDWORD, LPDWORD, struct sockaddr *, LPINT, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE);
1247−typedef INT (WINAPI *LPFN_WSAREMOVESERVICECLASS)(LPGUID);
1248−typedef BOOL (WINAPI *LPFN_WSARESETEVENT)(WSAEVENT);
1249−typedef int (WINAPI *LPFN_WSASEND)(SOCKET, LPWSABUF, DWORD, LPDWORD, DWORD, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE);
1250−typedef int (WINAPI *LPFN_WSASENDDISCONNECT)(SOCKET, LPWSABUF);
1251−typedef int (WINAPI *LPFN_WSASENDTO)(SOCKET, LPWSABUF, DWORD, LPDWORD, DWORD, const struct sockaddr *, int, LPWSAOVERLAPPED, LPWSAOVERLAPPED_COMPLETION_ROUTINE);
1252−typedef BOOL (WINAPI *LPFN_WSASETEVENT)(WSAEVENT);
1253−typedef INT (WINAPI *LPFN_WSASETSERVICEA)(LPWSAQUERYSETA, WSAESETSERVICEOP, DWORD);
1254−typedef INT (WINAPI *LPFN_WSASETSERVICEW)(LPWSAQUERYSETW, WSAESETSERVICEOP, DWORD);
1255−typedef SOCKET (WINAPI *LPFN_WSASOCKETA)(int, int, int, LPWSAPROTOCOL_INFOA, GROUP, DWORD);
1256−typedef SOCKET (WINAPI *LPFN_WSASOCKETW)(int, int, int, LPWSAPROTOCOL_INFOW, GROUP, DWORD);
1257−typedef INT (WINAPI *LPFN_WSASTRINGTOADDRESSA)(LPSTR, INT, LPWSAPROTOCOL_INFOA, LPSOCKADDR, LPINT);
1258−typedef INT (WINAPI *LPFN_WSASTRINGTOADDRESSW)(LPWSTR, INT, LPWSAPROTOCOL_INFOW, LPSOCKADDR, LPINT);
1259−typedef DWORD (WINAPI *LPFN_WSAWAITFORMULTIPLEEVENTS)(DWORD, const WSAEVENT *, BOOL, DWORD, BOOL);
1260−
1261−#define LPFN_WSAADDRESSTOSTRING __AW(LPFN_WSAADDRESSTOSTRING)
1262−#define LPFN_WSADUPLICATESOCKET __AW(LPFN_WSADUPLICATESOCKET)
1263−#define LPFN_WSAENUMNAMESPACEPROVIDERS __AW(LPFN_WSAENUMNAMESPACEPROVIDERS)
1264−#define LPFN_WSAENUMPROTOCOLS __AW(LPFN_WSAENUMPROTOCOLS)
1265−#define LPFN_WSAGETSERVICECLASSINFO __AW(LPFN_WSAGETSERVICECLASSINFO)
1266−#define LPFN_WSAGETSERVICECLASSNAMEBYCLASSID __AW(LPFN_WSAGETSERVICECLASSNAMEBYCLASSID)
1267−#define LPFN_WSAINSTALLSERVICECLASS __AW(LPFN_WSAINSTALLSERVICECLASS)
1268−#define LPFN_WSALOOKUPSERVICEBEGIN __AW(LPFN_WSALOOKUPSERVICEBEGIN)
1269−#define LPFN_WSALOOKUPSERVICENEXT __AW(LPFN_WSALOOKUPSERVICENEXT)
1270−#define LPFN_WSASETSERVICE __AW(LPFN_WSASETSERVICE)
1271−#define LPFN_WSASOCKET __AW(LPFN_WSASOCKET)
1272−#define LPFN_WSASTRINGTOADDRESS __AW(LPFN_WSASTRINGTOADDRESS)
1273−#define WSAAddressToString __AW(WSAAddressToString)
1274−#define WSADuplicateSocket __AW(WSADuplicateSocket)
1275−#define WSAEnumNameSpaceProviders __AW(WSAEnumNameSpaceProviders)
1276−#define WSAEnumProtocols __AW(WSAEnumProtocols)
1277−#define WSAGetServiceClassInfo __AW(WSAGetServiceClassInfo)
1278−#define WSAGetServiceClassNameByClassId __AW(WSAGetServiceClassNameByClassId)
1279−#define WSASetService __AW(WSASetService)
1280−#define WSASocket __AW(WSASocket)
1281−#define WSAStringToAddress __AW(WSAStringToAddress)
1282−#define WSALookupServiceBegin __AW(WSALookupServiceBegin)
1283−#define WSALookupServiceNext __AW(WSALookupServiceNext)
1284−#define WSAInstallServiceClass __AW(WSAInstallServiceClass)
1285−
1286−#ifdef __cplusplus
1287−}
1288−#endif
1289−
1290−#endif
win32/lib/crt1.c+8−41
@@ -1,9 +1,6 @@
11 // =============================================
22 // crt1.c
33
4−// For ExitProcess
5−// windows.h header file should be included before any other library include
6−#include <windows.h>
74 #include <stdio.h>
85 #include <stdlib.h>
96
@@ -16,47 +13,23 @@ · 6 unmodified lines
1613 #define _PC_53 0x00010000 // 53 bits
1714 #define _PC_64 0x00000000 // 64 bits
1815
19−#ifndef __TRY__
20− #ifdef _WIN64
21− #define __TRY__
22− #else
23− #define __TRY__ void __try__(void**), *_sehrec[6]; __try__(_sehrec);
24− #endif
25−#endif
26−
2716 typedef struct
2817 {
2918 int newmode;
3019 } _startupinfo;
3120
32−// Prototype of __getmainargs:
33−// in msvcrt v6.x : returns void (windows 98, 2000)
34−// in msvcrt v7.x : returns int (windows xp and above)
35−// Using the last for check the result. A negative value means no success.
36−// These are the test results of call to __getmainargs with the heap fully:
37−// win 98, 2000 :
38−// program termination with error code 255 after call _amsg_exit(8)
39−// prints: "runtime error R6008\r\n- not enough space for arguments\r\n"
40−// win xp :
41−// returns -1
42−// win 7, 8 :
43−// program termination with error code -1 after call ExitProcess(-1)
44−//
45−// Checking the return of this function also works on windows 98 and 2000
46−// because internally it sets to eax the value of the third parameter.
47−// In this case is &env and at that point it is not a negative value.
48−
4921 int __cdecl __getmainargs(int *pargc, char ***pargv, char ***penv, int globb, _startupinfo*);
5022 void __cdecl __set_app_type(int apptype);
5123 unsigned int __cdecl _controlfp(unsigned int new_value, unsigned int mask);
52−
53−void _start(void);
5424 int main(int argc, char * argv[], char * env[]);
5525
26+/* Allow command-line globbing with "int _dowildcard = 1;" in the user source */
27+int _dowildcard;
28+
5629 void _start(void)
5730 {
5831 __TRY__
59− int argc;
32+ int argc, ret;
6033 char **argv;
6134 char **env;
6235 _startupinfo start_info;
@@ -67,20 +40,14 @@ void _start(void) · 4 unmodified lines
6740 // Set default FP precision to 53 bits (8-byte double)
6841 // _MCW_PC (Precision control) is not supported on
6942 // the ARM and x64 architectures
70−#if defined(_X86_) && !defined(__x86_64)
43+#ifdef __i386
7144 _controlfp(_PC_53, _MCW_PC);
7245 #endif
7346
7447 start_info.newmode = 0;
75− if ( __getmainargs( &argc, &argv, &env, 0, &start_info ) < 0 )
76− {
77− ExitProcess(-1);
78− }
79− else
80− {
81− exit( main(argc, argv, env) );
82− }
83−
48+ __getmainargs( &argc, &argv, &env, _dowildcard, &start_info);
49+ ret = main(argc, argv, env);
50+ exit(ret);
8451 }
8552
8653 // =============================================
win32/lib/wincrt1.c+0−8
@@ -9,14 +9,6 @@ · 8 unmodified lines
99 void __set_app_type(int);
1010 void _controlfp(unsigned a, unsigned b);
1111
12−#ifndef __TRY__
13− #ifdef _WIN64
14− #define __TRY__
15− #else
16− #define __TRY__ void __try__(void**), *_sehrec[6]; __try__(_sehrec);
17− #endif
18−#endif
19−
2012 int _winstart(void)
2113 {
2214 __TRY__

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t