37 #if APR_HAVE_PTHREAD_H
50 #if defined(HAVE_IF_INDEXTONAME) && defined(_MSC_VER)
73 wchar_t const *
const *arr,
int args);
133 #define APR_HAS_ANSI_FS 0
139 #if APR_HAS_ANSI_FS && APR_HAS_UNICODE_FS
140 #define IF_WIN_OS_IS_UNICODE if (apr_os_level >= APR_WIN_UNICODE)
141 #define ELSE_WIN_OS_IS_ANSI else
143 #define IF_WIN_OS_IS_UNICODE
144 #define ELSE_WIN_OS_IS_ANSI
147 #if defined(_MSC_VER) && !defined(_WIN32_WCE)
150 static APR_INLINE void* apr_malloc_dbg(
size_t size,
const char* filename,
153 return _malloc_dbg(size, _CRT_BLOCK, filename, linenumber);
156 static APR_INLINE void* apr_realloc_dbg(
void* userData,
size_t newSize,
157 const char* filename,
int linenumber)
159 return _realloc_dbg(userData, newSize, _CRT_BLOCK, filename, linenumber);
164 static APR_INLINE void* apr_malloc_dbg(
size_t size,
const char* filename,
170 static APR_INLINE void* apr_realloc_dbg(
void* userData,
size_t newSize,
171 const char* filename,
int linenumber)
173 return realloc(userData, newSize);
202 #define APR_DECLARE_LATE_DLL_FUNC(lib, rettype, calltype, fn, ord, args, names) \
203 typedef rettype (calltype *apr_winapi_fpt_##fn) args; \
204 static volatile apr_winapi_fpt_##fn apr_winapi_pfn_##fn = (apr_winapi_fpt_##fn) (ULONG_PTR) (-1); \
205 static APR_INLINE int apr_winapi_ld_##fn(void) \
207 apr_winapi_fpt_##fn cached_func = apr_winapi_pfn_##fn; \
208 if (cached_func == (apr_winapi_fpt_##fn) (ULONG_PTR) (-1)) { \
209 cached_func = (apr_winapi_fpt_##fn) apr_load_dll_func(lib, #fn, ord); \
211 apr_winapi_pfn_##fn = cached_func; \
213 if (cached_func) return 1; else return 0; }; \
214 static APR_INLINE rettype apr_winapi_##fn args \
215 { if (apr_winapi_ld_##fn()) \
216 return (*(apr_winapi_pfn_##fn)) names; \
217 else { SetLastError(ERROR_INVALID_FUNCTION); return 0;} }; \
219 #define APR_HAVE_LATE_DLL_FUNC(fn) apr_winapi_ld_##fn()
240 #if !defined(_WIN32_WCE)
249 (pMaxRes, pMinRes, pCurRes));
250 #define QueryTimerResolution apr_winapi_NtQueryTimerResolution
256 (ReqRes, Acquire, pNewRes));
257 #define SetTimerResolution apr_winapi_NtSetTimerResolution
264 PLARGE_INTEGER Timeout),
266 (Handle, Alertable, Timeout));
268 #ifdef CreateToolhelp32Snapshot
269 #undef CreateToolhelp32Snapshot
273 DWORD th32ProcessID),
274 (dwFlags, th32ProcessID));
275 #define CreateToolhelp32Snapshot apr_winapi_CreateToolhelp32Snapshot
277 #ifdef Process32FirstW
278 #undef Process32FirstW
282 LPPROCESSENTRY32W lppe),
284 #define Process32FirstW apr_winapi_Process32FirstW
286 #ifdef Process32NextW
287 #undef Process32NextW
291 LPPROCESSENTRY32W lppe),
293 #define Process32NextW apr_winapi_Process32NextW
297 #ifdef if_nametoindex
298 #undef if_nametoindex
301 IN PCSTR InterfaceName),
303 #define if_nametoindex apr_winapi_if_nametoindex
305 #ifdef if_indextoname
306 #undef if_indextoname
309 NET_IFINDEX InterfaceIndex,
310 PCHAR InterfaceName),
311 (InterfaceIndex, InterfaceName));
312 #define if_indextoname apr_winapi_if_indextoname
315 STDAPICALLTYPE, CommandLineToArgvW, 0,
316 (LPCWSTR lpCmdLine,
int *pNumArgs),
317 (lpCmdLine, pNumArgs));
Definition: apr_arch_misc.h:52
Definition: apr_arch_misc.h:109
Definition: apr_arch_misc.h:112
#define BOOL
Definition: macros.h:25
Definition: apr_arch_misc.h:93
#define if_indextoname
Definition: apr_arch_misc.h:312
#define CreateToolhelp32Snapshot
Definition: apr_arch_misc.h:275
Definition: apr_arch_misc.h:189
Definition: apr_arch_misc.h:99
Definition: apr_arch_misc.h:194
apr_pool_t * p
Definition: apr_arch_misc.h:53
#define Process32NextW
Definition: apr_arch_misc.h:293
APR Command Arguments (getopt)
Definition: apr_arch_misc.h:87
Definition: apr_arch_misc.h:94
Definition: apr_arch_misc.h:85
Definition: apr_arch_misc.h:97
Definition: apr_thread_proc.h:144
void(* maintenance)(int, void *, int)
Definition: apr_arch_misc.h:56
Definition: apr_arch_misc.h:108
Definition: apr_arch_misc.h:187
Definition: apr_arch_misc.h:102
apr_int64_t apr_interval_time_t
Definition: apr_time.h:55
APR Miscellaneous library routines.
Definition: apr_arch_misc.h:82
apr_proc_t * proc
Definition: apr_arch_misc.h:55
dav_buffer apr_size_t size
Definition: mod_dav.h:460
#define APR_DECLARE_LATE_DLL_FUNC(lib, rettype, calltype, fn, ord, args, names)
Definition: apr_arch_misc.h:202
Definition: apr_arch_misc.h:105
Definition: apr_arch_misc.h:185
Definition: apr_arch_misc.h:190
Definition: apr_arch_misc.h:113
Definition: apr_arch_misc.h:107
Definition: apr_arch_misc.h:116
Definition: apr_arch_misc.h:80
Definition: apr_arch_misc.h:98
Definition: apr_arch_misc.h:84
int
Definition: mod_proxy.h:653
FARPROC apr_load_dll_func(apr_dlltoken_e fnLib, char *fnName, int ordinal)
struct apr_other_child_rec_t * next
Definition: apr_arch_misc.h:54
Definition: apr_arch_misc.h:100
#define Process32FirstW
Definition: apr_arch_misc.h:284
Definition: apr_arch_misc.h:86
Definition: apr_arch_misc.h:184
apr_oslevel_e
Definition: apr_arch_misc.h:79
Definition: apr_arch_misc.h:188
int APR_DECLARE_DATA apr_app_init_complete
Definition: apr_arch_misc.h:186
Definition: apr_arch_misc.h:104
void * data
Definition: apr_arch_misc.h:57
#define APR_DECLARE_DATA
Definition: macros.h:17
APR Platform Definitions.
Definition: apr_arch_misc.h:106
#define if_nametoindex
Definition: apr_arch_misc.h:303
int apr_wastrtoastr(char const *const **retarr, wchar_t const *const *arr, int args)
Definition: apr_arch_misc.h:114
Definition: apr_arch_misc.h:83
apr_status_t apr_get_oslevel(apr_oslevel_e *)
Definition: apr_arch_misc.h:110
Definition: apr_arch_misc.h:95
APR_DECLARE_DATA apr_oslevel_e apr_os_level
APR Thread and Process Library.
Definition: apr_arch_misc.h:115
struct apr_pool_t apr_pool_t
Definition: apr_pools.h:60
typedef void(APR_THREAD_FUNC *PFN_HSE_IO_COMPLETION)(EXTENSION_CONTROL_BLOCK *ecb
Definition: apr_arch_misc.h:111
int apr_status_t
Definition: apr_errno.h:44
Definition: apr_arch_misc.h:91
Definition: apr_arch_misc.h:89
DWORD apr_wait_for_single_object(HANDLE handle, apr_interval_time_t timeout)
Definition: apr_arch_misc.h:191
apr_dlltoken_e
Definition: apr_arch_misc.h:183
#define malloc(x)
Definition: apr_private.h:170
Definition: apr_arch_misc.h:101
Definition: apr_arch_misc.h:81
APR Portability Routines.