1 /* ====================================================================
2 * The Apache Software License, Version 1.1
4 * Copyright (c) 2000 The Apache Software Foundation. All rights
7 * Redistribution and use in source and binary forms, with or without
8 * modification, are permitted provided that the following conditions
11 * 1. Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.
14 * 2. Redistributions in binary form must reproduce the above copyright
15 * notice, this list of conditions and the following disclaimer in
16 * the documentation and/or other materials provided with the
19 * 3. The end-user documentation included with the redistribution,
20 * if any, must include the following acknowledgment:
21 * "This product includes software developed by the
22 * Apache Software Foundation (http://www.apache.org/)."
23 * Alternately, this acknowledgment may appear in the software itself,
24 * if and wherever such third-party acknowledgments normally appear.
26 * 4. The names "Apache" and "Apache Software Foundation" must
27 * not be used to endorse or promote products derived from this
28 * software without prior written permission. For written
29 * permission, please contact apache@apache.org.
31 * 5. Products derived from this software may not be called "Apache",
32 * nor may "Apache" appear in their name, without prior written
33 * permission of the Apache Software Foundation.
35 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
36 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
37 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
38 * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
39 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
40 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
41 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
42 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
43 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
44 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
45 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
47 * ====================================================================
49 * This software consists of voluntary contributions made by many
50 * individuals on behalf of the Apache Software Foundation. For more
51 * information on the Apache Software Foundation, please see
52 * <http://www.apache.org/>.
54 * Portions of this software are based upon public domain software
55 * originally written at the National Center for Supercomputing Applications,
56 * University of Illinois, Urbana-Champaign.
62 * Compile the server including all the Windows NT 4.0 header files by
63 * default. We still want the server to run on Win95/98 so use
64 * runtime checks before calling NT specific functions to verify we are
65 * really running on an NT system.
67 * Delegate windows include to the apr.h header, if USER or GDI declarations
68 * are required (for a window rather than console application), include
69 * windows.h prior to any other Apache header files.
76 #include "apr_general.h"
82 #define PLATFORM "Win32"
85 * This file in included in all Apache source code. It contains definitions
86 * of facilities available on _this_ operating system (HAVE_* macros),
87 * and prototypes of OS specific functions defined in os.c
90 /* temporarily replace crypt */
91 /* char *crypt(const char *pw, const char *salt); */
92 #define crypt(buf,salt) (buf)
94 /* Although DIR_TYPE is dirent (see nt/readdir.h) we need direct.h for
102 #define CASE_BLIND_FILESYSTEM
104 #define NO_USE_SIGACTION
105 /* #undef HAVE_TIMES */
107 #define HAVE_CANONICAL_FILENAME
108 #define HAVE_DRIVE_LETTERS
109 #define HAVE_SENDFILE
115 typedef char * caddr_t;
119 #define S_ISLNK(m) (0)
120 #define S_ISREG(m) ((m & _S_IFREG) == _S_IFREG)
122 #define S_ISDIR(m) (((m) & S_IFDIR) == S_IFDIR)
125 #define STDIN_FILENO 0
126 #define STDOUT_FILENO 1
127 #define STDERR_FILENO 2
128 #define JMP_BUF jmp_buf
129 #define O_CREAT _O_CREAT
130 #define O_RDWR _O_RDWR
131 /* Seems Windows is not a subgenius */
133 #define APACHE_MPM_DIR "modules/mpm/winnt" /* generated on unix */
137 __inline int ap_os_is_path_absolute(const char *file)
139 /* For now, just do the same check that http_request.c and mod_alias.c
142 return file[0] == '/' || file[1] == ':';
145 /* OS-dependent filename routines in util_win32.c */
146 API_EXPORT(char *) ap_os_canonical_filename(apr_pool_t *p, const char *file);
147 API_EXPORT(char *) ap_os_case_canonical_filename(apr_pool_t *pPool, const char *szFile);
148 API_EXPORT(char *) ap_os_systemcase_filename(apr_pool_t *pPool, const char *szFile);
149 API_EXPORT(int) ap_os_is_filename_valid(const char *file);
151 #define ap_os_dso_error() "" /* for now */
152 /* Other ap_os_ routines not used by this platform */
153 #define ap_os_kill(pid, sig) kill(pid, sig)
159 #endif /* ! APACHE_OS_H */