xref: /aosp_15_r20/external/cronet/third_party/apache-portable-runtime/src/include/arch/win32/apr_private.h (revision 6777b5387eb2ff775bb5750e3f5d96f37fb7352b)
1 /* Licensed to the Apache Software Foundation (ASF) under one or more
2  * contributor license agreements.  See the NOTICE file distributed with
3  * this work for additional information regarding copyright ownership.
4  * The ASF licenses this file to You under the Apache License, Version 2.0
5  * (the "License"); you may not use this file except in compliance with
6  * the License.  You may obtain a copy of the License at
7  *
8  *     http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 /*
18  * Note:
19  * This is the windows specific autoconf-like config file
20  * which unix would create at build time.
21  */
22 
23 #ifdef WIN32
24 
25 #ifndef APR_PRIVATE_H
26 #define APR_PRIVATE_H
27 
28 /* Include the public APR symbols, include our idea of the 'right'
29  * subset of the Windows.h header.  This saves us repetition.
30  */
31 #include "apr.h"
32 
33 /*
34  * Add a _very_few_ declarations missing from the restricted set of headers
35  * (If this list becomes extensive, re-enable the required headers above!)
36  * winsock headers were excluded by WIN32_LEAN_AND_MEAN, so include them now
37  */
38 #ifndef SW_HIDE
39 #define SW_HIDE             0
40 #endif
41 
42 /* For the misc.h late-loaded dynamic symbols, we need some obscure types
43  * Avoid dragging in wtypes.h unless it's absolutely necessary [generally
44  * not with APR itself, until some GUI-related security is introduced.]
45  */
46 #ifndef _WIN32_WCE
47 #define HAVE_ACLAPI 1
48 #ifdef __wtypes_h__
49 #include <accctrl.h>
50 #else
51 #define __wtypes_h__
52 #include <accctrl.h>
53 #undef __wtypes_h__
54 #endif
55 #else
56 #define HAVE_ACLAPI 0
57 #endif
58 
59 #if APR_HAVE_SYS_TYPES_H
60 #include <sys/types.h>
61 #endif
62 #if APR_HAVE_STDDEF_H
63 #include <stddef.h>
64 #endif
65 #include <stdio.h>
66 #if APR_HAVE_TIME_H
67 #include <time.h>
68 #endif
69 
70 /* Use this section to define all of the HAVE_FOO_H
71  * that are required to build properly.
72  */
73 #define HAVE_LIMITS_H 1
74 #define HAVE_MALLOC_H 1
75 #define HAVE_SIGNAL_H 1
76 /* #define HAVE_STDDEF_H 1 why not? */
77 #define HAVE_STDLIB_H 1
78 
79 #define HAVE_STRICMP  1
80 #define HAVE_STRNICMP 1
81 #define HAVE_STRDUP   1
82 #define HAVE_STRSTR   1
83 #define HAVE_MEMCHR   1
84 
85 #define SIGHUP     1
86 /* 2 is used for SIGINT on windows */
87 #define SIGQUIT    3
88 /* 4 is used for SIGILL on windows */
89 #define SIGTRAP    5
90 #define SIGIOT     6
91 #define SIGBUS     7
92 /* 8 is used for SIGFPE on windows */
93 #define SIGKILL    9
94 #define SIGUSR1    10
95 /* 11 is used for SIGSEGV on windows */
96 #define SIGUSR2    12
97 #define SIGPIPE    13
98 #define SIGALRM    14
99 /* 15 is used for SIGTERM on windows */
100 #define SIGSTKFLT  16
101 #define SIGCHLD    17
102 #define SIGCONT    18
103 #define SIGSTOP    19
104 #define SIGTSTP    20
105 /* 21 is used for SIGBREAK on windows */
106 /* 22 is used for SIGABRT on windows */
107 #define SIGTTIN    23
108 #define SIGTTOU    24
109 #define SIGURG     25
110 #define SIGXCPU    26
111 #define SIGXFSZ    27
112 #define SIGVTALRM  28
113 #define SIGPROF    29
114 #define SIGWINCH   30
115 #define SIGIO      31
116 
117 /* APR COMPATABILITY FUNCTIONS
118  * This section should be used to define functions and
119  * macros which are need to make Windows features look
120  * like POSIX features.
121  */
122 typedef void (Sigfunc)(int);
123 
124 #define sleep(t)                 Sleep((t) * 1000)
125 
126 #define SIZEOF_SHORT           2
127 #define SIZEOF_INT             4
128 #define SIZEOF_LONGLONG        8
129 #define SIZEOF_CHAR            1
130 #define SIZEOF_SSIZE_T         SIZEOF_INT
131 
132 unsigned __stdcall SignalHandling(void *);
133 int thread_ready(void);
134 
135 #if !APR_HAVE_ERRNO_H
136 APR_DECLARE_DATA int errno;
137 #define ENOSPC 1
138 #endif
139 
140 #if APR_HAVE_IPV6
141 #define HAVE_GETADDRINFO 1
142 #define HAVE_GETNAMEINFO 1
143 #endif
144 
145 /* MSVC 7.0 introduced _strtoi64 */
146 #if _MSC_VER >= 1300 && _INTEGRAL_MAX_BITS >= 64 && !defined(_WIN32_WCE)
147 #define APR_INT64_STRFN	      _strtoi64
148 #endif
149 
150 #if APR_HAS_LARGE_FILES
151 #ifdef APR_INT64_STRFN
152 #define APR_OFF_T_STRFN         APR_INT64_STRFN
153 #else
154 #define APR_OFF_T_STRFN         apr_strtoi64
155 #endif
156 #else
157 #if defined(_WIN32_WCE)
158 #define APR_OFF_T_STRFN         strtol
159 #else
160 #define APR_OFF_T_STRFN         strtoi
161 #endif
162 #endif
163 
164 /* used to check for DWORD overflow in 64bit compiles */
165 #define APR_DWORD_MAX 0xFFFFFFFFUL
166 
167 /*
168  * Include common private declarations.
169  */
170 #include "../apr_private_common.h"
171 
172 #endif  /*APR_PRIVATE_H*/
173 #endif  /*WIN32*/
174