annotate src/os/win32/ngx_win32_config.h @ 6133:af7eba90645d

Win32: shared memory base addresses and remapping. Two mechanisms are implemented to make it possible to store pointers in shared memory on Windows, in particular on Windows Vista and later versions with ASLR: - The ngx_shm_remap() function added to allow remapping of a shared memory zone to the address originally used for it in the master process. While important, it doesn't solve the problem by itself as in many cases it's not possible to use the address because of conflicts with other allocations. - We now create mappings at the same address in all processes by starting mappings at predefined addresses normally unused by newborn processes. These two mechanisms combined allow to use shared memory on Windows almost without problems, including reloads. Based on the patch by Sergey Brester: http://mailman.nginx.org/pipermail/nginx-devel/2015-April/006836.html
author Maxim Dounin <mdounin@mdounin.ru>
date Mon, 27 Apr 2015 18:25:42 +0300
parents 36d99c042652
children 2a621245f4cf
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
441
da8c5707af39 nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents: 419
diff changeset
1
da8c5707af39 nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents: 419
diff changeset
2 /*
444
42d11f017717 nginx-0.1.0-2004-09-29-20:00:49 import; remove years from copyright
Igor Sysoev <igor@sysoev.ru>
parents: 441
diff changeset
3 * Copyright (C) Igor Sysoev
4412
d620f497c50f Copyright updated.
Maxim Konovalov <maxim@nginx.com>
parents: 4223
diff changeset
4 * Copyright (C) Nginx, Inc.
441
da8c5707af39 nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents: 419
diff changeset
5 */
da8c5707af39 nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents: 419
diff changeset
6
da8c5707af39 nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents: 419
diff changeset
7
93
738fe44c70d5 nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
8 #ifndef _NGX_WIN32_CONFIG_H_INCLUDED_
738fe44c70d5 nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
9 #define _NGX_WIN32_CONFIG_H_INCLUDED_
738fe44c70d5 nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
10
738fe44c70d5 nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
11
5360
3d2d3e1cf427 Win32: MinGW GCC compatibility.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5359
diff changeset
12 #undef WIN32
563
9c2f3ed7a247 nginx-0.3.3-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 509
diff changeset
13 #define WIN32 0x0400
4218
a10354495767 Recent SDKs allow to build IPV6 only for Windows XP or above.
Igor Sysoev <igor@sysoev.ru>
parents: 3672
diff changeset
14 #define _WIN32_WINNT 0x0501
563
9c2f3ed7a247 nginx-0.3.3-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 509
diff changeset
15
9c2f3ed7a247 nginx-0.3.3-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 509
diff changeset
16
186
c1f3a3c7c5db nginx-0.0.1-2003-11-17-00:49:42 import
Igor Sysoev <igor@sysoev.ru>
parents: 183
diff changeset
17 #define STRICT
c1f3a3c7c5db nginx-0.0.1-2003-11-17-00:49:42 import
Igor Sysoev <igor@sysoev.ru>
parents: 183
diff changeset
18 #define WIN32_LEAN_AND_MEAN
93
738fe44c70d5 nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
19
1641
25e2db857b66 enable getenv() and gmtime() in msvc8
Igor Sysoev <igor@sysoev.ru>
parents: 1377
diff changeset
20 /* enable getenv() and gmtime() in msvc8 */
25e2db857b66 enable getenv() and gmtime() in msvc8
Igor Sysoev <igor@sysoev.ru>
parents: 1377
diff changeset
21 #define _CRT_SECURE_NO_WARNINGS
4778
a48031f7a69c Win32: fixed build with Visual Studio 2005 Express.
Maxim Dounin <mdounin@mdounin.ru>
parents: 4572
diff changeset
22 #define _CRT_SECURE_NO_DEPRECATE
1641
25e2db857b66 enable getenv() and gmtime() in msvc8
Igor Sysoev <igor@sysoev.ru>
parents: 1377
diff changeset
23
186
c1f3a3c7c5db nginx-0.0.1-2003-11-17-00:49:42 import
Igor Sysoev <igor@sysoev.ru>
parents: 183
diff changeset
24 /*
4572
67653855682e Fixed spelling in multiline C comments.
Ruslan Ermilov <ru@nginx.com>
parents: 4412
diff changeset
25 * we need to include <windows.h> explicitly before <winsock2.h> because
441
da8c5707af39 nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents: 419
diff changeset
26 * the warning 4201 is enabled in <windows.h>
186
c1f3a3c7c5db nginx-0.0.1-2003-11-17-00:49:42 import
Igor Sysoev <igor@sysoev.ru>
parents: 183
diff changeset
27 */
c1f3a3c7c5db nginx-0.0.1-2003-11-17-00:49:42 import
Igor Sysoev <igor@sysoev.ru>
parents: 183
diff changeset
28 #include <windows.h>
c1f3a3c7c5db nginx-0.0.1-2003-11-17-00:49:42 import
Igor Sysoev <igor@sysoev.ru>
parents: 183
diff changeset
29
c1f3a3c7c5db nginx-0.0.1-2003-11-17-00:49:42 import
Igor Sysoev <igor@sysoev.ru>
parents: 183
diff changeset
30 #ifdef _MSC_VER
c1f3a3c7c5db nginx-0.0.1-2003-11-17-00:49:42 import
Igor Sysoev <igor@sysoev.ru>
parents: 183
diff changeset
31 #pragma warning(disable:4201)
c1f3a3c7c5db nginx-0.0.1-2003-11-17-00:49:42 import
Igor Sysoev <igor@sysoev.ru>
parents: 183
diff changeset
32 #endif
119
cd54bcbaf3b5 nginx-0.0.1-2003-07-21-01:15:59 import
Igor Sysoev <igor@sysoev.ru>
parents: 93
diff changeset
33
93
738fe44c70d5 nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
34 #include <winsock2.h>
2512
2e91aecb9e57 a prelimiary IPv6 support, HTTP listen
Igor Sysoev <igor@sysoev.ru>
parents: 2387
diff changeset
35 #include <ws2tcpip.h> /* ipv6 */
93
738fe44c70d5 nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
36 #include <mswsock.h>
461
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
37 #include <shellapi.h>
195
8dee38ea9117 nginx-0.0.1-2003-11-25-23:44:56 import
Igor Sysoev <igor@sysoev.ru>
parents: 186
diff changeset
38 #include <stddef.h> /* offsetof() */
5360
3d2d3e1cf427 Win32: MinGW GCC compatibility.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5359
diff changeset
39
5886
5d4e4619982f Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents: 5389
diff changeset
40 #ifdef __MINGW64_VERSION_MAJOR
5d4e4619982f Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents: 5389
diff changeset
41
5d4e4619982f Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents: 5389
diff changeset
42 /* GCC MinGW-w64 supports _FILE_OFFSET_BITS */
5d4e4619982f Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents: 5389
diff changeset
43 #define _FILE_OFFSET_BITS 64
5d4e4619982f Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents: 5389
diff changeset
44
5d4e4619982f Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents: 5389
diff changeset
45 #elif defined __GNUC__
5d4e4619982f Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents: 5389
diff changeset
46
5360
3d2d3e1cf427 Win32: MinGW GCC compatibility.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5359
diff changeset
47 /* GCC MinGW's stdio.h includes sys/types.h */
3d2d3e1cf427 Win32: MinGW GCC compatibility.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5359
diff changeset
48 #define _OFF_T_
5886
5d4e4619982f Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents: 5389
diff changeset
49
5360
3d2d3e1cf427 Win32: MinGW GCC compatibility.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5359
diff changeset
50 #endif
3d2d3e1cf427 Win32: MinGW GCC compatibility.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5359
diff changeset
51
93
738fe44c70d5 nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
52 #include <stdio.h>
123
b75602822f64 nginx-0.0.1-2003-07-24-00:01:29 import
Igor Sysoev <igor@sysoev.ru>
parents: 119
diff changeset
53 #include <stdlib.h>
93
738fe44c70d5 nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
54 #include <stdarg.h>
5886
5d4e4619982f Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents: 5389
diff changeset
55 #ifdef __MINGW64_VERSION_MAJOR
5d4e4619982f Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents: 5389
diff changeset
56 #include <stdint.h>
5d4e4619982f Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents: 5389
diff changeset
57 #endif
5389
72e31d88defa Added ngx_filename_cmp() with "/" sorted to the left.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5360
diff changeset
58 #include <ctype.h>
3458
bdcae1a576e3 compare long file names in case-insensitive mode,
Igor Sysoev <igor@sysoev.ru>
parents: 2512
diff changeset
59 #include <locale.h>
93
738fe44c70d5 nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
60
509
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
61 #ifdef __WATCOMC__
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
62 #define _TIME_T_DEFINED
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
63 typedef long time_t;
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
64 /* OpenWatcom defines time_t as "unsigned long" */
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
65 #endif
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
66
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
67 #include <time.h> /* localtime(), strftime() */
9b8c906f6e63 nginx-0.1.29-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 503
diff changeset
68
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
69
186
c1f3a3c7c5db nginx-0.0.1-2003-11-17-00:49:42 import
Igor Sysoev <igor@sysoev.ru>
parents: 183
diff changeset
70 #ifdef _MSC_VER
455
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
71
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
72 /* the end of the precompiled headers */
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
73 #pragma hdrstop
295d97d70c69 nginx-0.1.2-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
74
186
c1f3a3c7c5db nginx-0.0.1-2003-11-17-00:49:42 import
Igor Sysoev <igor@sysoev.ru>
parents: 183
diff changeset
75 #pragma warning(default:4201)
c1f3a3c7c5db nginx-0.0.1-2003-11-17-00:49:42 import
Igor Sysoev <igor@sysoev.ru>
parents: 183
diff changeset
76
290
87e73f067470 nginx-0.0.2-2004-03-16-10:10:12 import
Igor Sysoev <igor@sysoev.ru>
parents: 282
diff changeset
77 /* disable some "-W4" level warnings */
87e73f067470 nginx-0.0.2-2004-03-16-10:10:12 import
Igor Sysoev <igor@sysoev.ru>
parents: 282
diff changeset
78
499
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 493
diff changeset
79 /* 'type cast': from function pointer to data pointer */
302
1526e7686b20 nginx-0.0.3-2004-04-01-10:21:13 import
Igor Sysoev <igor@sysoev.ru>
parents: 297
diff changeset
80 #pragma warning(disable:4054)
499
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 493
diff changeset
81
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 493
diff changeset
82 /* 'type cast': from data pointer to function pointer */
290
87e73f067470 nginx-0.0.2-2004-03-16-10:10:12 import
Igor Sysoev <igor@sysoev.ru>
parents: 282
diff changeset
83 #pragma warning(disable:4055)
363
f2755a2885c8 nginx-0.0.7-2004-06-21-23:22:53 import
Igor Sysoev <igor@sysoev.ru>
parents: 302
diff changeset
84
186
c1f3a3c7c5db nginx-0.0.1-2003-11-17-00:49:42 import
Igor Sysoev <igor@sysoev.ru>
parents: 183
diff changeset
85 /* unreferenced formal parameter */
c1f3a3c7c5db nginx-0.0.1-2003-11-17-00:49:42 import
Igor Sysoev <igor@sysoev.ru>
parents: 183
diff changeset
86 #pragma warning(disable:4100)
363
f2755a2885c8 nginx-0.0.7-2004-06-21-23:22:53 import
Igor Sysoev <igor@sysoev.ru>
parents: 302
diff changeset
87
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 499
diff changeset
88 /* FD_SET() and FD_CLR(): conditional expression is constant */
290
87e73f067470 nginx-0.0.2-2004-03-16-10:10:12 import
Igor Sysoev <igor@sysoev.ru>
parents: 282
diff changeset
89 #pragma warning(disable:4127)
363
f2755a2885c8 nginx-0.0.7-2004-06-21-23:22:53 import
Igor Sysoev <igor@sysoev.ru>
parents: 302
diff changeset
90
5120
7956af6b6a02 Win32: disabled MSVC warning about '\0' not fitting into array.
Valentin Bartenev <vbart@nginx.com>
parents: 4971
diff changeset
91 /* array is too small to include a terminating null character */
7956af6b6a02 Win32: disabled MSVC warning about '\0' not fitting into array.
Valentin Bartenev <vbart@nginx.com>
parents: 4971
diff changeset
92 #pragma warning(disable:4295)
7956af6b6a02 Win32: disabled MSVC warning about '\0' not fitting into array.
Valentin Bartenev <vbart@nginx.com>
parents: 4971
diff changeset
93
282
30310107dbc9 nginx-0.0.2-2004-03-09-22:47:07 import
Igor Sysoev <igor@sysoev.ru>
parents: 280
diff changeset
94 #endif
186
c1f3a3c7c5db nginx-0.0.1-2003-11-17-00:49:42 import
Igor Sysoev <igor@sysoev.ru>
parents: 183
diff changeset
95
280
7c7183b3ea8b nginx-0.0.2-2004-03-05-11:34:24 import
Igor Sysoev <igor@sysoev.ru>
parents: 279
diff changeset
96
7c7183b3ea8b nginx-0.0.2-2004-03-05-11:34:24 import
Igor Sysoev <igor@sysoev.ru>
parents: 279
diff changeset
97 #ifdef __WATCOMC__
499
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 493
diff changeset
98
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 493
diff changeset
99 /* symbol 'ngx_rbtree_min' has been defined, but not referenced */
280
7c7183b3ea8b nginx-0.0.2-2004-03-05-11:34:24 import
Igor Sysoev <igor@sysoev.ru>
parents: 279
diff changeset
100 #pragma disable_message(202)
499
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 493
diff changeset
101
280
7c7183b3ea8b nginx-0.0.2-2004-03-05-11:34:24 import
Igor Sysoev <igor@sysoev.ru>
parents: 279
diff changeset
102 #endif
7c7183b3ea8b nginx-0.0.2-2004-03-05-11:34:24 import
Igor Sysoev <igor@sysoev.ru>
parents: 279
diff changeset
103
297
ee394e997c77 nginx-0.0.3-2004-03-29-21:43:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 294
diff changeset
104
ee394e997c77 nginx-0.0.3-2004-03-29-21:43:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 294
diff changeset
105 #ifdef __BORLANDC__
499
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 493
diff changeset
106
297
ee394e997c77 nginx-0.0.3-2004-03-29-21:43:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 294
diff changeset
107 /* the end of the precompiled headers */
ee394e997c77 nginx-0.0.3-2004-03-29-21:43:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 294
diff changeset
108 #pragma hdrstop
ee394e997c77 nginx-0.0.3-2004-03-29-21:43:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 294
diff changeset
109
499
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 493
diff changeset
110 /* functions containing (for|while|some if) are not expanded inline */
297
ee394e997c77 nginx-0.0.3-2004-03-29-21:43:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 294
diff changeset
111 #pragma warn -8027
499
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 493
diff changeset
112
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 493
diff changeset
113 /* unreferenced formal parameter */
297
ee394e997c77 nginx-0.0.3-2004-03-29-21:43:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 294
diff changeset
114 #pragma warn -8057
499
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 493
diff changeset
115
297
ee394e997c77 nginx-0.0.3-2004-03-29-21:43:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 294
diff changeset
116 #endif
ee394e997c77 nginx-0.0.3-2004-03-29-21:43:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 294
diff changeset
117
ee394e997c77 nginx-0.0.3-2004-03-29-21:43:58 import
Igor Sysoev <igor@sysoev.ru>
parents: 294
diff changeset
118
278
0ba4821f4460 nginx-0.0.2-2004-03-04-10:04:55 import
Igor Sysoev <igor@sysoev.ru>
parents: 195
diff changeset
119 #include <ngx_auto_config.h>
0ba4821f4460 nginx-0.0.2-2004-03-04-10:04:55 import
Igor Sysoev <igor@sysoev.ru>
parents: 195
diff changeset
120
93
738fe44c70d5 nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
121
785
b5b111cc28ed win32 uint16_t definition
Igor Sysoev <igor@sysoev.ru>
parents: 613
diff changeset
122 #define ngx_inline __inline
b5b111cc28ed win32 uint16_t definition
Igor Sysoev <igor@sysoev.ru>
parents: 613
diff changeset
123 #define ngx_cdecl __cdecl
93
738fe44c70d5 nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
124
738fe44c70d5 nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
125
279
b79f021a644a nginx-0.0.2-2004-03-04-19:34:23 import
Igor Sysoev <igor@sysoev.ru>
parents: 278
diff changeset
126 #ifdef _MSC_VER
785
b5b111cc28ed win32 uint16_t definition
Igor Sysoev <igor@sysoev.ru>
parents: 613
diff changeset
127 typedef unsigned __int32 uint32_t;
b5b111cc28ed win32 uint16_t definition
Igor Sysoev <igor@sysoev.ru>
parents: 613
diff changeset
128 typedef __int32 int32_t;
b5b111cc28ed win32 uint16_t definition
Igor Sysoev <igor@sysoev.ru>
parents: 613
diff changeset
129 typedef unsigned __int16 uint16_t;
b5b111cc28ed win32 uint16_t definition
Igor Sysoev <igor@sysoev.ru>
parents: 613
diff changeset
130 #define ngx_libc_cdecl __cdecl
499
64d9afb209da nginx-0.1.24-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 493
diff changeset
131
785
b5b111cc28ed win32 uint16_t definition
Igor Sysoev <igor@sysoev.ru>
parents: 613
diff changeset
132 #elif defined __BORLANDC__
b5b111cc28ed win32 uint16_t definition
Igor Sysoev <igor@sysoev.ru>
parents: 613
diff changeset
133 typedef unsigned __int32 uint32_t;
b5b111cc28ed win32 uint16_t definition
Igor Sysoev <igor@sysoev.ru>
parents: 613
diff changeset
134 typedef __int32 int32_t;
b5b111cc28ed win32 uint16_t definition
Igor Sysoev <igor@sysoev.ru>
parents: 613
diff changeset
135 typedef unsigned __int16 uint16_t;
b5b111cc28ed win32 uint16_t definition
Igor Sysoev <igor@sysoev.ru>
parents: 613
diff changeset
136 #define ngx_libc_cdecl __cdecl
b5b111cc28ed win32 uint16_t definition
Igor Sysoev <igor@sysoev.ru>
parents: 613
diff changeset
137
b5b111cc28ed win32 uint16_t definition
Igor Sysoev <igor@sysoev.ru>
parents: 613
diff changeset
138 #else /* __WATCOMC__ */
b5b111cc28ed win32 uint16_t definition
Igor Sysoev <igor@sysoev.ru>
parents: 613
diff changeset
139 typedef unsigned int uint32_t;
b5b111cc28ed win32 uint16_t definition
Igor Sysoev <igor@sysoev.ru>
parents: 613
diff changeset
140 typedef int int32_t;
b5b111cc28ed win32 uint16_t definition
Igor Sysoev <igor@sysoev.ru>
parents: 613
diff changeset
141 typedef unsigned short int uint16_t;
503
b1648294f693 nginx-0.1.26-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
142 #define ngx_libc_cdecl
b1648294f693 nginx-0.1.26-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
143
176
c0552e5ab567 nginx-0.0.1-2003-11-09-23:03:38 import; separate building
Igor Sysoev <igor@sysoev.ru>
parents: 144
diff changeset
144 #endif
278
0ba4821f4460 nginx-0.0.2-2004-03-04-10:04:55 import
Igor Sysoev <igor@sysoev.ru>
parents: 195
diff changeset
145
785
b5b111cc28ed win32 uint16_t definition
Igor Sysoev <igor@sysoev.ru>
parents: 613
diff changeset
146 typedef __int64 int64_t;
b5b111cc28ed win32 uint16_t definition
Igor Sysoev <igor@sysoev.ru>
parents: 613
diff changeset
147 typedef unsigned __int64 uint64_t;
5358
670ceaba03d8 Win32: Open Watcom C compatibility fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5262
diff changeset
148
5886
5d4e4619982f Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents: 5389
diff changeset
149 #if !defined(__WATCOMC__) && !defined(__MINGW64_VERSION_MAJOR)
1354
f69d1aab6a0f make 64-bit ngx_int_t on 64-bit platforms
Igor Sysoev <igor@sysoev.ru>
parents: 1025
diff changeset
150 typedef int intptr_t;
785
b5b111cc28ed win32 uint16_t definition
Igor Sysoev <igor@sysoev.ru>
parents: 613
diff changeset
151 typedef u_int uintptr_t;
5358
670ceaba03d8 Win32: Open Watcom C compatibility fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5262
diff changeset
152 #endif
670ceaba03d8 Win32: Open Watcom C compatibility fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5262
diff changeset
153
176
c0552e5ab567 nginx-0.0.1-2003-11-09-23:03:38 import; separate building
Igor Sysoev <igor@sysoev.ru>
parents: 144
diff changeset
154
5886
5d4e4619982f Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents: 5389
diff changeset
155 #ifndef __MINGW64_VERSION_MAJOR
5d4e4619982f Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents: 5389
diff changeset
156
4219
691133126226 Fixing conflict with SDK off_t definition.
Igor Sysoev <igor@sysoev.ru>
parents: 4218
diff changeset
157 /* Windows defines off_t as long, which is 32-bit */
691133126226 Fixing conflict with SDK off_t definition.
Igor Sysoev <igor@sysoev.ru>
parents: 4218
diff changeset
158 typedef __int64 off_t;
691133126226 Fixing conflict with SDK off_t definition.
Igor Sysoev <igor@sysoev.ru>
parents: 4218
diff changeset
159 #define _OFF_T_DEFINED
691133126226 Fixing conflict with SDK off_t definition.
Igor Sysoev <igor@sysoev.ru>
parents: 4218
diff changeset
160
5886
5d4e4619982f Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents: 5389
diff changeset
161 #endif
5d4e4619982f Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents: 5389
diff changeset
162
5d4e4619982f Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents: 5389
diff changeset
163
5358
670ceaba03d8 Win32: Open Watcom C compatibility fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5262
diff changeset
164 #ifdef __WATCOMC__
670ceaba03d8 Win32: Open Watcom C compatibility fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5262
diff changeset
165
670ceaba03d8 Win32: Open Watcom C compatibility fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5262
diff changeset
166 /* off_t is redefined by sys/types.h used by zlib.h */
670ceaba03d8 Win32: Open Watcom C compatibility fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5262
diff changeset
167 #define __TYPES_H_INCLUDED
670ceaba03d8 Win32: Open Watcom C compatibility fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5262
diff changeset
168 typedef int dev_t;
670ceaba03d8 Win32: Open Watcom C compatibility fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5262
diff changeset
169 typedef unsigned int ino_t;
670ceaba03d8 Win32: Open Watcom C compatibility fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5262
diff changeset
170
5359
2fda9065d0f4 Win32: Borland C compatibility fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5358
diff changeset
171 #elif __BORLANDC__
2fda9065d0f4 Win32: Borland C compatibility fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5358
diff changeset
172
2fda9065d0f4 Win32: Borland C compatibility fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5358
diff changeset
173 /* off_t is redefined by sys/types.h used by zlib.h */
2fda9065d0f4 Win32: Borland C compatibility fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5358
diff changeset
174 #define __TYPES_H
2fda9065d0f4 Win32: Borland C compatibility fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5358
diff changeset
175
2fda9065d0f4 Win32: Borland C compatibility fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5358
diff changeset
176 typedef int dev_t;
2fda9065d0f4 Win32: Borland C compatibility fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5358
diff changeset
177 typedef unsigned int ino_t;
2fda9065d0f4 Win32: Borland C compatibility fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5358
diff changeset
178
5358
670ceaba03d8 Win32: Open Watcom C compatibility fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5262
diff changeset
179 #endif
670ceaba03d8 Win32: Open Watcom C compatibility fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5262
diff changeset
180
670ceaba03d8 Win32: Open Watcom C compatibility fixes.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5262
diff changeset
181
5886
5d4e4619982f Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents: 5389
diff changeset
182 #ifndef __MINGW64_VERSION_MAJOR
785
b5b111cc28ed win32 uint16_t definition
Igor Sysoev <igor@sysoev.ru>
parents: 613
diff changeset
183 typedef int ssize_t;
5886
5d4e4619982f Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents: 5389
diff changeset
184 #endif
5d4e4619982f Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents: 5389
diff changeset
185
5d4e4619982f Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents: 5389
diff changeset
186
785
b5b111cc28ed win32 uint16_t definition
Igor Sysoev <igor@sysoev.ru>
parents: 613
diff changeset
187 typedef uint32_t in_addr_t;
b5b111cc28ed win32 uint16_t definition
Igor Sysoev <igor@sysoev.ru>
parents: 613
diff changeset
188 typedef u_short in_port_t;
b5b111cc28ed win32 uint16_t definition
Igor Sysoev <igor@sysoev.ru>
parents: 613
diff changeset
189 typedef int sig_atomic_t;
176
c0552e5ab567 nginx-0.0.1-2003-11-09-23:03:38 import; separate building
Igor Sysoev <igor@sysoev.ru>
parents: 144
diff changeset
190
c0552e5ab567 nginx-0.0.1-2003-11-09-23:03:38 import; separate building
Igor Sysoev <igor@sysoev.ru>
parents: 144
diff changeset
191
5886
5d4e4619982f Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents: 5389
diff changeset
192 #ifdef _WIN64
5d4e4619982f Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents: 5389
diff changeset
193
5d4e4619982f Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents: 5389
diff changeset
194 #define NGX_PTR_SIZE 8
5d4e4619982f Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents: 5389
diff changeset
195 #define NGX_SIZE_T_LEN (sizeof("-9223372036854775808") - 1)
5d4e4619982f Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents: 5389
diff changeset
196 #define NGX_MAX_SIZE_T_VALUE 9223372036854775807
5d4e4619982f Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents: 5389
diff changeset
197 #define NGX_TIME_T_LEN (sizeof("-9223372036854775808") - 1)
5d4e4619982f Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents: 5389
diff changeset
198 #define NGX_TIME_T_SIZE 8
6008
b92d5a26d55f Core: expose maximum values of time_t and ngx_int_t.
Ruslan Ermilov <ru@nginx.com>
parents: 5886
diff changeset
199 #define NGX_MAX_TIME_T_VALUE 9223372036854775807
5886
5d4e4619982f Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents: 5389
diff changeset
200
5d4e4619982f Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents: 5389
diff changeset
201 #else
5d4e4619982f Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents: 5389
diff changeset
202
613
c73c5c58c619 nginx-0.3.28-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 581
diff changeset
203 #define NGX_PTR_SIZE 4
5262
626f288fa5ed Make macros safe.
Gleb Smirnoff <glebius@nginx.com>
parents: 5120
diff changeset
204 #define NGX_SIZE_T_LEN (sizeof("-2147483648") - 1)
1025
f88651afad40 style fix: remove tabs
Igor Sysoev <igor@sysoev.ru>
parents: 800
diff changeset
205 #define NGX_MAX_SIZE_T_VALUE 2147483647
5262
626f288fa5ed Make macros safe.
Gleb Smirnoff <glebius@nginx.com>
parents: 5120
diff changeset
206 #define NGX_TIME_T_LEN (sizeof("-2147483648") - 1)
477
ad1e9ebf93bb nginx-0.1.13-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 473
diff changeset
207 #define NGX_TIME_T_SIZE 4
6008
b92d5a26d55f Core: expose maximum values of time_t and ngx_int_t.
Ruslan Ermilov <ru@nginx.com>
parents: 5886
diff changeset
208 #define NGX_MAX_TIME_T_VALUE 2147483647
5886
5d4e4619982f Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents: 5389
diff changeset
209
5d4e4619982f Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents: 5389
diff changeset
210 #endif
5d4e4619982f Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents: 5389
diff changeset
211
5d4e4619982f Win32: made build-able with MinGW-w64 gcc.
Kouhei Sutou <kou@cozmixng.org>
parents: 5389
diff changeset
212
5262
626f288fa5ed Make macros safe.
Gleb Smirnoff <glebius@nginx.com>
parents: 5120
diff changeset
213 #define NGX_OFF_T_LEN (sizeof("-9223372036854775807") - 1)
477
ad1e9ebf93bb nginx-0.1.13-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 473
diff changeset
214 #define NGX_MAX_OFF_T_VALUE 9223372036854775807
ad1e9ebf93bb nginx-0.1.13-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 473
diff changeset
215 #define NGX_SIG_ATOMIC_T_SIZE 4
ad1e9ebf93bb nginx-0.1.13-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 473
diff changeset
216
581
326634fb9d47 nginx-0.3.12-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 563
diff changeset
217
469
2ff194b74f1e nginx-0.1.9-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
218 #define NGX_HAVE_LITTLE_ENDIAN 1
479
c52408583801 nginx-0.1.14-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 477
diff changeset
219 #define NGX_HAVE_NONALIGNED 1
469
2ff194b74f1e nginx-0.1.9-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
220
461
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
221
a88a3e4e158f nginx-0.1.5-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 455
diff changeset
222 #define NGX_WIN_NT 200000
176
c0552e5ab567 nginx-0.0.1-2003-11-09-23:03:38 import; separate building
Igor Sysoev <igor@sysoev.ru>
parents: 144
diff changeset
223
c0552e5ab567 nginx-0.0.1-2003-11-09-23:03:38 import; separate building
Igor Sysoev <igor@sysoev.ru>
parents: 144
diff changeset
224
1377
0d57c150115b set default listen() backlog to 511 on all platforms except FreeBSD
Igor Sysoev <igor@sysoev.ru>
parents: 1354
diff changeset
225 #define NGX_LISTEN_BACKLOG 511
0d57c150115b set default listen() backlog to 511 on all platforms except FreeBSD
Igor Sysoev <igor@sysoev.ru>
parents: 1354
diff changeset
226
0d57c150115b set default listen() backlog to 511 on all platforms except FreeBSD
Igor Sysoev <igor@sysoev.ru>
parents: 1354
diff changeset
227
469
2ff194b74f1e nginx-0.1.9-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
228 #ifndef NGX_HAVE_INHERITED_NONBLOCK
2ff194b74f1e nginx-0.1.9-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
229 #define NGX_HAVE_INHERITED_NONBLOCK 1
93
738fe44c70d5 nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
230 #endif
738fe44c70d5 nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
231
5389
72e31d88defa Added ngx_filename_cmp() with "/" sorted to the left.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5360
diff changeset
232 #ifndef NGX_HAVE_CASELESS_FILESYSTEM
72e31d88defa Added ngx_filename_cmp() with "/" sorted to the left.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5360
diff changeset
233 #define NGX_HAVE_CASELESS_FILESYSTEM 1
72e31d88defa Added ngx_filename_cmp() with "/" sorted to the left.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5360
diff changeset
234 #endif
72e31d88defa Added ngx_filename_cmp() with "/" sorted to the left.
Maxim Dounin <mdounin@mdounin.ru>
parents: 5360
diff changeset
235
469
2ff194b74f1e nginx-0.1.9-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
236 #ifndef NGX_HAVE_WIN32_TRANSMITPACKETS
2ff194b74f1e nginx-0.1.9-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
237 #define NGX_HAVE_WIN32_TRANSMITPACKETS 1
2ff194b74f1e nginx-0.1.9-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
238 #define NGX_HAVE_WIN32_TRANSMITFILE 0
93
738fe44c70d5 nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
239 #endif
738fe44c70d5 nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
240
469
2ff194b74f1e nginx-0.1.9-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
241 #ifndef NGX_HAVE_WIN32_TRANSMITFILE
2ff194b74f1e nginx-0.1.9-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
242 #define NGX_HAVE_WIN32_TRANSMITFILE 1
93
738fe44c70d5 nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
243 #endif
738fe44c70d5 nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
244
469
2ff194b74f1e nginx-0.1.9-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
245 #if (NGX_HAVE_WIN32_TRANSMITPACKETS) || (NGX_HAVE_WIN32_TRANSMITFILE)
2ff194b74f1e nginx-0.1.9-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 461
diff changeset
246 #define NGX_HAVE_SENDFILE 1
93
738fe44c70d5 nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
247 #endif
738fe44c70d5 nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
248
473
8e8f3af115b5 nginx-0.1.11-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 469
diff changeset
249 #ifndef NGX_HAVE_SO_SNDLOWAT
8e8f3af115b5 nginx-0.1.11-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 469
diff changeset
250 /* setsockopt(SO_SNDLOWAT) returns error WSAENOPROTOOPT */
8e8f3af115b5 nginx-0.1.11-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 469
diff changeset
251 #define NGX_HAVE_SO_SNDLOWAT 0
8e8f3af115b5 nginx-0.1.11-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 469
diff changeset
252 #endif
8e8f3af115b5 nginx-0.1.11-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 469
diff changeset
253
4971
eaf95350d75c Implemented IPv6 support for URLs specified using domain names.
Ruslan Ermilov <ru@nginx.com>
parents: 4778
diff changeset
254 #define NGX_HAVE_GETADDRINFO 1
93
738fe44c70d5 nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
255
800
Igor Sysoev <igor@sysoev.ru>
parents: 785
diff changeset
256 #define ngx_random rand
4223
1b779cb69dc8 malloc() debugging on MacOSX.
Igor Sysoev <igor@sysoev.ru>
parents: 4219
diff changeset
257 #define ngx_debug_init()
800
Igor Sysoev <igor@sysoev.ru>
parents: 785
diff changeset
258
Igor Sysoev <igor@sysoev.ru>
parents: 785
diff changeset
259
93
738fe44c70d5 nginx-0.0.1-2003-05-21-17:28:21 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
260 #endif /* _NGX_WIN32_CONFIG_H_INCLUDED_ */