comparison src/s/cygwin32.h @ 771:943eaba38521

[xemacs-hg @ 2002-03-13 08:51:24 by ben] The big ben-mule-21-5 check-in! Various files were added and deleted. See CHANGES-ben-mule. There are still some test suite failures. No crashes, though. Many of the failures have to do with problems in the test suite itself rather than in the actual code. I'll be addressing these in the next day or so -- none of the test suite failures are at all critical. Meanwhile I'll be trying to address the biggest issues -- i.e. build or run failures, which will almost certainly happen on various platforms. All comments should be sent to ben@xemacs.org -- use a Cc: if necessary when sending to mailing lists. There will be pre- and post- tags, something like pre-ben-mule-21-5-merge-in, and post-ben-mule-21-5-merge-in.
author ben
date Wed, 13 Mar 2002 08:54:06 +0000
parents 023b83f4e54b
children 79c6ff3eef26
comparison
equal deleted inserted replaced
770:336a418893b5 771:943eaba38521
40 * YMMV. I build with NT4 SP3. 40 * YMMV. I build with NT4 SP3.
41 * 41 *
42 * Andy Piper <andy@xemacs.org> 8/1/98 42 * Andy Piper <andy@xemacs.org> 8/1/98
43 * http://www.xemacs.freeserve.co.uk/ */ 43 * http://www.xemacs.freeserve.co.uk/ */
44 44
45 #include "win32-common.h"
46
45 /* Identify ourselves */ 47 /* Identify ourselves */
46 #define CYGWIN 48 #define CYGWIN
47 49
48 /* cheesy way to determine cygwin version */ 50 /* cheesy way to determine cygwin version */
49 #ifndef NOT_C_CODE 51 #ifndef NOT_C_CODE
50 # include <signal.h> 52 # include <signal.h>
51 # include <cygwin/version.h> 53 # include <cygwin/version.h>
52
53 void cygwin_win32_to_posix_path_list (const char *, char *);
54 int cygwin_win32_to_posix_path_list_buf_size (const char *);
55 void cygwin_posix_to_win32_path_list (const char *, char *);
56 int cygwin_posix_to_win32_path_list_buf_size (const char *);
57 54
58 /* Still left out of 1.1! */ 55 /* Still left out of 1.1! */
59 double logb (double); 56 double logb (double);
60 int killpg (int pgrp, int sig); 57 int killpg (int pgrp, int sig);
61 58
63 60
64 #ifndef ORDINARY_LINK 61 #ifndef ORDINARY_LINK
65 #define ORDINARY_LINK 62 #define ORDINARY_LINK
66 #endif 63 #endif
67 64
68 #define C_SWITCH_SYSTEM -fno-caller-saves 65 #define C_SWITCH_SYSTEM -fno-caller-saves -fvtable-thunks
69 #define LIBS_SYSTEM -lwinmm 66 #define LIBS_SYSTEM -lwinmm
70 #define WIN32_LEAN_AND_MEAN 67 #define WIN32_LEAN_AND_MEAN
71 68
72 #define TEXT_START -1 69 #define TEXT_START -1
73 #define TEXT_END -1
74 #define DATA_END -1
75 #define HEAP_IN_DATA 70 #define HEAP_IN_DATA
76 #define NO_LIM_DATA 71 #define NO_LIM_DATA
77 #define UNEXEC "unexcw.o" 72 #define UNEXEC "unexcw.o"
78 73
79 #define BROKEN_SIGIO 74 #define BROKEN_SIGIO
80 75
81 #define CYGWIN_BROKEN_SIGNALS 76 #define CYGWIN_BROKEN_SIGNALS
82 77
83 #define strnicmp strncasecmp 78 #define strnicmp strncasecmp
84 #ifndef HAVE_SOCKETS
85 #define HAVE_SOCKETS
86 #endif
87 79
88 #undef MAIL_USE_SYSTEM_LOCK 80 #undef MAIL_USE_SYSTEM_LOCK
89
90 /* Do not define LOAD_AVE_TYPE or LOAD_AVE_CVT
91 since there is no load average available. */
92
93 /* Define VIRT_ADDR_VARIES if the virtual addresses of
94 pure and impure space as loaded can vary, and even their
95 relative order cannot be relied on.
96
97 Otherwise Emacs assumes that text space precedes data space,
98 numerically. */
99
100 /* Text does precede data space, but this is never a safe assumption. */
101 #define VIRT_ADDR_VARIES
102
103 /* If you are compiling with a non-C calling convention but need to
104 declare vararg routines differently, put it here */
105 #define _VARARGS_ __cdecl
106
107 /* If you are providing a function to something that will call the
108 function back (like a signal handler and signal, or main) its calling
109 convention must be whatever standard the libraries expect */
110 #define _CALLBACK_ __cdecl
111 81
112 /* SYSTEM_TYPE should indicate the kind of system you are using. 82 /* SYSTEM_TYPE should indicate the kind of system you are using.
113 It sets the Lisp variable system-type. */ 83 It sets the Lisp variable system-type. */
114 84
115 #define SYSTEM_TYPE "cygwin32" 85 #define SYSTEM_TYPE "cygwin32"
116
117 #define NO_MATHERR
118
119 /* define MAIL_USE_FLOCK if the mailer uses flock
120 to interlock access to /usr/spool/mail/$USER.
121 The alternative is that a lock file named
122 /usr/spool/mail/$USER.lock. */
123
124 /* If the character used to separate elements of the executable path
125 is not ':', #define this to be the appropriate character constant. */
126 #define SEPCHAR ':'
127
128 /* ============================================================ */
129
130 /* Here, add any special hacks needed
131 to make Emacs work on this system. For example,
132 you might define certain system call names that don't
133 exist on your system, or that do different things on
134 your system and must be used only through an encapsulation
135 (Which you should place, by convention, in sysdep.c). */
136
137 /* Define this to be the separator between path elements */
138 /* #define DIRECTORY_SEP XINT (Vdirectory_sep_char) */
139
140 /* Define this to be the separator between devices and paths */
141 #define DEVICE_SEP ':'
142
143 /* We'll support either convention on NT. */
144 #define IS_DIRECTORY_SEP(_c_) ((_c_) == '/' || (_c_) == '\\')
145 #define IS_ANY_SEP(_c_) (IS_DIRECTORY_SEP (_c_) || IS_DEVICE_SEP (_c_))
146 #define EXEC_SUFFIXES ".exe:.com:.bat:.cmd:"
147
148 /* We need a little extra space, see ../../lisp/loadup.el */
149 #define SYSTEM_PURESIZE_EXTRA 15000
150
151 #define CYGWIN_CONV_PATH(src, dst) \
152 dst = alloca (cygwin_win32_to_posix_path_list_buf_size(src)); \
153 cygwin_win32_to_posix_path_list(src, dst)
154 /* !!#### more mule bogosity */
155 #define CYGWIN_WIN32_PATH(src, dst) \
156 dst = (Extbyte *) alloca (cygwin_posix_to_win32_path_list_buf_size(src)); \
157 cygwin_posix_to_win32_path_list(src, dst)