comparison src/s/cygwin32.h @ 231:557eaa0339bf r20-5b14

Import from CVS: tag r20-5b14
author cvs
date Mon, 13 Aug 2007 10:13:48 +0200
parents
children 41f2f0e326e9
comparison
equal deleted inserted replaced
230:39ed1d2bdd9d 231:557eaa0339bf
1 /* System description file for Windows NT.
2 Copyright (C) 1993, 1994, 1995 Free Software Foundation, Inc.
3
4 This file is part of GNU Emacs.
5
6 GNU Emacs is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2, or (at your option)
9 any later version.
10
11 GNU Emacs is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with XEmacs; see the file COPYING. If not, write to
18 the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
19 Boston, MA 02111-1307, USA. */
20
21 /* Synched up with: FSF 19.31. */
22
23 /*
24 #ifndef WINDOWSNT
25 #define WINDOWSNT
26 #endif
27
28 #ifndef DOS_NT
29 #define DOS_NT
30 #endif
31 */
32
33 /* Need the win32 api */
34 #ifndef NOT_C_CODE
35 #ifdef CONST
36 #undef CONST
37 #endif
38
39 /* Start and end of text and data. */
40 extern void* _data_start__;
41 extern void* _data_end__;
42
43 #include <windows.h>
44 #endif
45
46 #ifndef HAVE_MS_WINDOWS
47 #define HAVE_MS_WINDOWS
48 #endif
49
50 /*#ifndef HAVE_SCROLLBARS
51 #define HAVE_SCROLLBARS
52 #endif*/
53
54 #ifndef HAVE_NTGUI
55 #define HAVE_NTGUI
56 #endif
57
58 #ifndef ORDINARY_LINK
59 #define ORDINARY_LINK
60 #endif
61
62 #undef MOD_ALT
63 #undef MOD_CONTROL
64 #undef MOD_SHIFT
65
66 #define SIF_TRACKPOS 0x0010
67 #define FW_BLACK FW_HEAVY
68 #define FW_ULTRABOLD FW_EXTRABOLD
69 #define FW_ULTRALIGHT FW_EXTRALIGHT
70 #define TMPF_FIXED_PITCH 0x01
71 #define VK_APPS 0x5D
72 #define SIGPROF 0
73 #define NO_LIM_DATA
74 #define HAVE_TEXT_START
75
76 #define LIBS_SYSTEM "-luser32 -lgdi32"
77
78 #undef MAIL_USE_SYSTEM_LOCK
79
80 /* Define NO_ARG_ARRAY if you cannot take the address of the first of a
81 * group of arguments and treat it as an array of the arguments. */
82
83 #define NO_ARG_ARRAY
84
85 /* Define WORD_MACHINE if addresses and such have
86 * to be corrected before they can be used as byte counts. */
87
88 #define WORD_MACHINE
89
90 /* Define EXPLICIT_SIGN_EXTEND if XINT must explicitly sign-extend
91 the 24-bit bit field into an int. In other words, if bit fields
92 are always unsigned.
93
94 If you use NO_UNION_TYPE, this flag does not matter. */
95
96 #define EXPLICIT_SIGN_EXTEND
97
98 /* Data type of load average, as read out of kmem. */
99
100 #define LOAD_AVE_TYPE long
101
102 /* Convert that into an integer that is 100 for a load average of 1.0 */
103
104 #define LOAD_AVE_CVT(x) (int) (((double) (x)) * 100.0 / FSCALE)
105
106 /* Define CANNOT_DUMP on machines where unexec does not work.
107 Then the function dump-emacs will not be defined
108 and temacs will do (load "loadup") automatically unless told otherwise. */
109
110 #define CANNOT_DUMP 1
111 #define CANNOT_UNEXEC 1
112 #define UNEXEC /* unexnt.o */
113
114 #define DATA_START _data_start__
115 #define DATA_END _data_end__
116
117 /* Define VIRT_ADDR_VARIES if the virtual addresses of
118 pure and impure space as loaded can vary, and even their
119 relative order cannot be relied on.
120
121 Otherwise Emacs assumes that text space precedes data space,
122 numerically. */
123
124 /* Text does precede data space, but this is never a safe assumption. */
125 #define VIRT_ADDR_VARIES
126
127 /* If you are compiling with a non-C calling convention but need to
128 declare vararg routines differently, put it here */
129 #define _VARARGS_ __cdecl
130
131 /* If you are providing a function to something that will call the
132 function back (like a signal handler and signal, or main) its calling
133 convention must be whatever standard the libraries expect */
134 #define _CALLBACK_ __cdecl
135
136 /* SYSTEM_TYPE should indicate the kind of system you are using.
137 It sets the Lisp variable system-type. */
138
139 #define SYSTEM_TYPE "cygwin32"
140
141 #define NO_MATHERR
142
143 /* NOMULTIPLEJOBS should be defined if your system's shell
144 does not have "job control" (the ability to stop a program,
145 run some other program, then continue the first one). */
146
147 #define NOMULTIPLEJOBS
148
149 /* Letter to use in finding device name of first pty,
150 if system supports pty's. 'a' means it is /dev/ptya0 */
151
152 #define FIRST_PTY_LETTER 'a'
153
154 /*
155 * Define HAVE_PTYS if the system supports pty devices.
156 */
157
158 /* #define HAVE_PTYS */
159
160 /* If your system uses COFF (Common Object File Format) then define the
161 preprocessor symbol "COFF". */
162
163 #define COFF
164
165 /* NT supports Winsock which is close enough (with some hacks) */
166
167 #define HAVE_SOCKETS
168
169 /* define MAIL_USE_FLOCK if the mailer uses flock
170 to interlock access to /usr/spool/mail/$USER.
171 The alternative is that a lock file named
172 /usr/spool/mail/$USER.lock. */
173
174 /* If the character used to separate elements of the executable path
175 is not ':', #define this to be the appropriate character constant. */
176 #define SEPCHAR ';'
177
178 /* ============================================================ */
179
180 /* Here, add any special hacks needed
181 to make Emacs work on this system. For example,
182 you might define certain system call names that don't
183 exist on your system, or that do different things on
184 your system and must be used only through an encapsulation
185 (Which you should place, by convention, in sysdep.c). */
186
187 /* Define this to be the separator between path elements */
188 /* #define DIRECTORY_SEP XINT (Vdirectory_sep_char) */
189
190 /* Define this to be the separator between devices and paths */
191 #define DEVICE_SEP ':'
192
193 #define SIGWINCH NSIG
194
195 /* We'll support either convention on NT. */
196 #define IS_DIRECTORY_SEP(_c_) ((_c_) == '/' || (_c_) == '\\')
197 #define IS_ANY_SEP(_c_) (IS_DIRECTORY_SEP (_c_) || IS_DEVICE_SEP (_c_))
198
199 /* The null device on Windows NT. */
200 #define NULL_DEVICE "NUL:"
201 #define EXEC_SUFFIXES ".exe:.com:.bat:.cmd:"
202
203 #if 0
204 #define HAVE_RENAME
205
206 #define HAVE_TZNAME
207
208 #define HAVE_LONG_FILE_NAMES
209
210 #define HAVE_BCOPY
211 #define HAVE_BCMP
212
213 #define HAVE_MOUSE
214 #endif
215
216 #define HAVE_WINDOW_SYSTEM
217 #define HAVE_FACES
218
219 #define MODE_LINE_BINARY_TEXT(_b_) (NILP ((_b_)->buffer_file_type) ? "T" : "B")
220
221 /* For integration with MSDOS support.
222 #define getdisk() (_getdrive () - 1)
223 #define getdefdir(_drv, _buf) _getdcwd (_drv, _buf, MAXPATHLEN)
224 */
225
226 /* Define this so that winsock.h definitions don't get included when windows.h
227 is... I don't know if they do the right thing for emacs. For this to
228 have proper effect, config.h must always be included before windows.h.
229 #define _WINSOCKAPI_ 1
230 */
231
232 /* Defines size_t and alloca (). */
233
234 /* We need a little extra space, see ../../lisp/loadup.el */
235 #define SYSTEM_PURESIZE_EXTRA 15000
236
237 /* ============================================================ */