]> sourceware.org Git - newlib-cygwin.git/blame - winsup/cygwin/ChangeLog
* fhandler_console.cc (fhandler_console::fixup_after_exec): Fix error message.
[newlib-cygwin.git] / winsup / cygwin / ChangeLog
CommitLineData
f054a20f
CF
12004-10-19 Christopher Faylor <cgf@timesys.com>
2
3 * fhandler_console.cc (fhandler_console::fixup_after_exec): Fix error
4 message.
5
96536b50
CF
62004-10-12 Christopher Faylor <cgf@timesys.com>
7
8 * select.cc (start_thread_socket): Remove unused code.
9
cbec131f
CF
102004-10-11 Christopher Faylor <cgf@timesys.com>
11
12 * fhandler_termios.cc (fhandler_termios::tcsetpgrp): Revert previous checkin.
13
1cda1322
CF
142004-10-10 Christopher Faylor <cgf@timesys.com>
15
16 * cygtls.h (exitsock): New element.
17 (exitsock_sin): Ditto.
18 * cygtls.cc (_cygtls::init_thread): Initialize exitsock to invalid handle.
19 (_cygtls::call2): Close exitsock if it is valid.
20 * select.cc (struct socketinf): Remove sin element.
21 (start_thread_socket): Initialize one SOCK_DGRAM socket per thread
22 instead of (apparently) expensive opening and closing of socket with
23 each select call.
24 (socket_cleanup): Send a byte to the exitsock socket as a way to
25 potentially signal a waiting-for-socket thread to exit.
26 * tlsoffsets.h: Regenerate.
27
60cb120f
CV
282004-10-07 Corinna Vinschen <corinna@vinschen.de>
29
30 * cygheap.h (class cygheap_user): Add psystemroot member and
31 env_systemroot method.
32 * environ.cc (struct spenv): Add add_always member.
1cda1322 33 (spenvs): Accommodate new add_always member. Add
60cb120f
CV
34 cygheap_user::env_systemroot method to SYSTEMROOT entry.
35 (build_env): Check add_always member when adding missing environment
36 variables from spenvs.
37 * uinfo.cc (cygheap_user::env_systemroot): New method.
38
9286b553
CV
392004-10-07 Corinna Vinschen <corinna@vinschen.de>
40
41 * dcrt0.cc (dll_crt0_0): Drop duplicated line.
42
859d85de
CF
432004-10-07 Christopher Faylor <cgf@timesys.com>
44
45 * spawn.cc (pthread_cleanup::oldmask): Default to invalid signal mask.
46 (do_cleanup): Test for invalid signal mask to decide whether to restore
47 the mask rather than assuming zero mask indicates that there is nothing
48 to do.
49
b9cd8fb5
CV
502004-10-07 Mark Paulus <mark.paulus@mci.com>
51
52 * fhandler_tty.cc (fhandler_tty_slave::read): Use previously
53 evaluated time_to_wait value.
54
b0637a51
PH
552004-10-05 Pierre Humblet <pierre.humblet@ieee.org>
56
57 * external.cc (check_ntsec): Do not call wincap.has_security.
58 * path.cc (path_conv::check): Ditto.
59 * security.cc (get_object_attribute): Ditto.
60 (get_file_attribute): Ditto.
61
01903046
CF
622004-10-05 Bas van Gompel <cygwin-patch.buzz@bavag.tmfweb.nl>
63
64 * pinfo.cc (_pinfo::commune_send): Correct debugging output.
65
34421ac3
CF
662004-10-04 Christopher Faylor <cgf@timesys.com>
67
68 * include/cygwin/signal.h: Add siginterrupt definition.
69
e49bc789
PH
702004-10-02 Pierre Humblet <pierre.humblet@ieee.org>
71
72 * path.h (enum path_types): Delete PATH_ISDISK.
73 (path_conv::isdisk): Delete method.
74 (path_conv::set_isdisk): Ditto.
75 * path.cc (path_conv::check): Do not call set_isdisk.
1cda1322 76 * uinfo.cc(pwdgrp::load): Do not call pc.isdisk.
e49bc789 77
e3e443e4
CF
782004-09-28 Christopher Faylor <cgf@timesys.com>
79
80 * fhandler_termios.cc (fhandler_termios::tcsetpgrp): Disallow attempts
81 to set the process group to a nonexistent process group.
82
2b94cfce
CV
832004-09-27 Corinna Vinschen <corinna@vinschen.de>
84
85 * lib/_cygwin_crt0_common.cc: Revert patch from 2004-09-16. Brakes
86 newly built DLLs.
87
98fc1a6d
CF
882004-09-24 Christopher Faylor <cgf@timesys.com>
89 Sergey Ivanov <seriv@parkheights.dyndns.org>
90
91 * path.cc (mount_info::read_cygdrive_info_from_registry): Default
92 /cygdrive to binary mode.
93
20e474d7
PH
942004-09-22 Pierre Humblet <pierre.humblet@ieee.org>
95
96 * path.cc (normalize_win32_path): Only look for : in second position.
97 Avoid infinite loop with names starting in double dots.
98fc1a6d 98 (mount_info::conv_to_win32_path): Do not worry about a trailing dot.
20e474d7
PH
99 (hash_path_name): Ditto.
100
0ae97cf7
CF
1012004-09-20 Christopher Faylor <cgf@timesys.com>
102
103 * exceptions.cc (sig_handle_tty_stop): Set flag earlier.
104
e58412a2
CF
1052004-09-20 Christopher Faylor <cgf@timesys.com>
106
107 * exceptions.cc (sig_handle_tty_stop): Set flag that we are in a cygwin
108 function to avoid a probably erroneous stack walk.
109
af444ab7
CV
1102004-09-17 Corinna Vinschen <corinna@vinschen.de>
111
112 * syscalls.cc (unlink): Don't use "delete on close" on remote shares.
113
95a12a85
CV
1142004-09-17 Corinna Vinschen <corinna@vinschen.de>
115
ac652b50 116 * cygwin.din (_impure_ptr): Add export again. There are libs out there.
95a12a85 117
368ffbe3
CV
1182004-09-16 Corinna Vinschen <corinna@vinschen.de>
119
120 * cygwin.din (_impure_ptr): Don't export.
121 (reent_data): Export.
122 * lib/_cygwin_crt0_common.cc (_impure_ptr): Drop entirely. Don't
123 initialize _impure_ptr or u->impure_ptr_ptr.
124
22a1a24f
CF
1252004-09-15 Corinna Vinschen <corinna@vinschen.de>
126
127 * cygwin.din (_impure_ptr): Export.
128 (reent_data): Don't export.
129 * dcrt0.cc (reent_data): Drop.
130 (__cygwin_user_data): Initialize impure_ptr as GLOBAL_REENT.
131 (_dll_crt0): Initialize _impure_ptr as GLOBAL_REENT.
132 * lib/_cygwin_crt0_common.cc (_impure_ptr): Drop. Declare extern as
133 dllimport instead.
134
a9f36d28
CF
1352004-09-14 Christopher Faylor <cgf@timesys.com>
136
137 * cygtls.h: Add alignment kludge to fix disparity between compilers.
138 * tlsoffsets.h: Regenerate.
139
140 * fork.cc (slow_pid_reuse): Use define to control number of pids held
141 to prevent pid reuse.
142
599b41c4
CV
1432004-09-14 Sam Steingold <sds@gnu.org>
144
145 * autoload.cc (EnumProcessModules): Add.
146 * dlfcn.cc (dlsym): Handle RTLD_DEFAULT using EnumProcessModules().
147 * include/dlfcn.h (RTLD_DEFAULT): Define to NULL.
148
fc3a4274
CF
1492004-09-13 Christopher Faylor <cgf@timesys.com>
150
151 * fork.cc (slow_pid_reuse): Temporarily double the number of pids held
152 to prevent pid reuse.
153
a5eb75d6
CF
1542004-09-12 Christopher Faylor <cgf@timesys.com>
155
156 * sigproc.cc (wait_sig): Ensure that waiting threads are awoken after
157 returning from a hold condition.
158
3d65bb97
CF
1592004-09-12 Christopher Faylor <cgf@timesys.com>
160
161 * child_info.h (CURR_CHILD_INFO_MAGIC): Update.
162
d584454c
CF
1632004-09-11 Pierre Humblet <pierre.humblet@ieee.org>
164 Christopher Faylor <cgf@timesys.com>
165
166 * exceptions.cc: (ctrl_c_handler): Do nothing while a Cygwin subprocess
167 is starting.
168
1692004-09-10 Christopher Faylor <cgf@timesys.com>
170
171 * child_info.h (init_child_info): Remove pid argument from declaration.
172 * cygheap.h (init_cygheap::pid): New element.
173 * dcrt0.cc (dll_crt0_0): Eliminate handling of now-noexistent cygpid
de4e88a8
CF
174 parameter in child_info struct. Set forkee to 'true' rather than
175 cygpid since the pid value was never used.
d584454c
CF
176 (dll_crt0_1): Ditto.
177 (_dll_crt0): Ditto.
178 * fork.cc (fork_child): Don't wait for sigthread. This is handled in
179 the fork call now.
de4e88a8
CF
180 (fork_parent): Remove obsolete pid argument from init_child_info call.
181 Don't do anything special with cygpid when DEBUGGING.
d584454c
CF
182 (fork): Delay all signals during fork.
183 (fork_init): Don't do anything special when DEBUGGING.
184 * pinfo.cc (set_myself): Remove pid parameter. Use new pid field in
185 cygheap.
186 (pinfo_init): Don't pass pid argument to set_myself.
187 * sigproc.cc (sig_send): Wait for dwProcessId to be non-zero as well as
188 sendsig.
189 (init_child_info): Eliminate handling of pid.
190 (wait_sig): Implement method to temporarily hold off sending signals.
191 * sigproc.h (__SIGHOLD): New enum.
192 (__SIGNOHOLD): Ditto.
193 * spawn.cc (spawn_guts): Remove obsolete pid argument from
194 init_child_info call.
195
d495ee9f
CV
1962004-09-10 Corinna Vinschen <corinna@vinschen.de>
197
198 * fhandler.cc (fhandler_base::dup): Use debug_printf.
199
4875a4b6
CV
2002004-09-10 Corinna Vinschen <corinna@vinschen.de>
201
202 * Makefile.in: Create libutil.a from bsdlib.o exports.
203 * bsdlib.cc (logwtmp): Move from syscalls.cc to here.
204 (login): Ditto.
205 (logout): Ditto.
206
207 * winsup.h (EXPORT_ALIAS): New macro.
208 * exec.cc: Define alias symbols using EXPORT_ALIAS macro.
209 * syscalls.cc: Ditto.
210 * times.cc: Ditto.
211
1f97020a
CV
2122004-09-09 Corinna Vinschen <corinna@vinschen.de>
213
214 * fhandler_tape.cc (fhandler_dev_tape::open): Fix typo.
215
64232968
CV
2162004-09-09 Bas van Gompel <cygwin-patch.buzz@bavag.tmfweb.nl>
217
218 * pipe.cc (create_selectable_pipe): Work around bug in Windows 95
219 where CreateNamedPipe returns NULL.
220
a4563209
PH
2212004-09-08 Pierre Humblet <pierre.humblet@ieee.org>
222
223 * cygheap.h (cwdstuff::drive_length): New member.
224 (cwdstuff::get_drive): New method.
225 * path.cc (normalize_win32_path): Simplify by using cwdstuff::get_drive.
226 (mount_info::conv_to_win32_path): Use cwdstuff::get_drive as default for /.
227 (cwdstuff::set): Initialize drive_length.
228
6f7a746c
CF
2292004-09-07 Christopher Faylor <cgf@timesys.com>
230
231 * cygtls.cc (_cygtls::init_thread): Set __sdidinit to negative value to
232 indicate that it is "special".
233 * thread.cc (pthread::exit): If __sdidinit is < 0, it was never really
234 initialized so reset it to 0 before calling _reclaim_reent.
235
dda37cd2
CF
2362004-09-05 Christopher Faylor <cgf@timesys.com>
237
238 * include/cygwin/version.h: Bump DLL minor number to 12.
239
eea5dd97
CV
2402004-09-03 Corinna Vinschen <corinna@vinschen.de>
241
242 * security.cc: Fix a few more strace_prints.
243
0cd9f74f
CF
2442004-09-02 Christopher Faylor <cgf@timesys.com>
245
246 Regularize most strace_prints throughout so that %E is always preceded
247 by a comma and elminate most uses of "foo = %s" to "foo %s".
248
6644c628
CF
2492004-09-02 Bob Byrnes <byrnes@curl.com>
250 Christopher Faylor <cgf@timesys.com>
251
252 * autoload.cc (NtQueryInformationFile): Return nonzero on error.
253 * ntdll.h (FILE_PIPE_LOCAL_INFORMATION): Add.
254 (NtQueryInformationFile): Fix types for last two arguments.
255 * pipe.cc: Include stdlib.h, limits.h, and ntdll.h.
256 (create_selectable_pipe): New function to create a pipe that can be
257 used with NtQueryInformationFile for select.
258 (fhandler_pipe::create): Call create_selectable_pipe instead of
259 CreatePipe.
260 (pipe): Use DEFAULT_PIPEBUFSIZE as argument to create_pipe.
261 * select.cc: Include limits.h and ntdll.h.
262 (peek_pipe): Add select_printf output. Call NtQueryInformationFile to
263 implement select for write on pipes.
264 (fhandler_pipe::select_read): Reorder field assignments to be
265 consistent with fhandler_pipe::select_write.
266 (fhandler_pipe::select_write): Initialize startup, verify, cleanup, and
267 write_ready fields for select_record.
268 (fhandler_pipe::select_except): Tweak indentation to be consistent with
269 fhandler_pipe::select_write.
270
72067cca
CF
2712004-08-30 Pierre Humblet <pierre.humblet@ieee.org>
272
273 * fork.cc (fork_parent): Return the cygpid directly derived from the
274 winpid.
275
1af912ce
CF
2762004-08-30 Christopher Faylor <cgf@timesys.com>
277
278 * fork.cc (fork_parent): Record child's pid when we're sure that it has
279 been filled out by the child.
280 * pinfo.cc (pinfo::init): Trivial change.
281
c01edcda
CV
2822004-08-29 Corinna Vinschen <corinna@vinschen.de>
283
284 * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Allow to report
285 success on systems with ntsec and ntea set.
286
ddea76a6
CV
2872004-08-28 Pierre Humblet <pierre.humblet@ieee.org>
288
72067cca 289 * fhandler.cc (fhandler_base::write): In the lseek_bug case, set EOF
ddea76a6
CV
290 before zero filling. Combine similar error handling statements.
291
2e41976b
PH
2922004-08-28 Pierre Humblet <pierre.humblet@ieee.org>
293
294 * syscalls.cc (ftruncate64): On 9x, call write with a zero length
295 to zero fill when the file is extended.
296
bb647ab6
CV
2972004-08-24 Corinna Vinschen <corinna@vinschen.de>
298
299 * syscalls.cc (link): Avoid compiler warning.
300
12618f5f
CV
3012004-08-21 Corinna Vinschen <corinna@vinschen.de>
302
303 * environ.cc (set_ntea): New function.
304 (set_ntsec): Ditto.
305 (set_smbntsec): Ditto.
306 (parse_thing): Change ntea, ntsec and smbntsec settings to call
307 appropriate functions.
308
7c481712
CV
3092004-08-20 Corinna Vinschen <corinna@vinschen.de>
310
311 * fhandler_tape.cc (fhandler_dev_tape::raw_read): Use ?: instead of
312 if/else.
313 (fhandler_dev_tape::raw_write): Return -1 in case of error.
314
b9188d6c
CV
3152004-08-19 Corinna Vinschen <corinna@vinschen.de>
316
317 * errno.cc (_sys_errlist): Change various text to their english Linux
318 counterparts. Unify layout.
319 (strerror): Remove switch statement.
320
8cb783ba
CV
3212004-08-19 Corinna Vinschen <corinna@vinschen.de>
322
323 * fhandler.cc (fhandler_base::open): Set shared flags to 0 when
324 opening a tape device.
325
82b30180
CV
3262004-08-19 Corinna Vinschen <corinna@vinschen.de>
327
f0eeb667 328 * fhandler_socket.cc (fhandler_socket::dup): Increment dtable's
82b30180
CV
329 need_fixup_before counter on successful dup.
330 * net.cc (cygwin_getpeername): Add file descriptor to debug output.
331
8f663bd6
CV
3322004-08-17 Pierre Humblet <pierre.humblet@ieee.org>
333
334 * fhandler.h (fhandler_dev_dsp:~fhandler_dev_dsp): Delete.
335 (fhandler_dev_dsp::open_count): Delete.
336 (fhandler_dev_dsp::close_audio_in): New method declaration.
337 (fhandler_dev_dsp::close_audio_in): Ditto.
338 * fhandler_dsp.cc: Add and edit debug_printf throughout.
339 (fhandler_dev_dsp::Audio::denyAccess): Delete.
340 (fhandler_dev_dsp::Audio::fork_fixup): Ditto.
341 (fhandler_dev_dsp::Audio::getOwner): Ditto.
342 (fhandler_dev_dsp::Audio::clearOwner): Ditto.
343 (fhandler_dev_dsp::Audio::owner_): Ditto.
344 (fhandler_dev_dsp::Audio::setformat): Ditto, rename to setconvert.
345 (fhandler_dev_dsp::Audio::lock): Ditto, move to queue.
346 (fhandler_dev_dsp::Audio::unlock): Ditto.
347 (fhandler_dev_dsp::Audio::lock_): Ditto.
348 (fhandler_dev_dsp::Audio::bufferIndex_): New member, from Audio_out
349 and Audio_in.
350 (fhandler_dev_dsp::Audio::pHdr_): Ditto.
351 (fhandler_dev_dsp::Audio::wavehdr_): Ditto.
352 (fhandler_dev_dsp::Audio::bigwavebuffer_): ditto.
353 (fhandler_dev_dsp::Audio::Qisr2app_): Ditto.
354 (fhandler_dev_dsp::Audio::setconvert): New method, from old setformat.
355 (fhandler_dev_dsp::Audio::queue::lock): New method.
356 (fhandler_dev_dsp::Audio::queue::unlock): Ditto.
357 (fhandler_dev_dsp::Audio::queue::dellock): Ditto.
358 (fhandler_dev_dsp::Audio::queue::isvalid): Ditto.
359 (fhandler_dev_dsp::Audio::queue::lock_): New member.
360 (fhandler_dev_dsp::Audio::queue::depth1_): Delete.
361 (fhandler_dev_dsp::Audio_out::fork_fixup): New method.
362 (fhandler_dev_dsp::Audio_out::isvalid): New method.
363 (fhandler_dev_dsp::Audio_out::start): Remove arguments.
364 (fhandler_dev_dsp::Audio_out::parsewav): Change arguments and set
365 internal state.
366 (fhandler_dev_dsp::Audio_out::emptyblocks): Delete.
367 (fhandler_dev_dsp::Audio_out::Qapp2app_): Ditto.
368 (fhandler_dev_dsp::Audio_out::Qisr2app_): Ditto, move to Audio.
369 (fhandler_dev_dsp::Audio_out::bufferIndex_): Ditto.
370 (fhandler_dev_dsp::Audio_out::pHdr_): Ditto.
371 (fhandler_dev_dsp::Audio_out::wavehdr_): Ditto.
372 (fhandler_dev_dsp::Audio_out::bigwavefuffer_): Ditto.
373 (fhandler_dev_dsp::Audio_out::freq_): New member.
374 (fhandler_dev_dsp::Audio_out::bits_): New member.
375 (fhandler_dev_dsp::Audio_out::channels_): New member.
376 (fhandler_dev_dsp::Audio_in::fork_fixup): New method.
377 (fhandler_dev_dsp::Audio_in::isvalid): New method.
378 (fhandler_dev_dsp::Audio_in::Qapp2app_): Delete.
379 (fhandler_dev_dsp::Audio_in::Qisr2app_): Ditto, move to Audio.
380 (fhandler_dev_dsp::Audio_in::bufferIndex_): Ditto.
381 (fhandler_dev_dsp::Audio_in::pHdr_): Ditto.
382 (fhandler_dev_dsp::Audio_in::wavehdr_): Ditto.
383 (fhandler_dev_dsp::Audio_in::bigwavefuffer_): Ditto.
384 (fhandler_dev_dsp::Audio::queue::queue): Simplify.
385 (fhandler_dev_dsp::Audio::queue::send): Use lock.
386 (fhandler_dev_dsp::Audio::queue::query): Do not use depth1_.
387 (fhandler_dev_dsp::Audio::queue::recv): Ditto.
388 (fhandler_dev_dsp::Audio::Audio): Adapt to new class members.
389 (fhandler_dev_dsp::Audio::~Audio): Ditto
390 (fhandler_dev_dsp::Audio_out::start): Reorganize.
391 (fhandler_dev_dsp::Audio_out::stop): Simplify.
392 (fhandler_dev_dsp::Audio_out::init): Reset the queue and clear flag.
393 (fhandler_dev_dsp::Audio_out::write): Reorganize to allocate audio_out.
394 (fhandler_dev_dsp::Audio_out::buf_info): Use appropriate block size.
395 (fhandler_dev_dsp::Audio_out::callback_sampledone): Do not use lock.
396 (fhandler_dev_dsp::Audio_out::waitforspace): Simplify.
397 (fhandler_dev_dsp::Audio_out::waitforallsent):Ditto.
398 (fhandler_dev_dsp::Audio_out::sendcurrent): Reorganize.
399 Clear flag before requeuing.
400 (fhandler_dev_dsp::Audio_out::parsewav):
401 (fhandler_dev_dsp::Audio_in::start): Reorganize.
402 (fhandler_dev_dsp::Audio_in::stop): Simplify.
403 (fhandler_dev_dsp::Audio_in::queueblock): Ditto.
404 Requeue header in case of error.
405 (fhandler_dev_dsp::Audio_in::init): Reset the queue and clear flag.
406 (fhandler_dev_dsp::Audio_in::waitfordata): Simplify.
407 Do not UnprepareHeader if the flag is zero.
408 (fhandler_dev_dsp::Audio_in::buf_info): Ditto.
409 (fhandler_dev_dsp::Audio_in::callback_blockfull): Do not use lock.
410 (fhandler_dev_dsp::open_count): Delete.
411 (fhandler_dev_dsp::open): Only check existence, do not allocate
412 anything. Set flags appropriately. Create archetype.
413 (fhandler_dev_dsp::write): Call archetype as needed. Create audio_out.
414 (fhandler_dev_dsp::read): Call archetype as needed. Create audio_in.
415 (fhandler_dev_dsp::close): Call archetype as needed.
416 Call close_audio_in and close_audio_out.
417 (fhandler_dev_dsp::close_audio_in): New function.
418 (fhandler_dev_dsp::close_audio_out): New function.
419 (fhandler_dev_dsp::dup): Use archetypes.
420 (fhandler_dev_dsp::ioctl): Call archetype as needed. Reorganize for
421 new structures.
422 (fhandler_dev_dsp::fixup_after_fork): Call archetype as needed.
423 (fhandler_dev_dsp::fixup_after_exec): Call archetype as needed.
424 Clear audio_in and audio_out.
425
252dd881
PH
4262004-08-14 Pierre Humblet <pierre.humblet@ieee.org>
427
428 * fhandler.cc (fhandler_base::open_9x): Set file attributes
429 for new files.
430
cb3f750c
CF
4312004-08-11 Christopher Faylor <cgf@timesys.com>
432
433 * net.cc (cygwin_gethostbyname): Show failing host name on error.
434
fe3db6cc
CF
4352004-08-10 Christopher Faylor <cgf@redhat.com>
436
437 * select.cc (select_stuff::wait): Correctly check for w4 array bounds.
438
3410b5be
CV
4392004-08-03 Corinna Vinschen <corinna@vinschen.de>
440
441 * errno.cc (errmap): Add ERROR_TOO_MANY_LINKS -> EMLINK mapping.
442 * syscalls.cc (link): Only copy files if FS doesn't support hard links.
443
26462985
CV
4442004-07-26 Christopher January <chris@atomice.net>
445
446 * fhandler_proc.cc (format_proc_cpuinfo): Remove Intel-specific flags
447 from /proc/cpuinfo on non-Intel processors. Added new AMD-specific
448 flags. Changed Intel flag names to match Linux.
449
634d51d9
CF
4502004-07-24 Christopher Faylor <cgf@timesys.com>
451
452 * dcrt0.cc (dll_crt0_0): Use proper boolean arguments.
453 * pinfo.cc (pinfo::init): Don't consider MapViewOfFileEx error to be
454 fatal if exiting.
455 * pinfo.h (pinfo::init): Eliminate default argument and supply the
456 argument in the one case that needed it.
457
65c5aa77
CV
4582004-07-24 Corinna Vinschen <corinna@vinschen.de>
459 Christopher Faylor <cgf@timesys.com>
460
461 * autoload.cc (GetNativeSystemInfo): Add.
462 (IsWow64Process): Add.
463 * init.cc (respawn_wow64_process): New function.
464 (dll_entry): If process has been started from a 64 bit
465 process, call respawn_wow64_process.
34b14e0b 466 * uname.cc (uname): On 64 bit systems, use GetNativeSystemInfo.
65c5aa77
CV
467 Show actual CPU type.
468
061095b5
CV
4692004-07-23 Corinna Vinschen <corinna@vinschen.de>
470
471 * dtable.cc (dtable::get_debugger_info): Make stderr r/w according
472 to SUSv3.
473
0544d116
CV
4742004-07-22 Corinna Vinschen <corinna@vinschen.de>
475
476 * fhandler_tty.cc (fhandler_tty_slave::open): Use requested flag
477 values also when copying fhandler from archetype.
478
5b7534fe
CF
4792004-07-22 Christopher Faylor <cgf@timesys.com>
480
481 * pinfo.cc (pinfo::init): Print handle in hex when MapViewOfFile fails.
482
7d9c458d
CV
4832004-07-20 Corinna Vinschen <corinna@vinschen.de>
484
485 * shm.cc: Whitespace fixes.
486
894c6777
CF
4872004-07-20 Christopher Faylor <cgf@timesys.com>
488
489 * Makefile.in (clean): Remove cygwin.def since it is autogenerated.
490
bc2c5114
CV
4912004-07-19 Corinna Vinschen <corinna@vinschen.de>
492
493 * fhandler_dsp.cc (fhandler_dev_dsp::Audio_out::init): Fix non-ISO
494 expression.
495 * fhandler_floppy.cc (fhandler_dev_floppy::open): Remove unused
496 variable.
497 * fhandler_proc.cc (format_proc_meminfo): Fix compiler warning.
498
1d2fd388
CF
4992004-07-16 Christopher Faylor <cgf@timesys.com>
500
501 * pinfo.cc (pinfo::init): Guard against MapViewOfFileEx failure.
502
e348b39a
CV
5032004-07-15 Corinna Vinschen <corinna@vinschen.de>
504
505 * mmap.cc (mmap_record::alloc_page_map): Mark pages as allocated even
506 on Windows 9x, FWIW.
507
0c0ad23a
CV
5082004-07-15 Corinna Vinschen <corinna@vinschen.de>
509
510 * mmap.cc (mprotect): When MAP_WRITE protection is requested, use
511 READWRITE or WRITECOPY protection, whatever has been used when the
512 page has been allocated initially.
513
4243412a
CV
5142004-07-15 Corinna Vinschen <corinna@vinschen.de>
515
516 * fhandler.h (class fhandler_dev_raw): Remove is_writing flag.
517 Remove declaration of writebuf.
518 (class fhandler_dev_floppy): Remove declaration of close.
519 * fhandler_floppy.cc (fhandler_dev_floppy::close): Delete.
520 (fhandler_dev_floppy::lseek): Remove calls to writebuf. Set
521 eom_detected to false after successful seek.
522 * fhandler_raw.cc (fhandler_dev_raw::writebuf): Delete.
523 (fhandler_dev_raw::raw_read): Remove calls to writebuf.
524 (fhandler_dev_raw::raw_write): Always invalidate buffer.
525
5ba42c7f
CV
5262004-07-15 Corinna Vinschen <corinna@vinschen.de>
527
528 * mmap.cc (class mmap_record): Fix return type of get_offset.
529 (mmap_record::fixup_page_map): Fix off by one error.
530 (list::search_record): Use long as type of "start" argument in both,
531 declaration and definition. Use long as type for local variable "i".
532
83967714
CF
5332004-07-14 Dave Korn <dk@artimi.com>
534
535 * fhandler_registry.cc (registry_listing): Correct typo.
536 (fhandler_registry::fill_filebuf): Set size of newly expanded buffer
537 prior to calling RegQueryValueEx.
538
dd3a7a20
CV
5392004-07-14 Corinna Vinschen <corinna@vinschen.de>
540
541 * fhandler_raw.cc (fhandler_dev_raw::raw_write): Remove buffered
542 write entirely.
543
1d470711
CV
5442004-07-07 Corinna Vinschen <corinna@vinschen.de>
545
546 * spawn.cc (spawn_guts): Check if script is executable.
547
78c6a5b5
CV
5482004-06-30 Corinna Vinschen <corinna@vinschen.de>
549
550 * times.cc (hires_ms::usecs): Don't overreact.
551
fbd5a0b8
CV
5522004-06-30 Corinna Vinschen <corinna@vinschen.de>
553
554 * times.cc (hires_ms::usecs): Reinit timer when system time overflows.
555
76a3f968
CF
5562004-06-27 Christopher Faylor <me@cgf.cx>
557
558 * thread.cc (__cygwin_lock_lock): Don't bother locking when there is
559 only one known thread.
560 (__cygwin_lock_unlock): Ditto for unlocking.
561
c624912e
CV
5622004-06-23 Tomas Ukkonen <tomas.ukkonen@iki.fi>
563
564 * fhandler_proc.cc (format_proc_cpuinfo): Test CPU vendor and print
565 AMD specific 3dnow capabilities.
566
f0d14ca9
CV
5672004-06-23 Pierre Humblet <pierre.humblet@ieee.org>
568
569 * fhandler_socket.cc (fhandler_socket::release): Call
570 WSASetLastError last.
571
c0508da2
CF
5722004-06-21 Christopher Faylor <cgf@alum.bu.edu>
573
574 * autoload.cc (wsock_init): Keep lock while modifying return address.
575
456afc5d
CV
5762004-06-17 Corinna Vinschen <corinna@vinschen.de>
577
578 * fhandler.cc (fhandler_base::open): Remove 9x specific code.
579
bd0e9c7a 5802004-06-17 Pierre Humblet <pierre.humblet@ieee.org>
f0d14ca9 581
bd0e9c7a
PH
582 * fhandler.cc (fhandler_base::open_9x): Do not check for null name.
583 Move debug_printf to common code line.
584 (fhandler_base::open): Ditto. Initialize upath. Remove second argument
585 of pc.get_nt_native_path.
586 * path.h (path_conv::get_nt_native_path): Remove second argument.
587 * path.cc (path_conv::get_nt_native_path): Ditto. Call str2uni_cat.
588 * security.h (str2buf2uni_cat): Delete declaration.
589 (str2uni_cat): New declaration.
590 * security.cc (str2buf2uni): Get length from sys_mbstowcs call.
591 (str2buf2uni_cat): Delete function.
592 (str2uni_cat): New function.
593 * miscfuncs.cc (sys_mbstowcs): Add debug_printf.
594
f6d9664b
CV
5952004-06-17 Corinna Vinschen <corinna@vinschen.de>
596
597 * fhandler.cc (fhandler_base::open): Substitute FILE_SUPERSEDE with
598 FILE_OVERWRITE_IF.
599
cc24f9b6
CF
6002004-06-09 Christopher Faylor <cgf@alum.bu.edu>
601
602 * include/cygwin/version.h: REALLY bump dll minor version to 11.
603
35fe2c08
CV
6042004-06-08 Egor Duda <deo@corpit.ru>
605
606 * include/cygwin/ipc.h: Make IPC_INFO visible only for ipc system
607 utilities, to make it consistent with declaration of struct seminfo.
608
694a67c4
CV
6092004-06-08 Pierre Humblet <pierre.humblet@ieee.org>
610
611 * path.cc (fchdir): Pass the Posix path to chdir.
612
beffbc5e
CF
6132004-06-07 Christopher Faylor <cgf@alum.bu.edu>
614
615 * dtable.cc (dtable::find_fifo): Release lock after fifo found (still
616 racy).
617 * fhandler.h (fhandler_fifo::get_io_handle): New fifo-specific method.
618 * fhandler_fifo.cc (fhandler_fifo::close): Close output_handle only if
619 it is open.
620 (fhandler_fifo::open_not_mine): Reorganize slightly. Don't call _pinfo
621 methods when the fifo is owned by me or suffer dtable lock_cs deadlock.
622 (fhandler_fifo::open): Call open_not_mine first, otherwise open myself
623 (racy).
624 * pinfo.cc (_pinfo::commune_recv): Duplicate fifo handles here in
625 requesting processes arena to avoid one potential race (of many).
626 (_pinfo::commune_send): Move all PICOM_FIFO code under one case
627 statement.
628
629 * thread.cc (pthread::init_mainthread) Use existing hMainProc handle
630 rather than calling GetCurrentProcess.
631
cf4bfdb2
CF
6322004-06-04 Christopher Faylor <cgf@alum.bu.edu>
633
634 * winbase.h (ilockincr): Add more neverending changes from the
635 inexplicable world of gcc asm constraint magic. Should stop random
636 crashes.
637 (ilockdecr): Ditto.
638
04612c69
CF
6392004-06-03 Christopher Faylor <cgf@alum.bu.edu>
640
641 * autoload.cc (IsDosDeviceName_U): Define.
642 * ntdll.h (IsDosDeviceName_U): Declare.
643 * fhandler.cc (fhandler_base::open): Check to see if win32_name is a
644 dos device and just call the 9x open if so.
645
604ca5fa
CF
6462004-06-03 Christopher Faylor <cgf@alum.bu.edu>
647
648 * winbase.h (ilockincr): More changes from the inexplicable world of
649 gcc asm magic.
650 (ilockdecr): Ditto.
651
ee94df3e
CF
6522004-06-03 Christopher Faylor <me@cgf.cx>
653
654 * winbase.h (ilockincr): YA correction to ensure correct operation with
655 no optimization.
656 (ilockdecr): Ditto.
657
414bfc10
CV
6582004-06-03 Corinna Vinschen <corinna@vinschen.de>
659
660 * cygserver.h (CYGWIN_SERVER_VERSION_API): Bump.
661
378e5a02
CV
6622004-06-03 Corinna Vinschen <corinna@vinschen.de>
663
664 * include/cygwin/ipc.h (IPC_KEY_IS_SHMID): Redefine to a more sensible
665 value.
666
e847fe13
CF
6672004-06-02 Christopher Faylor <cgf@alum.bu.edu>
668
669 * cygheap.cc (cmalloc): Add debugging hook.
670
1a21f331
CF
6712004-06-02 Christophe Jaillet <christophe.jaillet@wanadoo.fr>
672
673 * spawn.cc (find_exec): Use has_slash to determine if path has a slash
674 rather than calculating this twice.
675
2d5afa98
PH
6762004-05-30 Pierre Humblet <pierre.humblet@ieee.org>
677
1a21f331 678 * path.cc (mount_info::add_item): Make sure native path has drive
2d5afa98 679 or UNC form. Call normalize_xxx_path instead of [back]slashify.
1a21f331 680 Remove test for double slashes. Reorganize to always debug_print.
2d5afa98 681
c4c9eb5f
CF
6822004-05-28 Pierre Humblet <Pierre.Humblet@ieee.org>
683
684 * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Only try to open
685 the file if it uses an acl.
686
e3778517
CF
6872004-05-28 Pierre Humblet <Pierre.Humblet@ieee.org>
688
689 * path.cc (chdir): Always use the normalized_path as posix_cwd, except
690 if it starts with a drive.
691
37eadb6f
CF
6922004-05-25 Christopher Faylor <cgf@alum.bu.edu>
693
694 * winbase.h: Semi-revert previous patch as it caused strange behavior.
695 Use syntax similar to that recommended in mingw-dvlpr.
696
9a17d61b
CF
6972004-05-25 Christopher Faylor <cgf@alum.bu.edu>
698
699 * include/cygwin/version.h: Bump DLL minor number to 11.
700
1b1f85fa
CF
7012004-05-25 Christopher Faylor <cgf@alum.bu.edu>
702
703 * winbase.h: Add proper attributions for memory operands throughout.
704
41bba72e
CF
7052004-05-24 Christopher Faylor <cgf@alum.bu.edu>
706
707 * include/cygwin/version.h: Bump api minor version number.
708
7092004-05-24 Christopher Faylor <cgf@alum.bu.edu>
710
711 * cygwin.din: Export atoll.
712
bfa76897
CF
7132004-05-20 Christopher Faylor <cgf@alum.bu.edu>
714
715 * tty.cc (tty_list::allocate_tty): Leave tty_mutex armed on successful
716 return from !with_console
717 * fhandler_tty.cc (fhandler_pty_master::open): Release tty_mutex here
718 after all initialization is done.
719
aac9c88c
CV
7202004-05-17 Corinna Vinschen <corinna@vinschen.de>
721
722 * grp.cc (getgrgid_r): Replace struct group by struct __group32 in
723 argument definition.
724 (getgrnam_r): Ditto.
725
68509b30
CV
7262004-05-17 Corinna Vinschen <corinna@vinschen.de>
727
728 * cygwin.din: Add symbols flockfile, ftrylockfile, funlockfile,
729 getgrgid_r, getgrnam_r and getlogin_r.
730 * grp.cc (getgrgid_r): New function.
731 (getgrnam_r): Ditto.
732 * syscalls.cc (flockfile): Ditto.
733 (ftrylockfile): Ditto.
734 (funlockfile): Ditto.
735 * sysconf.cc (sysconf): Return LOGIN_NAME_MAX in case of
736 _SC_LOGIN_NAME_MAX.
737 * thread.cc (__cygwin_lock_trylock): Define int. Return value from
738 call to pthread_mutex_trylock.
739 * uinfo.cc (getlogin_r): New function.
740 * include/limits.h: Define LOGIN_NAME_MAX.
741 * include/cygwin/version.h: Bump API minor number.
742 * include/sys/lock.h: Add declarations for __cygwin_lock_xxx functions.
743 * include/sys/stdio.h: Add define for _ftrylockfile.
744
3271e9f9
CF
7452004-05-17 Christopher Faylor <cgf@alum.bu.edu>
746
747 * tty.cc (tty_list::init): Move hmaster initialization earlier to
748 prevent compilation error.
749
641654f7
CF
7502004-05-17 Christopher Faylor <cgf@alum.bu.edu>
751
752 Change the name "title_mutex" to "tty_mutex" throughout.
753 * tty.h (tty_list::allocate_tty): Turn argument into a boolean.
754 * tty.cc (tty_list::init): Protect entire allocation operation with
755 tty_mutex (formerly title_mutex) to protect against allocation races.
756
32880f1e
CV
7572004-05-16 Corinna Vinschen <corinna@vinschen.de>
758
759 * fhandler_socket.cc (fhandler_socket::recvfrom): Use original flags
760 value in each WSARecvFrom call.
761 (fhandler_socket::recvmsg): Ditto. Reformat slightly.
762
0c565ab3
CF
7632004-05-15 Christopher Faylor <cgf@alum.bu.edu>
764
765 * cygthread.cc (cygthread::is): Eliminate.
766 * cygthread.h (cygthread::is): Eliminate declaratin.
767 * fhandler_console.cc (fhandler_console::read): Only wait for
768 signal_arrived in the main thread.
769 * fhandler_socket.cc: Include new "wininfo.h".
770 (fhandler_socket::ioctl): Use 'winmsg' rather than 'gethwnd()'.
771 * sync.cc (muto::grab): Define new function.
772 (muto::acquire): Use tls pointer rather than tid.
773 (muto::acquired): Ditto.
774 (muto::reset): Delete.
775 (muto::release): Ditto. Also implement "close on last release".
776 * sync.h (muto::tid): Delete.
777 (muto::tls): New field.
778 (muto::ismine): Delete.
779 (muto::owner): Delete.
780 (muto::unstable): Delete.
781 (muto::reset): Delete.
782 (muto::upforgrabs): New method.
783 (muto::grab): Ditto.
784 (new_muto_name): New define.
785 * wininfo.h: New file.
786 (wininfo): New class.
787 * window.cc: Rework throughout to use winfo class for controlling
788 invisible window operation.
789 (gethwnd): Delete definition.
790 * winsup.h (gethwnd): Delete declaration.
791
71af2ed3
CF
7922004-05-15 Christopher Faylor <cgf@alum.bu.edu>
793
794 * cygheap.h: Remove some parameter names from declarations throughout.
795 (cygheap::set): Reflect changes in declaration for arguments and return
796 value from previous checkin.
797
982c8ecd
CF
7982004-05-15 Pierre Humblet <pierre.humblet@ieee.org>
799
800 * cygheap.h (cwdstuff::set): Modify return value and arguments.
801 * path.cc (chdir): Specify PC_POSIX. Do not call SetCurrentDirectory.
802 Set posix_cwd in a way that does not break find.exe. Change call to
803 cwd.set.
804 (cwdstuff::get_initial): Do not call GetCurrentDirectory here.
805 (cwdstuff::set): Call SetCurrentDirectory and GetCurrentDirectory as
806 needed.
807
8d8bc1e1
CV
8082004-05-12 Corinna Vinschen <corinna@vinschen.de>
809
810 * path.cc (path_conv::check): Don't bail out with error if path is "//".
811
191ea07a
CV
8122004-05-12 Corinna Vinschen <corinna@vinschen.de>
813
814 * cygheap.h (struct init_cygheap): Add mt_h member.
815 * fhandler_tape.cc (mt_h): Drop in favor of cygheap based handle.
816 (mtinfo_init): Use cygheap->mt_h handle. Protect it.
817
982c8ecd 8182004-05-12 Pierre Humblet <pierre.humblet@ieee.org>
8bdfa78a
PH
819
820 * tty.h: Remove the %d or %x from all cygtty strings.
821 (tty::open_output_mutex): Only declare.
822 (tty::open_input_mutex): Ditto.
823 (tty::open_mutex): New definition.
824 * fhandler_tty.cc (fhandler_tty_slave::open): Declare buf with
825 size CYG_MAX_PATH and replace __small_printf calls by shared_name.
826 * tty.cc (tty::create_inuse): Ditto.
827 (tty::get_event): Ditto.
828 (tty::common_init): Ditto.
829 (tty::open_output_mutex): New method definition.
830 (tty::open_input_mutex): Ditto.
831 (tty::open_mutex): New method.
832
191ea07a 8332004-05-11 Corinna Vinschen <corinna@vinschen.de>
0175b531
CV
834
835 * fhandler.cc (fhandler_base::open): Set file attributes to correct
836 value when creating files.
837 * path.h (class path_conv): Add write accessor for file_attributes.
838
75b5f30f
CV
8392004-05-10 Corinna Vinschen <corinna@vinschen.de>
840
841 * fhandler.h (class fhandler_socket): Add "owner" status flag.
842 * fhandler_socket.cc (wait): Take flag parameter to take FD_OOB into
843 account. Don't wait infinitely.
844 (fhandler_socket::recvfrom): Also wait for FD_OOB if socket owner.
845 (fhandler_socket::recvmsg): Ditto.
846 (fhandler_socket::sendto): Ditto.
847 (fhandler_socket::sendmsg): Ditto.
848 (fhandler_socket::fcntl): Set owner status flag if F_SETOWN with own
849 pid is called.
850
94f29ccd
PH
8512004-05-09 Pierre Humblet <pierre.humblet@ieee.org>
852
853 * environ.cc (build_env): Only try to construct required-but-missing
854 variables while issetuid.
855
ac300315 8562004-05-08 Pierre Humblet <pierre.humblet@ieee.org>
71af2ed3 857 Christopher Faylor <cgf@timesys.com>
ac300315
CF
858
859 * syscalls.cc: Include environ.h.
860 (chroot): Set errno in case of path error. Call getwinenv.
861 * environ.cc: Remove the NO_COPY attribute of conv_envvars.
862
f8aae275
CV
8632004-05-07 Corinna Vinschen <corinna@vinschen.de>
864
865 * fhandler_mem.cc (fhandler_dev_mem::fhandler_dev_mem): Move
866 initialization of "mem_size" from here...
867 (fhandler_dev_mem::open): ...to here. Fix typo in FH_PORT case.
868
367ff06e
CV
8692004-05-07 Gerd Spalink <Gerd.Spalink@t-online.de>
870
871 * fhandler_dsp.cc (fhandler_dev_dsp::Audio_out::stop): Move delete of
872 bigwavebuffer_ so that it is always cleaned, also in child processes.
873 (fhandler_dev_dsp::Audio_in::stop): Ditto.
874 (fhandler_dev_dsp::close): Stop audio play immediately in case of
875 abnormal exit.
876
3e101fb2 8772004-05-07 Corinna Vinschen <corinna@vinschen.de>
dab22ff6 878
3e101fb2
CV
879 Revert code reversion from 2004-04-03. So, revert to async I/O again.
880 * fhandler.h (status): Add "closed" flag.
881 (prepare): New method declaration.
882 (wait): Ditto.
883 (release): Ditto.
884 * fhandler_socket.cc: Don't include wsock_event.h.
885 (fhandler_socket::prepare): New method, moved from wsock_event.
886 (fhandler_socket::wait): Ditto.
887 (fhandler_socket::release): New method.
888 (fhandler_socket::recvfrom): Simplify loop.
889 (fhandler_socket::recvmsg): Ditto.
890 (fhandler_socket::sendto): Ditto.
891 (fhandler_socket::sendmsg): Ditto.
892 * net.cc: Don't include wsock_event.h.
893 (wsock_event::prepare): Remove.
894 (wsock_event::wait): Ditto.
895 * wsock_event.h: Remove.
dab22ff6 896
9b0b76ba
CF
8972004-05-06 Christopher Faylor <cgf@alum.bu.edu>
898
899 * thread.cc (pthread::create): Move postcreate call to avoid a
900 potential race.
901 (pthread::cancelable_wait): Don't allow signal interrupt unless main
902 thread.
903
1940656a
CF
9042004-05-07 Pierre Humblet <pierre.humblet@ieee.org>
905 Christopher Faylor <cgf@timesys.com>
906
dab22ff6
CF
907 * path.cc (mount_info::conv_to_posix_path): Return proper status when
908 chrooted.
1940656a 909
14017d53
PH
9102004-05-06 Pierre Humblet <pierre.humblet@ieee.org>
911
912 * path.cc (path_conv::check): Strip trailing dots and spaces and
913 return error if the final component had only dots and spaces.
914 (normalize_posix_path): Revert 2004-04-30.
71af2ed3 915 (chdir): Do not check for trailing spaces. Do not set native_dir
14017d53
PH
916 to c:\ for virtual devices. Pass only native_dir to cwd.set.
917 (cwdstuff::set): Assume posix_cwd is already normalized.
918
6767691f 9192004-05-04 Christopher Faylor <cgf@alum.bu.edu>
5cc2189c
CF
920
921 * path.cc (normalize_win32_path): Detect components with only dots.
922 Remove a final . if it follows '\\'.
923 (mount_info::conv_to_win32_path): Only backslashify the path when no
924 mount is found.
925 (chdir): Do not look for components with only dots.
926
6767691f 9272004-05-04 Pierre Humblet <pierre.humblet@ieee.org>
3dcb399b
CF
928 Christopher Faylor <cgf@alum.bu.edu>
929
930 * path.cc (is_unc_share): Remove redundant tests.
931
423ea473
CV
9322004-05-04 Corinna Vinschen <corinna@vinschen.de>
933
934 * crt0.o (mainCRTStartup): 16 byte align stack for main function.
935
ad7ba32b
CV
9362004-05-04 Corinna Vinschen <corinna@vinschen.de>
937
938 * path.cc (check_sysfile): Don't scan string twice.
939
1e98729b
CV
9402004-05-03 Corinna Vinschen <corinna@vinschen.de>
941
942 * dir.cc (writable_directory): Remove.
943 (mkdir): Remove call to writable_directory.
944 * syscalls.cc (unlink): Ditto.
945 (rename): Ditto.
946 * winsup.h (writable_directory): Remove declaration.
947
43b2d5ba
CV
9482004-04-30 Corinna Vinschen <corinna@vinschen.de>
949
950 * fhandler.cc (fhandler_base::open): Call path_conv::get_nt_native_path
951 for evaluating NT path.
952 * path.cc (normalize_posix_path): Remove trailing dots and spaces.
953 (path_conv::get_nt_native_path): New function.
954 * path.h (class path_conv): Declare get_nt_native_path method.
955
e6b21daf
CV
9562004-04-30 Corinna Vinschen <corinna@vinschen.de>
957
958 * fhandler.cc (fhandler_base::open): Fix NT native path evaluation
959 to allow opening serial ports.
960
72f3756e
CV
9612004-04-30 DJ Delorie <dj@redhat.com>
962
963 * init.cc (threadfunc_fe): Hack to make thread stacks always 16
964 byte aligned.
965
b7ede86c
CV
9662004-04-21 Yitzchak Scott-Thoennes <sthoenna@efn.org>
967
968 * syscalls.cc (lseek64): Fix debug_printf format string.
969 (truncate64): Ditto.
970
9712004-04-21 Corinna Vinschen <corinna@vinschen.de>
972
973 * fhandler.cc (fhandler_base::lseek): Force res to -1 on error.
974
9f9231b3
CF
9752004-04-20 Christopher Faylor <cgf@alum.bu.edu>
976
977 * path.cc (is_unc_share): Rename from slash_unc_prefix_p throughout.
978
9792004-04-20 Pierre Humblet <pierre.humblet@ieee.org>
980
981 * path.cc (normalize_posix_path): Process all Posix paths and map three
982 or more initial slashes to a single one. Simplify processing following
983 two initial slashes.
984 (normalize_win32_path): Make last argument non-optional and do not
985 check for NULL value.
986
c8daf998
CV
9872004-04-20 Pierre Humblet <pierre.humblet@ieee.org>
988
989 * fhandler_disk_file.cc (fhandler_base::open_fs): Change
990 set_file_attribute call to indicate that NT security isn't used.
991 (fhandler_disk_file::fchmod): Rearrange to isolate 9x related
992 statements.
993 Do not set FILE_ATTRIBUTE_SYSTEM.
994 (fhandler_disk_file::fchown): Check noop case first.
995 * fhandler.cc (fhandler_base::open9x): Remove ntsec related statements.
996 (fhandler_base::set_name): Do not set namehash.
997 * fhandler.h (fhandler_base::get_namehash): Compute and set namehash if
998 needed.
999 * syscalls.cc (access): Verify that fh is not NULL. Do not set PC_FULL.
1000 (chmod): Ditto.
1001 (chown_worker): Ditto.
1002 (stat_worker): Ditto. Verify if the path exists.
1003
1b557b43
CV
10042004-04-20 Corinna Vinschen <corinna@vinschen.de>
1005
1006 * fhandler.cc (fhandler_base::open): Remove special DEV_FLOPPY_MAJOR
1007 treatment.
1008 * fhandler_raw.cc (fhandler_dev_raw::open): Simplify write-only case.
1009 * fhandler_tape.cc (fhandler_dev_tape::raw_write): Add accidentally
1010 dropped condition.
1011
fc0ac9df
CV
10122004-04-20 Corinna Vinschen <corinna@vinschen.de>
1013
1014 * fhandler.cc (fhandler_base::open): Add FILE_READ_ATTRIBUTES when
1015 only GENERIC_WRITE access is requested.
1016
f9e8db24
CV
10172004-04-19 Corinna Vinschen <corinna@vinschen.de>
1018
1019 * include/cygwin/mtio.h (GMT_ASYNC): New define.
1020 (MT_ST_ASYNC_WRITES): Remove "Not supported" comment.
1021
0c8731b8
CV
10222004-04-19 Corinna Vinschen <corinna@vinschen.de>
1023
1024 * errno.cc (errmap): Handle ERROR_IO_PENDING.
1025 * fhandler.cc (fhandler_base::open): Make tape I/O asynchronous.
1026 * fhandler.h (class fhandler_dev_tape): Add mt_evt member.
1027 * fhandler_tape.cc (mtinfo_drive::initialize): Initialize async_writes.
1028 (mtinfo_drive::close): Handle async writes.
1029 (mtinfo_drive::read): Add mt_evt parameter. Use overlapped I/O.
1030 (mtinfo_drive::async_wait): New function.
1031 (mtinfo_drive::write): Add mt_evt parameter. Use overlapped I/O.
1032 Handle async writes.
1033 (mtinfo_drive::_set_pos): Handle async writes.
1034 (mtinfo_drive::set_partition): Ditto.
1035 (mtinfo_drive::prepare): Ditto.
1036 (mtinfo_drive::get_status): Drop useless "else". Handle async_writes
1037 flag.
1038 (mtinfo_drive::set_options): Handle async_writes flags.
1039 (fhandler_dev_tape::close): Close mt_evt handle.
1040 (fhandler_dev_tape::raw_read): Create mt_evt handle and use in call
1041 to mtinfo_drive::read.
1042 (fhandler_dev_tape::raw_write): Create mt_evt handle and use in call
1043 to mtinfo_drive::write.
1044 * mtinfo.h (MTINFO_VERSION): Bump.
1045 (enum dirty_state): Add async_write_pending state.
1046 (class mtinfo_drive): Add OVERLAPPED struct "ov". Add async_writes
1047 flag.
1048 (mtinfo_drive::async_wait): Add declaration.
1049 (mtinfo_drive::read): Add mt_evt parameter.
1050 (mtinfo_drive::write): Ditto.
1051
1052 * registry.cc (load_registry_hive): Call enable_restore_privilege
1053 instead of set_process_privilege.
1054
1facc71a
CV
10552004-04-19 Corinna Vinschen <corinna@vinschen.de>
1056
1057 * fhandler_tape.cc (mtinfo_drive::_set_pos): Take additional dont_wait
1058 parameter. Use in call to SetTapePosition.
1cda1322 1059 (mtinfo_drive::set_pos): Accommodate _set_pos calls to above change.
1facc71a
CV
1060 (mtinfo_drive::set_partition): Ditto.
1061 * mtinfo.h (mtinfo_drive::_set_pos): Change declaration accordingly.
1062
e8597065
CV
10632004-04-16 Corinna Vinschen <corinna@vinschen.de>
1064
1065 * autoload.cc (NtCreateFile): Add.
1066 * dir.cc (mkdir): Change set_file_attribute call to indicate that
1067 NT security isn't used.
1068 * fhandler.cc (fhandler_base::open_9x): New method, created from
1069 fhandler_base::open.
1070 (fhandler_base::open): Rearrange to use NtCreateFile instead of
1071 CreateFile.
1072 * fhandler.h (enum query_state): Redefine query_null_access to
1073 query_stat_control. query_null_access isn't allowed in NtCreateFile.
1074 (fhandler_base::open_9x): Declare.
1075 * fhandler_disk_file.cc (fhandler_base::fstat_fs): Use
1076 query_stat_control first, query_read_control if that fails.
1077 (fhandler_disk_file::fchmod): Call enable_restore_privilege before
1078 trying to open for query_write_control. Don't fall back to
1079 opening for query_read_control.
1080 (fhandler_disk_file::fchown): Ditto.
1081 (fhandler_disk_file::facl): Only request restore privilege and query
1082 access necessary for given cmd.
1083 * fhandler_raw.cc (fhandler_dev_raw::open): Call fhandler_base::open
1084 instead of opening device here.
1085 * ntdll.h (NtCreateFile): Declare.
1086 * path.cc (symlink_worker): Change set_file_attribute call to indicate
1087 that NT security isn't used.
1088 * sec_acl.cc (getacl): Fix bracketing.
1089 * sec_helper.cc (enable_restore_privilege): New function.
1090 * security.cc (str2buf2uni_cat): New function.
1091 (write_sd): Don't request restore permission here.
1092 * security.h (set_process_privileges): Drop stale declaration.
1093 (str2buf2uni): Declare.
1094 (str2buf2uni_cat): Declare.
1095 (enable_restore_privilege): Declare.
1096 * syscalls.cc (fchown32): Return immediate success on 9x.
1097
ee0afa42
CF
10982004-04-15 Christopher Faylor <cgf@alum.bu.edu>
1099
1100 * autoload.cc (dll_chain1): Rename to dll_chain. Remove old dll_chain
1101 code.
1102 (wsock_init): Avoid unneeded winsock_active tests.
1103 * winsup.h (winsock_active): Delete.
1104
703b16e3
CV
11052004-04-15 Corinna Vinschen <corinna@vinschen.de>
1106
4be0ce32 1107 * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Try opening
703b16e3
CV
1108 in query_read mode if query_write fails.
1109 * fhandler_disk_file.cc (fhandler_disk_file::fchown): Ditto.
1110 * fhandler_disk_file.cc (fhandler_disk_file::facl): Ditto.
1111
e84c7766
CV
11122004-04-14 Corinna Vinschen <corinna@vinschen.de>
1113
1114 * ntdll.h: Fix copyright date.
ca1b76b8 1115 * sec_acl.cc (acl_worker): Delete allocated fhandler.
e84c7766
CV
1116 * syscalls.cc (chown_worker): Ditto.
1117 (chmod): Ditto.
1118 (stat_worker): Use get_namehash instead of hash_path_name.
1119
a653f600
CV
11202004-04-14 Corinna Vinschen <corinna@vinschen.de>
1121
1122 * sec_acl.cc (getacl): Avoid compiler warning.
1123 * security.cc (write_sd): Ditto. Fix error handling.
1124
0c5f00f9
CV
11252004-04-14 Corinna Vinschen <corinna@vinschen.de>
1126
1127 * syscalls.cc (fstat64): Use get_namehash instead of hash_path_name.
1128
e3d1d515
CV
11292004-04-14 Corinna Vinschen <corinna@vinschen.de>
1130
1131 * fhandler.cc (fhandler_base::open): Simplify access evaluation
1132 expression.
1133 (fhandler_base::facl): New method.
1134 * fhandler.h: Declare facl method in fhandler_base,
1135 fhandler_disk_file and fhandler_virtual.
1136 * fhandler_disk_file.cc (fhandler_disk_file::facl): New method.
1137 * fhandler_virtual.cc (fhandler_virtual::facl): New method.
1138 * sec_acl.cc: Remove forward declaration for aclsort32 and acl32.
1139 (setacl): Remove static. Add and use handle parameter.
1140 (getacl): Ditto.
1141 (acl_worker): Reorganize to call fhandler's facl method eventually.
1142 (facl32): Ditto.
1143 * security.cc (get_nt_object_security): Remove static.
1144 * security.h: Add extern declarations for get_nt_object_security,
1145 aclsort32, acl32, getacl and setacl.
1146
ddf9c4a7
CV
11472004-04-14 Corinna Vinschen <corinna@vinschen.de>
1148
1cda1322 1149 * fhandler.cc (fhandler_base::open): Accommodate query_write_control
ddf9c4a7
CV
1150 query_state.
1151 (fhandler_base::fchown): New method.
1152 * fhandler.h: Declare fchown method in fhandler_base,
1153 fhandler_disk_file and fhandler_virtual.
1154 (enum query_state): Add query_write_control.
1155 * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Set query_state
1156 to query_write_control. Only remove FILE_ATTRIBUTE_READONLY if not
1157 setting security descriptor.
1158 (fhandler_disk_file::fchown): New method.
1159 * fhandler_virtual.cc (fhandler_virtual::fchown): New method.
1160 * sec_acl.cc (setacl): Call write_sd with additional handle attribute.
1161 * security.cc (write_sd): Take handle argument. Only request owner
1162 if getting SE_RESTORE_NAME privilege failed. Only open file if
1163 NtSetSecurityObject failed or handle is NULL.
1164 (set_nt_attribute): Call write_sd with additional handle attribute.
1165 * security.h (write_sd): Declare with additional handle argument.
e3d1d515
CV
1166 * syscalls.cc (chown_worker): Reorganize to call fhandler's fchown
1167 method eventually.
1168 (fchown): Ditto.
ddf9c4a7 1169
f4ae6dc6
CV
11702004-04-14 Corinna Vinschen <corinna@vinschen.de>
1171
1172 * autoload.cc (NtSetSecurityObject): Add.
1173 * fhandler_disk_file.cc (fhandler_disk_file::fchmod): Only request
1174 READ_CONTROL rights when opening the file.
1175 * ntdll.h (NtSetSecurityObject): Add declaration.
1176 * security.cc (write_sd): Call NtSetSecurityObject instead of
1177 BackupWrite.
1178 (get_nt_object_security): Don't free security descriptor here.
1179
11802004-04-14 Corinna Vinschen <corinna@vinschen.de>
1181
1182 * syscalls.cc (ttyname): Use buffer of length TTY_NAME_MAX + 1.
1183 * sysconf.cc (sysconf): Handle _SC_TTY_NAME_MAX request.
1184 * include/limits.h: Define TTY_NAME_MAX and _POSIX_TTY_NAME_MAX.
1185
93d66ddc
CV
11862004-04-14 Corinna Vinschen <corinna@vinschen.de>
1187
1188 * cygwin.din: Export rand_r and ttyname_r.
1189 * syscalls.cc (ttyname_r): New function.
1190 (ttyname): Move functionality to ttyname_r. Call it from here.
1191 * include/cygwin/version.h: Bump API minor number.
1192
b923181e
PH
11932004-04-14 Pierre Humblet <pierre.humblet@ieee.org>
1194
93d66ddc 1195 * path.h (path_conv::set_symlink): Add argument.
4be0ce32 1196 (path_conv::get_symlink_length): New method.
93d66ddc
CV
1197 (path_conv::symlink_length): New member.
1198 * path.cc (path_conv::check): Pass symlen to set_symlink.
1199 * fhandler_disk_file.cc (fhandler_base::fstat_helper): For symlinks
4be0ce32 1200 set st_size from get_symlink_length.
b923181e 1201
29b6b8ca
CV
12022004-04-13 Corinna Vinschen <corinna@vinschen.de>
1203
1204 * security.cc (set_nt_attribute): Only call get_nt_object_security
1205 if handle is NULL.
1206
854c8700
CV
12072004-04-13 Corinna Vinschen <corinna@vinschen.de>
1208
1209 * dir.cc (mkdir): Call set_file_attribute with additional handle
1210 argument.
1211 * fhandler.cc (fhandler_base::fchmod): New method.
1212 * fhandler.h: Declare fchmod method in fhandler_base,
1213 fhandler_disk_file and fhandler_virtual.
1214 * fhandler_disk_file.cc (fhandler_disk_file::fchmod): New method.
1215 (fhandler_base::open_fs): Call set_file_attribute with additional
1216 handle argument.
1217 * fhandler_virtual.cc (fhandler_virtual::fchmod): New method.
1218 * path.cc (symlink_worker): Call set_file_attribute with additional
1219 handle argument.
1220 * security.cc (get_nt_object_security): New function.
1221 (get_nt_object_attribute): Call get_nt_object_security.
1222 (set_nt_attribute): Add handle argument. Call get_nt_object_security
1223 first, read_sd only if that fails.
1224 (set_file_attribute): Add handle argument.
1225 * security.h (set_file_attribute): Declare with additional handle
1226 argument.
1227 * syscalls.cc (stat_suffixes): Move to beginning of file.
1228 (chown_worker): Call set_file_attribute with additional handle argument.
1229 (chmod): Reorganize to call fhandler's fchmod method eventually.
1230 (fchmod): Ditto.
1231
71ffba49
CV
12322004-04-13 Corinna Vinschen <corinna@vinschen.de>
1233
1234 * autoload.cc (NtQuerySecurityObject): Add.
1235 * ntdll.h (STATUS_BUFFER_TOO_SMALL): Add definition.
1236 (NtQuerySecurityObject): Add declaration.
1237 * security.cc (get_nt_object_attribute): Always use
1238 NtQuerySecurityObject to retrieve security descriptor.
1239
37194b25
CV
12402004-04-13 Gerd Spalink <Gerd.Spalink@t-online.de>
1241
1242 * fhandler_dsp.cc (fhandler_dev_dsp::Audio_out::stop): Add optional
1243 boolean argument so that playing can be stopped without playing
1244 pending buffers.
1245 (fhandler_dev_dsp::ioctl): Stop playback immediately for
1246 SNDCTL_DSP_RESET. Do not reset audio parameters in this case.
1247 Add support for ioctl SNDCTL_DSP_GETISPACE.
1248 (fhandler_dev_dsp::Audio_out::emptyblocks): Now returns the number of
1249 completely empty blocks.
1250 (fhandler_dev_dsp::Audio_out::buf_info): p->fragments is now the number
1251 of completely empty blocks. This conforms with the OSS specification.
1252 (fhandler_dev_dsp::Audio_out::parsewav): Ignore wave headers that are
1253 not aligned on four byte boundary.
1254 (fhandler_dev_dsp::Audio_in::buf_info): New, needed for
1255 SNDCTL_DSP_GETISPACE.
1256
825b3882
CV
12572004-04-13 Corinna Vinschen <corinna@vinschen.de>
1258
1259 * winsup.h (IMPLEMENT_STATUS_FLAG): New macro to define status flag
1260 accessor methods unambiguously.
1261 * fhandler.h: Use IMPLEMENT_STATUS_FLAG throughout where possible.
1262 * fhandler_termios.cc (fhandler_termios::tcinit): Call corrected
1263 accessor for initialized status flag.
1264 * mtinfo.h (class mtinfo_drive): Use IMPLEMENT_STATUS_FLAG throughout.
1265 * path.cc (fs_info::update): Remove duplicate call to flags().
1266 * path.h (struct fs_info): Use IMPLEMENT_STATUS_FLAG where possible.
1267 (path_conv::is_auto_device): Fix spacing.
1268 * tty.h (class tty_min): Use IMPLEMENT_STATUS_FLAG throughout.
1269
d84a4e2e
CF
12702004-04-12 Christopher Faylor <cgf@alum.bu.edu>
1271
1272 * thread.cc (pthread::thread_init_wrapper): Wait later to get more
1273 parallel behavior.
1274
3e78b5d7
CF
12752004-04-12 Christopher Faylor <cgf@alum.bu.edu>
1276
1277 * thread.cc (pthread::create): Use thread mutex to control
1278 synchronization rather than creating a suspended thread. Wait for
1279 "cancellation event" to indicate that started thread has been properly
1280 initialized.
1281 (pthread::thread_init_wrapper): Use set_tls_self_pointer() to set tid
1282 and cygtls. Signal with cancel_event when done.
1283
b96dbd20
PH
12842004-04-12 Pierre Humblet <pierre.humblet@ieee.org>
1285
3e78b5d7 1286 * path.cc (path_conv::check): Fix "tail filling" logic.
b96dbd20 1287
1ed8d187
CF
12882004-04-11 Christopher Faylor <cgf@alum.bu.edu>
1289
1290 * cygheap.h: Replace inexplicably removed closing brace.
1291
0cb38eb5
CF
12922004-04-11 Christopher Faylor <cgf@alum.bu.edu>
1293
1294 * cygheap.h (CYGHEAP_SLOP): Reduce drastically to avoid collisions.
1295
3301015b
CF
12962004-04-11 Pierre Humblet <pierre.humblet@ieee.org>
1297
1298 * dtable.cc (dtable::extend): Change order of memcpy and cfree.
1299
66d9ac39
CV
13002004-04-10 Corinna Vinschen <corinna@vinschen.de>
1301
1302 * syscalls.cc (sync): Define void according to SUSv3.
1303
bb090650
CV
13042004-04-10 Corinna Vinschen <corinna@vinschen.de>
1305
1306 * sec_acl.cc (setacl): Use correct offset when trying to combine
1307 standard and default entry of same type.
1308
7224437c
CV
13092004-04-10 Pierre Humblet <pierre.humblet@ieee.org>
1310
1311 * fhandler.cc (rootdir): Add and use second argument.
1312 * winsup.h (rootdir): Add second argument in declaration.
1313 * path.cc (fs_info::update): Modify call to rootdir.
1314 * syscalls.cc (check_posix_perm): Ditto.
1315 (statfs): Ditto. Move syscall_printf near top.
1316
56551a9b
CV
13172004-04-10 Corinna Vinschen <corinna@vinschen.de>
1318
1319 * Use new unified status_flag accessor methods from classes fhandler_*,
1320 tty_min, mtinfo and fs_info thoroughout.
1321 * fhandler.h: Redefine all set_close_on_exec methods to take a bool
1322 argument.
1323 (enum conn_state): Rename from connect_state.
1324 (class fhandler_base): Rename some status flags to align with
1325 accessor method names. Drop encoded flag entirely. Unify status
1326 accessor methods. Const'ify all read accessor methods.
1327 (class fhandler_socket): Ditto.
1328 (class fhandler_dev_raw): Ditto.
1329 * fhandler_disk_file.cc (fhandler_base::fstat_fs): Use fs.fs_is_fat()
1330 instead of evaluating FATness of file system here.
1331 (fhandler_disk_file::opendir): Drop call to set_encoded().
1332 (fhandler_disk_file::readdir): Use pc.isencoded() directly.
1333 * mtinfo.h (class mtinfo_drive): Const'ify all read accessor methods.
1334 * path.cc (fsinfo_cnt): Add.
1cda1322 1335 (fs_info::update): Accommodate class changes. Evaluate file system
56551a9b
CV
1336 name specific flags right here. Add thread safety for reading and
1337 writing global fsinfo array.
1338 * path.h (enum path_types): Drop values for flags kept in fs already.
1339 (struct fs_info): Move status informatin into private struct type
1340 status_flags. Add accessor methods. Remove path and file system
1341 name string arrays in favor of status bits.
1342 (class path_conv): Use new fs_info status information where
1343 appropriate.
1344 (path_conf::fs_has_ea): Rename from fs_fast_ea.
1345 (path_conf::fs_has_acls): New method.
1346 (path_conf::root_dir): Remove.
1347 (path_conf::volname): Remove.
1348 * syscalls (statfs): Evaluate root dir locally.
1349 * tty.h (class tty_min): Unify status accessor methods. Const'ify
1350 all read accessor methods.
1351
56a188d1
CF
13522004-04-09 Thomas Pfaff <tpfaff@gmx.net>
1353
1354 * thread.h (pthread::init_mainthread): Remove parameter forked.
1355 (pthread::set_tls_self_pointer): New static function.
1356 * thread.cc (MTinterface::fixup_after_fork): Change call to
1357 pthread::init_mainthread.
1358 (pthread::init_mainthread): Remove parameter forked. Simplify thread
1359 self pointer handling.
1360 (pthread::self): Set thread self pointer to null_pthread if thread has
1361 not been initialized.
1362 (pthread::set_tls_self_pointer): New static function.
1363
60210cc7
CF
13642004-04-05 Pierre Humblet <pierre.humblet@ieee.org>
1365
1366 * path.cc (path_conv::check): Optimize symlink replacements.
1367
13682004-04-09 Pierre Humblet <pierre.humblet@ieee.org>
1369
1370 * path.cc (normalize_posix_path): Add "tail" argument and set it.
1371 Always have a final slash for directories. Pass 3rd argument to
1372 normalize_win32_path.
1373 (path_conv::check): Pass tail to normalize_posix_path. Set
1374 need_directory and remove final slash after that call. Remove last
1375 argument to mount_table->conv_to_win32_path(). Remove noop dostail
1376 check. Remove fs.update() from inner loop. Improve tail finding
1377 search.
1378 (normalize_win32_path): Add and set tail argument.
1379 (mount_item::build_win32): Avoid calling strcpy.
1380 (mount_info::conv_to_win32_path): Remove third argument and simplify
1381 because the source is normalized. Keep /proc path in Posix form. Call
1382 win32_device_name() only once.
1383 (mount_info::conv_to_posix_path): Add and use 3rd argument to
1384 normalize_win32_path to avoid calling strlen.
1385 (cwdstuff::set): Add 3rd argument to normalize_posix_path and remove
1386 final slash if any.
1387 * shared_info.h (mount_info::conv_to_win32_path): Remove last argument
1388 in declaration.
1389
ff084343
CV
13902004-04-09 Corinna Vinschen <corinna@vinschen.de>
1391
1392 * fhandler.h (class fhandler_dev_raw): Move status bits into protected
1393 bitfield struct type status_flags. Drop unused has_written bit.
1394 Add accessor methods.
1395 (fhandler_dev_raw::clear): Remove.
1396 (fhandler_dev_raw::reset_devbuf): Remove.
1397 * fhandler_floppy.cc (fhandler_dev_floppy::lseek): Use accessor method
1398 for is_writing.
1399 * fhandler_raw.cc: Use status accessor methods throughout.
1400 (fhandler_dev_raw::clear): Remove.
1401 (fhandler_dev_raw::fhandler_dev_raw): Drop clear call.
1402 (fhandler_dev_raw::~fhandler_dev_raw): Ditto.
1403 * fhandler_tape.cc: Use mtinfo::status accessor methods throughout.
1404 (mtinfo_drive::close): Fix conditional to enable BSD semantics
1405 correctly.
1406 (mtinfo_drive::get_status): Rename from mtinfo_drive::status.
1407 * mtinfo.h (class mtinfo_drive): Move status bits into private bitfield
1408 struct type status_flags. Add accessor methods.
1409 Rename status method to get_status.
1410
535309a6
CV
14112004-04-09 Corinna Vinschen <corinna@vinschen.de>
1412
1413 * path.cc (fsinfo): Global storage for file system information.
1414 (fs_info::update): Store file system information also in fsinfo and
1415 short circuit GetVolumeInformation by using alredy stored file system
1416 information.
1417
7aa88267
CV
14182004-04-09 Corinna Vinschen <corinna@vinschen.de>
1419
1420 * fhandler.h (fhandler_base::status): Declare private.
1421 (fhandler_base::open_status): Ditto.
1422 (class fhandler_socket): Move status bits into private bitfield struct
1423 type status_flags. Change accessor methods appropriately.
1cda1322 1424 * fhandler_socket.cc (fhandler_socket::fhandler_socket): Accommodate
7aa88267
CV
1425 above status bit changes.
1426 * tty.h: Remove status bit enumerator.
1427 (TTYISSETF): Remove.
1428 (TTYSETF): Remove.
1429 (TTYCLEARF): Remove.
1430 (TTYCONDSETF): Remove.
1431 (tty_min::status): Define as private bitfield struct type status_flags.
1432 Add appropriate accessor methods.
1433 * fhandler_console.cc: Use tty_min::status accessor methods throughout.
1434 * fhandler_termios.cc: Ditto.
1435 * winsup.h (__ISSETF): Remove.
1436 (__SETF): Remove.
1437 (__CLEARF): Remove.
1438 (__CONDSETF): Remove.
1439
b79f85c2
CV
14402004-04-09 Corinna Vinschen <corinna@vinschen.de>
1441
1442 * fhandler.cc (fhandler_base::write): Use bool parameter in calls to
1443 set_did_lseek.
1cda1322 1444 (fhandler_base::fhandler_base): Accommodate new status and open_status
b79f85c2
CV
1445 constructor.
1446 * fhandler.h: Remove status bit enumerator.
1447 (FHDEVN): Remove.
1448 (FHISSETF): Remove.
1449 (FHSETF): Remove.
1450 (FHCLEARF): Remove.
1451 (FHCONDSETF): Remove.
1452 (FHSTATOFF): Remove.
1453 (UNCONNECTED, CONNECT_PENDING, CONNECTED): Substitute by enum
1454 connect_state.
3e78b5d7 1455 (fhandler_base::status): Define as bitfield struct type status_flags.
1cda1322 1456 Remove unused flags entirely. Accommodate all status access methods.
b79f85c2
CV
1457 (open_status): Define as bitfield struct type status_flags.
1458 (fhandler_socket): Move socket related status bits to here. Redefine
1cda1322 1459 had_connect_or_listen to be part of these status bits. Accommodate
b79f85c2
CV
1460 related access methods.
1461 * fhandler_disk_file.cc (fhandler_base::fstat_helper): Use pc.issymlink
3e78b5d7 1462 instead of dropped method get_symlink_p.
b79f85c2
CV
1463 (fhandler_base::open_fs): Remove setting dropped status flags.
1464 * fhandler_socket.cc: Use values from enum connect_state throughout.
1465 (fhandler_socket::fhandler_socket): Initialize status bits.
1466 * fhandler_virtual.cc (fhandler_virtual::open): Remove setting dropped
1467 status flags.
1468 * net.cc: Use values from enum connect_state throughout.
1469 * select.cc: Ditto.
1470 * shared_info.h: Protect struct console_state using _FHANDLER_H_
1471 instead of FHDEVN.
1472
00dd058f
CV
14732004-04-09 Corinna Vinschen <corinna@vinschen.de>
1474
1475 * security.cc (get_file_attribute): Fix conditional.
1476
6ea87bc1
CF
14772004-04-08 Christopher Faylor <cgf@bosbc.com>
1478
1479 * child_info.h: Update CHILD_INFO_MAGIC after 2004-04-03 change.
1480
6eee18ea
CV
14812004-04-08 Corinna Vinschen <corinna@vinschen.de>
1482
1483 * path.cc (hash_path_name): Replace hash algorithm with SDBM.
1484
14852004-04-08 Corinna Vinschen <corinna@vinschen.de>
a9a5b2ea
CV
1486
1487 * fhandler.cc (fhandler_base::open): Set query access mode according
1488 to query_open setting.
1489 (fhandler_base::fhandler_base): Initialize query_open.
1490 * fhandler.h (FH_QUERYOPEN): Drop.
1491 (enum query_state): Add.
1492 (class fhandler_base): Add query_open member.
1493 (fhandler_base::get_query_open): Redefine to use query_open.
1494 (fhandler_base::set_query_open): Ditto.
1495 * fhandler_disk_file.cc (fhandler_base::fstat_fs): Remove O_DIROPEN
1496 from open_flags since it's added in open_fs anyway. Remove
1497 query_open_already. Use new query_open settings. Rearrange slightly.
1498 (fhandler_base::fstat_helper): Add get_io_handle as parameter to
1499 get_file_attribute.
1500 * security.cc (get_nt_object_attribute): Make returning an int.
1501 Return -1 on error, 0 otherwise.
1502 (get_file_attribute): Take an object handle as argument. Move down
1503 to allow calling get_nt_object_attribute in case a non-NULL handle
1504 is given.
1505 * security.h (get_file_attribute): Add handle to argument list.
1cda1322 1506 * syscalls.cc (chown_worker): Accommodate new definition of
a9a5b2ea
CV
1507 get_file_attribute.
1508
284a55c3
CF
15092004-04-07 Pierre Humblet <pierre.humblet@ieee.org>
1510
1511 * path.cc (path_prefix_p): Optimize test order.
1512
49294f00
CV
15132004-04-06 Corinna Vinschen <corinna@vinschen.de>
1514
1515 * Makefile.in (EXTRALIBS): Add libtextreadmode.a.
1516 (INSTOBJS): Add textreadmode.o.
1517 * textreadmode.c: New file.
1518
15192004-04-06 Corinna Vinschen <corinna@vinschen.de>
b8eac1de
CV
1520
1521 * fhandler_disk_file.cc (fhandler_base::fstat_helper): Request
1522 compressed size only if the matching attributes are set. Use
1523 NtQueryInformationFile instead of GetCompressedFileSize.
1524 (fhandler_base::fstat_by_handle): Remove NT 3.5 cruft since
1525 local.dwVolumeSerialNumber isn't used subsequently.
1526 * ntdll.h: Add typedefs for FILE_COMPRESSION_INFORMATION and
1527 FILE_INFORMATION_CLASS.
1528
49294f00 15292004-04-06 Corinna Vinschen <corinna@vinschen.de>
cffd8968
CV
1530
1531 * fhandler_raw.cc (fhandler_dev_raw::open): Actually use "options".
1532
7e57d6d2
CV
15332004-04-04 Gerd Spalink <Gerd.Spalink@t-online.de>
1534
1535 * fhandler_dsp.cc (fhandler_dev_dsp::ioctl): Add implementation
1536 for ioctl codes SNDCTL_DSP_CHANNELS and SNDCTL_DSP_GETCAPS.
1537
1b957b1c 15382004-04-03 Christopher Faylor <cgf@bosbc.com>
129c8a0e 1539
7e57d6d2
CV
1540 * child_info.h (child_info::cygheap_reserve_sz): Rename from
1541 cygheap_alloc_sz.
129c8a0e
CF
1542 * cygheap.cc: Rename alloc_sz to reserve_sz throughout.
1543
321ddf24
CV
15442004-04-03 Corinna Vinschen <corinna@vinschen.de>
1545
1546 * fhandler.h (class fhandler_socket): Remove has_been_closed member.
1547 * fhandler_socket.cc (fhandler_socket::recvfrom): Revert to
1548 overlapped I/O.
1549 (fhandler_socket::recvmsg): Ditto.
1550 (fhandler_socket::sendto): Ditto.
1551 (fhandler_socket::sendmsg): Ditto.
1552 * net.cc (wsock_event::prepare): Ditto.
1553 (wsock_event::wait): Ditto. Evaluate overlapped result also after
1554 calling CancelIo (thanks to Patrick Samson <p_samson@yahoo.com>).
1555 (wsock_event::release): Remove.
1556 * wsock_event.h: Revert to overlapped I/O.
1557
f5da8224
CV
15582004-04-02 Corinna Vinschen <corinna@vinschen.de>
1559
1560 * net.cc (wsock_event::release): Use NULL handle in call to
1561 WSAEventSelect to resolve KB 168349.
1562
b6edea61
CV
15632004-04-01 Corinna Vinschen <corinna@vinschen.de>
1564
1565 * fhandler_socket.cc (fhandler_socket::recvfrom): Rearrange loop
1566 so that WSARecvFrom is always called before waiting.
1567 (fhandler_socket::recvmsg): Ditto.
1568
4cfacffa
CV
15692004-04-01 Corinna Vinschen <corinna@vinschen.de>
1570
1571 * net.cc (wsock_event::wait): Make wsa_err an int. Don't set
1572 ret to 0 if any error has happened.
1573
54aefcc6
CV
15742004-04-01 Corinna Vinschen <corinna@vinschen.de>
1575
1576 * fhandler_socket.cc (fhandler_socket::sendto): Drop out of loop if
1577 has_been_closed gets set.
1578 (fhandler_socket::sendmsg): Ditto.
1579 * net.cc (wsock_event::wait): Don't initialize evts. Don't try to
1580 evaluate network events if WSAEnumNetworkEvents fails.
1581 (wsock_event::release): Save last WSA error and set it again unless
1582 resetting to blocking socket fails.
1583 * wsock_event.h (class wsock_event): Remove destructor.
1584
fbba4780
CV
15852004-03-31 Corinna Vinschen <corinna@vinschen.de>
1586
1587 * fhandler_tape.cc (mtinfo::initialize): Fix fatal error message.
1588
455bbeae
CV
15892004-03-31 Corinna Vinschen <corinna@vinschen.de>
1590
1591 * fhandler_socket.cc (fhandler_socket::recvfrom): Always initialize
1592 ret to 0 when using in Winsock call.
1593 (fhandler_socket::recvmsg): Ditto.
1594 (fhandler_socket::sendto): Ditto.
1595 (fhandler_socket::sendmsg): Ditto.
1596
decd3e5d
CV
15972004-03-31 Corinna Vinschen <corinna@vinschen.de>
1598
1599 * fhandler_tape.cc (mtinfo_drive::get_pos): Only set partition if
1600 GetTapePosition returned a non-zero partition number.
1601 (mtinfo_drive::create_partitions): Reinitialize to partition 0.
1602 Support TAPE_DRIVE_INITIATOR and TAPE_DRIVE_FIXED partitioning.
1603 (mtinfo_drive::set_partition): Initialize new partition.
1604 (mtinfo_drive::status): Readd accidentally dropped setting of mt_resid.
1605
1606 * net.cc (wsock_event::prepare): Always print debug output in case
1607 of error.
1608
93ba1204
CV
16092004-03-31 Corinna Vinschen <corinna@vinschen.de>
1610
1611 * fhandler_socket.cc (fhandler_socket::sendmsg): Add SIGPIPE handling.
1612
4450172a
CV
16132004-03-31 Corinna Vinschen <corinna@vinschen.de>
1614
1615 * fhandler_socket.cc (fhandler_socket::recvfrom): Initialize res to
1616 SOCKET_ERROR. Use SOCKET_ERROR instead of -1 throughout.
1617 (fhandler_socket::recvmsg): Ditto.
1618 (fhandler_socket::sendto): Ditto.
1619 (fhandler_socket::sendmsg): Ditto.
1620 * net.cc (wsock_event::prepare): Call WSASetLastError instead of
1621 SetLastError.
1622 (wsock_event::wait): Use SOCKET_ERROR instead of -1.
1623
c83bdbf6
CF
16242004-03-30 Thomas Pfaff <tpfaff@gmx.net>
1625
1626 * thread.h (pthread::init_mainthread): Add parameter forked. Set
1627 forked default to false..
1628 * thread.cc (MTinterface::fixup_after_fork): Call
1629 pthread::init_mainthread with forked = true.
1630 (pthread::init_mainthread): Add parameter forked. Do not change thread
1631 self pointer when forked.
1632
5c7b73ed
CV
16332004-03-30 Corinna Vinschen <corinna@vinschen.de>
1634
1635 * shm.cc (shmat): If shmid is unknown, call a special variation
1636 of shmget to retrieve the shared memory segment from Cygserver
1637 instead of failing immediately.
3e78b5d7 1638 * include/cygwin/ipc.h (IPC_KEY_IS_SHMID): New internal flag for
5c7b73ed
CV
1639 shmget when called from shmat.
1640
81f5200b
CV
16412004-03-29 Corinna Vinschen <corinna@vinschen.de>
1642
1643 * fhandler.h (class fhandler_socket): Add has_been_closed member.
1644 * fhandler_socket.cc (fhandler_socket::fhandler_socket): Initialize
1645 has_been_closed to 0.
1646 (fhandler_socket::recvfrom): Use new asynchronous I/O driven
1647 wsock_event methods.
1648 (fhandler_socket::recvmsg): Ditto.
1649 (fhandler_socket::sendto): Ditto.
1650 (fhandler_socket::sendmsg): Ditto.
1651 * net.cc (wsock_event::prepare): Reimplement using asynchronous I/O.
1652 (wsock_event::wait): Ditto.
1653 (wsock_event::release): New method.
1cda1322 1654 * wsock_event.h (class wsock_event): Remove ovr member. Accommodate
81f5200b
CV
1655 new implementation of prepare and wait methods. Add release method.
1656
c7f060d0
CF
16572004-03-29 Thomas Pfaff <tpfaff@gmx.net>
1658
1659 * thread.cc (pthread::atforkprepare): Call
1660 MT_INTERFACE->fixup_before_fork at the end of atforkprepare.
1661
2b2cc75f
CV
16622004-03-29 Corinna Vinschen <corinna@vinschen.de>
1663
1664 * net.cc (wsock_event::wait): Change scope of local "len" variable.
1665
83216c72
CV
16662004-03-28 Corinna Vinschen <corinna@vinschen.de>
1667
1668 * shm.cc (shmat): Return (void *) -1 on error instead of NULL.
1669
f19da5f7
CF
16702004-03-27 Christopher Faylor <cgf@redhat.com>
1671
1672 * fhandler_nodevice.cc (fhandler_nodevice::open): Assume that errno has
1673 already been set if pc.error is nonzero.
1674
58ea4db2
CF
16752004-03-26 Christopher Faylor <cgf@redhat.com>
1676
1677 * cygheap.cc (cygheap_fixup_in_child): Improve strace output.
1678
dee56309
CV
16792004-03-26 Corinna Vinschen <corinna@vinschen.de>
1680
1681 * errno.cc (errmap): Map ERROR_SHARING_VIOLATION to EBUSY,
1682 ERROR_EOM_OVERFLOW and ERROR_NO_DATA_DETECTED to EIO. Add mappings
1683 for ERROR_NO_MEDIA_IN_DRIVE, ERROR_DEVICE_REQUIRES_CLEANING and
1684 ERROR_DEVICE_DOOR_OPEN.
1685 * fhandler.h (class fhandler_dev_raw): Drop varblkop member.
1686 (fhandler_dev_raw::is_eom): De-virtualize.
1687 (fhandler_dev_raw::is_eof): Ditto.
1688 (class fhandler_dev_tape): Drop lasterr and dp member. Add mt_mtx
1689 member. Drop all private methods formerly used by ioctl.
1690 (fhandler_dev_tape::is_rewind_device): Use get_minor for clarity.
1691 (fhandler_dev_tape::driveno): New method.
1692 (fhandler_dev_tape::drive_init): New method.
1693 (fhandler_dev_tape::clear): Remove method.
1694 (fhandler_dev_tape::is_eom): Ditto.
1695 (fhandler_dev_tape::is_eof): Ditto.
1696 (fhandler_dev_tape::write_file): Ditto.
1697 (fhandler_dev_tape::read_file): Ditto.
1698 (fhandler_dev_tape::_lock): New method.
1699 (fhandler_dev_tape::unlock): New method.
1700 (fhandler_dev_tape::raw_read): New method.
1701 (fhandler_dev_tape::raw_write): New method.
1702 * fhandler_raw.cc (fhandler_dev_raw::is_eom): New method.
1703 (fhandler_dev_raw::is_eof): New method.
1704 (fhandler_dev_raw::open): Allow setting write through option by
1705 using the O_TEXT flag as ... flag.
1706 (fhandler_dev_raw::writebuf): Remove usage of varblkop and other
1707 tape specific code.
1708 (fhandler_dev_raw::raw_read): Ditto.
1709 (fhandler_dev_raw::dup): Ditto.
1710 * fhandler_tape.cc: Rewrite tape operations entirely. Implement
1711 new tape driver classes mtinfo, mtinfo_drive and mtinfo_part.
1712 Reduce fhandler_dev_tape methods to mostly just calling appropriate
1713 mtinfo_drive methods.
1714 (mtinfo_init): New function adding the mtinfo shared memory area.
1715 * mtinfo.h: New file, containing the definition of the new tape
1716 driver classes.
1717 * shared.cc: Include mtinfo.h.
1718 (offsets): Add entry for mtinfo shared memory area.
1719 (memory_init): Call mtinfo_init.
1720 * shared_info.h (shared_locations): Add SH_MTINFO shared location.
1721 * include/cygwin/mtio.h: Change and add various comments. Add GMT_xxx
1722 macros for new generic flags. Add MT_ST_xxx bitfield definitions
1723 for MTSETDRVBUFFER ioctl.
1724 * include/cygwin/version.h: Bump API minor version number.
1725
11a9a1cf
CF
17262004-03-26 Christopher Faylor <cgf@redhat.com>
1727
1728 * path.cc (path_conv::check): Use 'strchr' rather than 'strrchr' to
1729 find end of string, for efficiency.
1730
17312004-03-26 Thomas Pfaff <tpfaff@gmx.net>
1732
1733 * include/cygwin/_types.h: New file.
1734 * include/sys/lock.h: Ditto.
1735 * include/sys/stdio.h: Ditto.
1736 * thread.cc: Include sys/lock.h
1737 (__cygwin_lock_init): New function.
1738 (__cygwin_lock_init_recursive): Ditto.
1739 (__cygwin_lock_fini): Ditto.
1740 (__cygwin_lock_lock): Ditto.
1741 (__cygwin_lock_trylock): Ditto.
1742 (__cygwin_lock_unlock): Ditto.
1743 (pthread::atforkprepare): Lock file pointer before fork.
1744 (pthread::atforkparent): Unlock file pointer after fork.
1745 (pthread::atforkchild): Ditto.
1746
6b0d86c5
CV
17472004-03-26 Corinna Vinschen <corinna@vinschen.de>
1748
1749 * sem.cc (semget): Fix debug string.
1750 (semop): Ditto.
1751 * shm.cc (fixup_shms_after_fork): Ditto.
1752 (shmat): Ditto.
1753 (shmdt): Ditto.
1754 (shmget): Ditto.
1755
85427a94
CF
17562004-03-26 Christopher Faylor <cgf@redhat.com>
1757
1758 * sigproc.cc (wait_sig): Make sure that SIGCHLD is handled regardless
1759 of whether a signal is queued.
1760
27ec638b
CF
17612004-03-26 Christopher Faylor <cgf@redhat.com>
1762
1763 * sigproc.cc (wait_sig): Report if not trying to send signal due to
1764 queued signal.
1765
474048c2
CF
17662004-03-25 Christopher Faylor <cgf@redhat.com>
1767
1768 * path.cc (normalize_posix_path): Reorganize to short circuit to DOS
1769 path handling whenever a '\' is detected.
1770
1771 * signal.cc (sigaction): Make strace output more informative.
1772 * sigproc.cc (pending_signals::add): Just index directly into signal
1773 array rather than treating the array as a heap.
1774 (pending_signals::del): Ditto.
1775 (wait_sig): Don't send signal if we already have a similar signal
1776 queued.
1777 * sigproc.h (call_signal_handler_now): Remove obsolete declaration.
1778
a65cfe3c
CV
17792004-03-23 Gerd Spalink <Gerd.Spalink@t-online.de>
1780
1781 * fhandler_dsp.cc (fhandler_dev_dsp::write): Remove type
1782 cast from argument to audio_out_->parsewav() to make reference
1783 work properly. Now .wav file headers are properly discarded.
1784
88506c67
CV
17852004-03-23 Corinna Vinschen <corinna@vinschen.de>
1786
1787 * fhandler_disk_file.cc (fhandler_base::fstat_fs): Use created
1788 handle regardless of nohandle state. Clean up afterwards.
1789
6653af6c
CV
17902004-03-23 Gerd Spalink <Gerd.Spalink@t-online.de>
1791
1792 * autoload.cc: Load eight more functions for waveIn support.
1793 * fhandler.h (class fhandler_dev_dsp): Add class Audio, class Audio_in
1794 and class Audio_out members and audio_in_, audio_out_ pointers so
3e78b5d7 1795 that future changes are restricted to file fhandler_dsp.cc.
6653af6c
CV
1796 * fhandler_dsp.cc (fhandler_dev_dsp::Audio): Add this class to treat
1797 things common to audio recording and playback.
1798 Add more format conversions.
1799 (fhandler_dev_dsp::Audio::queue): New queues for buffer management
1800 to fix incomplete cleanup of buffers passed to the wave device.
1801 (fhandler_dev_dsp::Audio_in): New, added class to implement audio
1802 recording.
1803 (fhandler_dev_dsp::Audio_out): Rework to use functionality provided
1804 by fhandler_dev_dsp::Audio. Allocate memory audio buffers late,
1805 just before write.
1806 (fhandler_dev_dsp::Audio_out::start): Size of wave buffer allocated
1807 here depends on audio rate/bits/channels.
1808 (fhandler_dev_dsp::Audio_in::start): Ditto.
1809 (fhandler_dev_dsp::setupwav): Replaced by following function.
1810 (fhandler_dev_dsp::Audio_out::parsewav): Does not setup wave device
1811 any more. Discard wave header properly.
1812 (fhandler_dev_dsp::open): Add O_RDONLY and_RDWR as legal modes.
1813 Protect against re-open. Activate fork_fixup.
1814 (fhandler_dev_dsp::ioctl): Protect against actions when audio is
1815 active. SNDCTL_DSP_GETFMTS only returns formats supported by
1816 mmsystem wave API, not all supported formats. SNDCTL_DSP_GETBLKSIZE
1817 result now depends on current audio format.
1818 (fhandler_dev_dsp::fixup_after_fork): Call fork_fixup for the Audio
1819 classes to let them duplicate the CRITICAL_SECTION.
1820
6b89a541
CF
18212004-03-19 Pierre Humblet <pierre.humblet@ieee.org>
1822 Christopher Faylor <cgf@redhat.com>
1823
1824 * init.cc (munge_threadfunc): Handle all instances of search_for.
1825 (prime_threads): Test threadfunc_ix[0].
1826
c7c7492a
CF
18272004-03-21 Christopher Faylor <cgf@redhat.com>
1828
1829 * cygheap.cc (init_cheap): Set initial_sz to something or suffer
1830 spurious output.
1831 (cygheap_fixup_in_child): Set alloc_sz to passed in size to ensure that
1832 children will have the right size heap.
1833 (_csbrk): Make output conditional on DEBUGGING.
1834
e362f67f
CF
18352004-03-21 Christopher Faylor <cgf@redhat.com>
1836
1837 * cygheap.cc (init_cheap): Conditionalize debugging code.
1838
c795774c
CF
18392004-03-21 Christopher Faylor <cgf@redhat.com>
1840
1841 * cygheap.cc (init_cheap): Add ability to specify minimal cygwin heap
1842 size when debugging.
1843 (_csbrk): Report error in allocation to stderr.
1844 (ccalloc): Ditto.
1845 * dtable.cc (dtable::find_fifo): Remove use of atoms.
1846 * dtable.h (dtable::find_fifo): Ditto.
1847 * fhandler.h (fhandler_fifo): Ditto.
1848 * fhandler_fifo.cc (fhandler_fifo::fhandler_fifo): Ditto.
1849 (fhandler_fifo::set_use): Ditto.
1850 (fhandler_fifo::open_not_mine): Ditto.
1851 (fhandler_fifo::open): Ditto.
1852 * pinfo.cc (_pinfo::commune_recv): Ditto.
1853 (_pinfo::commune_send): Ditto.
1854
83f96e3f
PH
18552004-03-19 Pierre Humblet <pierre.humblet@ieee.org>
1856
3e78b5d7
CF
1857 * dir.cc (rmdir): Reorganize error handling to reduce indentation.
1858
61f50f94
CF
18592004-03-19 Christopher Faylor <cgf@redhat.com>
1860
1861 * include/cygwin/version.h: Bump DLL minor number to 10.
1862
d8f87fba
CF
18632004-03-18 Christopher Faylor <cgf@redhat.com>
1864
1865 * child_info.h (CURR_CHILD_INFO_MAGIC): Reset to new value.
1866 (child_info::cygheap_alloc_sz): New field.
1867 * cygheap.cc (init_cheap): Reduce size of cygwin stack until minimal
1868 hit when attempting initial allocation.
1869 (cygheap_setup_for_child): Use alloc_sz to create secondary memory
1870 mapped entry. Store alloc_sz in cygheap_alloc_sz.
1871 (cygheap_fixup_in_child): Use cygheap_alloc_sz to map parent's cygheap.
1872 * cygheap.h (_CYGHEAPSIZE_SLOP): New define.
1873 (CYGHEAPSIZE): Use _CYGHEAPSIZE_SLOP.
1874
891d1990
CV
18752004-03-18 Corinna Vinschen <corinna@vinschen.de>
1876
1877 * fhandler_proc.cc (format_proc_meminfo): On NT, try to figure out
1878 real swap file usage by requesting SystemPagefileInformation. Use
1879 GlobalMemoryStatus as fallback.
1880 * ntdll.h (_SYSTEM_INFORMATION_CLASS): Add SystemPagefileInformation.
1881 (struct _SYSTEM_PAGEFILE_INFORMATION): Define.
1882
12d545fb
CF
18832004-03-17 Christopher Faylor <cgf@redhat.com>
1884
1885 * pipe.cc (fhandler_pipe::dup): Fix debugging message.
1886
7faaacbb
CF
18872004-03-17 Christopher Faylor <cgf@redhat.com>
1888
1889 * include/cygwin/version.h: Bump DLL minor number to 9.
1890
fbdfd5f8
CF
18912004-03-16 Christopher Faylor <cgf@redhat.com>
1892
1893 * sigproc.cc (proc_terminate): Release sync_proc_subproc when done
1894 terminating or suffer potential hangs.
1895 (get_proc_lock): Reorganize debugging output slightly.
1896
e867f8f1
CF
18972004-03-15 Christopher Faylor <cgf@redhat.com>
1898
1899 * cygtls.cc (_cygtls::fixup_after_fork): Just manipulate the signal
1900 stack if a signal occurred during the parent's fork. Otherwise leave
1901 it alone.
1902
c25695bb
CF
19032004-03-15 Christopher Faylor <cgf@redhat.com>
1904
1905 * exceptions.cc (try_to_debug): Report on tid of caller.
1906
1907 * sync.cc (muto::acquire): Fix some races.
1908 * sync.h (muto): Expose some fields for easier debugging.
1909
80c74a5f
CV
19102004-03-15 Corinna Vinschen <corinna@vinschen.de>
1911
1912 * fhandler.h (fhandler_dev_tape::tape_get_pos): Declare with extra
1913 parameter for partition number.
1914 (fhandler_dev_tape::_tape_set_pos): Ditto.
1915 (fhandler_dev_tape::tape_partition): New method.
1916 (fhandler_dev_tape::tape_set_partition): New method.
1917 * fhandler_tape.cc (fhandler_dev_tape::open): Call private methods
1918 directly instead of ioctl.
1919 (fhandler_dev_tape::ioctl): Use long erase on MTERASE by default.
1920 Don't use absolute positioning on MTSEEK. Call tape_set_partition
1921 on MTSETPART, tape_partition on MTMKPART.
1922 (fhandler_dev_tape::tape_get_pos): Add partition number parameter.
1923 Prefer logical position information over absolute position information.
1924 Return partition number.
1925 (fhandler_dev_tape::_tape_set_pos): Add partition number parameter.
1926 Use in SetTapePosition.
1927 (fhandler_dev_tape::tape_set_pos): Remove special TAPE_ABSOLUTE_BLOCK
1928 handling.
1929 (fhandler_dev_tape::tape_erase): Rewind before erasing.
1930 (fhandler_dev_tape::tape_status): Rearrange slightly. Try to get a
1931 MediaType even if no tape is loaded. Store active partition in
1932 mt_resid as on Linux.
1933 (fhandler_dev_tape::tape_partition): New method.
1934 (fhandler_dev_tape::tape_set_partition): New method.
1935 * include/cygwin/mtio.h: Fix copyright. Add comment to explain
1936 mt_resid content.
1937 * include/cygwin/version.h: Bump API minor number.
1938
168d7785
CF
19392004-03-14 Christopher Faylor <cgf@redhat.com>
1940
1941 * cygtls.cc (_cygtls::remove): Call remove_wq even when we can't
1942 necessarily get the cygtls table lock.
1943 * cygtls.h (_cygtls::remove_wq): Add wait argument.
1944 * sigproc.cc (_cygtls::remove_wq): Honor wait argument when acquiring
1945 lock.
1946 (proc_terminate): Don't NULL sync_proc_subproc since other threads may
1947 still try to access it.
1948
80c74a5f 19492004-03-14 Corinna Vinschen <corinna@vinschen.de>
6644f509
CV
1950
1951 * errno.cc (errmap): Map ERROR_BEGINNING_OF_MEDIA and
1952 ERROR_SETMARK_DETECTED to EIO instead of ESPIPE.
1953 Handle ERROR_FILEMARK_DETECTED.
1954 * fhandler_tape.cc (TAPE_FUNC): Add comment that ERROR_BUS_RESET
1955 has still to be handled correctly.
1cda1322 1956 (fhandler_dev_tape::open): Accommodate fact that get.mt_dsreg
6644f509
CV
1957 also contains density code.
1958 (fhandler_dev_tape::ioctl): Rearrange slightly. Reset devbuf also on
1959 MTNOP, MTWSM, MTSETBLK, MTSETDRVBUFFER, MTSETPART and MTMKPART.
1960 (fhandler_dev_tape::tape_set_pos): Rearrange. Match behaviour to
1961 the Linux tape driver.
1962 (fhandler_dev_tape::tape_status): Call IOCTL_STORAGE_GET_MEDIA_TYPES_EX
1963 if available. Return device type and density code in appropriate
1964 mtget members.
1965 * wincap.h (wincaps::has_ioctl_storage_get_media_types_ex): New element.
1966 * wincap.cc: Implement above element throughout.
1967 * include/cygwin/mtio.h: Add tape device types as returned by
1968 IOCTL_STORAGE_GET_MEDIA_TYPES_EX.
1969 (MT_TAPE_INFO): Use above type codes.
1970 (struct mtget): Change mt_dsreg comment.
1971
83a74ea2
PH
19722004-03-14 Pierre Humblet <pierre.humblet@ieee.org>
1973
6644f509
CV
1974 * dir.cc (rmdir): Construct real_dir with flag PC_FULL.
1975 Use a loop instead of recursion to handle the current directory.
83a74ea2 1976
f8a8e7a1
CF
19772004-03-14 Christopher Faylor <cgf@redhat.com>
1978
1979 * cygtls.cc (_cygtls::remove): Call remove_wq to ensure that wait stuff
1980 is removed from proc_subproc linked list.
1981 * cygtls.h (_cygtls::remove_wq): Declare.
1982 * sigproc.cc (_cygtls::remove_wq): Define.
1983 (proc_subproc): Label event handle appropriately.
1984 * spawn.cc (spawn_guts): Return -1 when wait() fails for spawn types
1985 that require waiting.
1986
80c74a5f 19872004-03-13 Corinna Vinschen <corinna@vinschen.de>
09f36ed0
CV
1988
1989 * errno.cc (errmap): Handle ERROR_BUS_RESET.
1990 * fhandler.h (fhandler_dev_raw::write_file): New method, created
1991 from former static function.
1992 (fhandler_dev_raw::read_file): Ditto.
1993 (reset_devbuf): New inline method.
1994 (class fhandler_dev_tape): Add TAPE_GET_DRIVE_PARAMETERS
1995 member `dp'.
1996 (fhandler_dev_tape::write_file): New method.
1997 (fhandler_dev_tape::read_file): Ditto.
1998 (fhandler_dev_tape::tape_get_feature): Convert to inline method.
1999 (fhandler_dev_tape::tape_error): New method, created from former
3e78b5d7 2000 static function.
09f36ed0
CV
2001 (fhandler_dev_tape::tape_get_blocksize): Remove declaration.
2002 * fhandler_raw.cc (fhandler_dev_raw::write_file): New method, created
2003 from former static function.
2004 (fhandler_dev_raw::read_file): Ditto.
1cda1322 2005 (fhandler_dev_raw::writebuf): Accommodate the fact that no devbuf
09f36ed0
CV
2006 exists under variable block size condition.
2007 (fhandler_dev_raw::raw_read): Ditto. Add local p pointer to simplify
2008 pointer arithmetic.
2009 (fhandler_dev_raw::raw_write): Always set devbufend to 0 when starting
1cda1322 2010 with writing. Accommodate the fact that no devbuf exists under
09f36ed0
CV
2011 variable block size condition.
2012 * fhandler_tape.cc: Various formatting changes.
2013 (TAPE_FUNC): New macro. Use throughout as tape function loop.
2014 (get_ll): Convert into macro.
2015 (IS_EOM): New macro.
2016 (IS_EOF): New macro.
2017 (fhandler_dev_tape::is_eom): Use IS_EOM macro.
2018 (fhandler_dev_tape::is_eof): Use IS_EOF macro.
2019 (fhandler_dev_tape::write_file): New method.
2020 (fhandler_dev_tape::read_file): New method.
2021 (fhandler_dev_tape::open): Get drive information block here once.
2022 (fhandler_dev_tape::lseek): Remove unneeded duplicate code.
2023 (fhandler_dev_tape::dup): Duplicate drive information block.
2024 (fhandler_dev_tape::ioctl): Remove drvbuf in variable block size mode.
2025 Return ERROR_INVALID_BLOCK_LENGTH instead of ERROR_MORE_DATA if
2026 buffer contains data which would get lost on buffer size changing.
2027 Use absolute tape positioning also if drive only supports logical
2028 block positioning.
2029 (fhandler_dev_tape::tape_error): New method, created from former
2030 static function.
2031 (fhandler_dev_tape::tape_get_pos): Allow logical block reporting.
2032 Workaround tape driver bug.
2033 (fhandler_dev_tape::_tape_set_pos): Reset device buffer and flags
2034 after successful repositioning.
2035 (fhandler_dev_tape::tape_set_pos): Allow logical block positioning.
2036 Workaround tape driver bug.
2037 (fhandler_dev_tape::tape_erase): Use dp instead of calling
2038 GetTapeParameters.
2039 (fhandler_dev_tape::tape_prepare): Ditto.
2040 (fhandler_dev_tape::tape_get_blocksize): Remove.
2041 (fhandler_dev_tape::tape_set_blocksize): Don't call tape_get_blocksize.
2042 Error handling already done in fhandler_dev_tape::ioctl.
2043 (fhandler_dev_tape::tape_status): Remove local `dp' variable.
1cda1322 2044 Accommodate logical tape reporting. Call tape_get_feature instead
09f36ed0
CV
2045 of accessing feature words directly.
2046 (fhandler_dev_tape::tape_compression): Use dp instead of calling
2047 GetTapeParameters. Fix resetting datcompression.
2048
183f4d80
CF
20492004-03-12 Christopher Faylor <cgf@redhat.com>
2050
2051 * wait.cc (wait4): Initialize pointer on entry. Avoid calling
2052 call_signal_handler twice since that guarantees exiting with errno set
2053 to EINTR.
2054
3c5f8ea4
CV
20552004-03-12 Corinna Vinschen <corinna@vinschen.de>
2056
2057 * exceptions.cc (sigpacket::process): Simplify code slightly.
2058
9863b78e
CF
20592004-03-11 Christopher Faylor <cgf@redhat.com>
2060
2061 * cygtls.h (waitq): Declare structure here.
2062 (_cygtls::wq): Declare.
2063 * cygtls.cc (_cygtls::fixup_after_fork): Clear wq.thread_ev to avoid
2064 using an invalid event handle in forked process.
2065 * dcrt0.cc (waitq_storage): Delete.
2066 (threadstuff): Remove waitq_storage.
2067 * perthread.h (per_thread_waitq): Delete.
2068 (waitq_storage): Delete declaration.
2069 * sigproc.cc (sigproc_init): Remove perthread waitq consideration.
2070 * sigproc.h (waitq): Delete declaration.
2071 * wait.cc (wait4): Use _my_tls waitq structure rather than per_thread.
2072
83a74ea2 20732004-03-11 Pierre Humblet <pierre.humblet@ieee.org>
9863b78e
CF
2074
2075 * cygtls.h (_cygtls::newmask): Delete member.
2076 (_cygtls::deltamask): New member.
2077 * gendef (_sigdelayed): Replace the call to set_process_mask by a call
2078 to set_process_mask_delta.
2079 * exceptions.cc (handle_sigsuspend): Do not filter tempmask. Or
2080 SIG_NONMASKABLE in deltamask as a flag.
2081 (_cygtls::interrupt_setup): Set deltamask only.
2082 (set_process_mask_delta): New function.
2083 (_cygtls::call_signal_handler): Replace the first call to
2084 set_process_mask by a call to set_process_mask_delta.
2085 * tlsoffsets.h: Regenerate.
2086
7ea8e226
CF
20872004-03-11 Christopher Faylor <cgf@redhat.com>
2088
2089 * cygtls.cc (_cygtls::fixup_after_fork): Remove unneeded setting of
2090 oldmask.
2091 * exceptions.cc: Remove some __I386__ conditionals.
2092 (handle_exceptions): Move ppid test to outside of a loop for
2093 efficiency.
2094 (setup_handler): Make debugging output more wordy.
2095 (_cygtls::call_signal_handler): To avoid a race, use lock/unlock to
2096 synchronize with signal thread and ensure that signal_arrived event has
2097 actually been set.
2098 * gendef (_sigfe): Use ebx for all sigstack manipulations to ensure
2099 that the register is saved. Move setting of incyg to within stack lock
2100 to avoid setup_handler confusion.
2101 (_sigbe): Use ebx for all sigstack manipulations to ensure that the
2102 register is saved.
2103 (_cygtls::pop): Ditto.
2104 (_cygtls::lock): Ditto.
2105 (stabilize_sig_stack): Ditto.
2106 (setjmp): Ditto.
2107 (longjmp): Ditto.
2108
58e9df0f
CF
21092004-03-08 Jaakko Hyvatti <jaakko.hyvatti@iki.fi>
2110
2111 * fhandler_serial.cc (fhandler_serial::ioctl): Implement TIOCSBRK and
2112 TIOCCBRK.
2113 * include/sys/termios.h: Define TIOCSBRK and TIOCCBRK.
2114
5fb0fe79
CF
21152004-03-08 Christopher Faylor <cgf@redhat.com>
2116
ad22734a
CF
2117 * exceptions.cc (setup_handler): Avoid suspending a thread if it is in
2118 a cygwin function, in an exception, spinning, or locked.
5fb0fe79
CF
2119 * gendef (_sigfe): Move incyg setting earlier.
2120 (sigreturn): Set incyg flag to avoid interrupting called cygwin
2121 functions.
2122 (sigdelayed): Ditto.
2123 (stabilize_sig_stack): Ditto.
2124
2125 * sigproc.cc (proc_subproc): Don't restore process lock early in exec
2126 case.
2127
2128 * cygtls.h: Reorganize fields in _cygtls slightly.
2129 * tlsoffsets.h: Regenerate.
2130
3a1ccfc8
CF
21312004-03-06 Christopher Faylor <cgf@redhat.com>
2132
2133 * fork.cc (fork_parent): Save parent pid in a temporary variable since
2134 child could conceivably exit before function returns, rendering the
2135 child's shared memory area invalid.
2136
2137 * cygtls.h (_cygtls::incyg): Declare new field.
2138 (_cygtls::in_exception): Define new function.
2139 * exceptions.cc (setup_handler): Remove locked flag. Use 'incyg' flag
2140 and in_exception function to determine when we're in a cygwin function.
2141 (_cygtls::call_signal_handler): Decrement incyg flag prior to calling a
2142 handler. Increment it on return.
2143 * gendef (_sigfe): Increment incyg flag. Use testl for zero testing
2144 rather than orl, for consistency.
2145 (_sigbe): Decrement incyg flag. Use testl for zero testing rather than
2146 orl, for consistency.
2147 (_cygtls::pop): Use testl for zero testing rather than orl, for
2148 consistency.
2149 (stabilize_sig_stack): Ditto.
2150
0c378b64
CF
2151 * tlsoffsets.h: Regenerate.
2152
f2afcfa6
CF
21532004-03-05 Christopher Faylor <cgf@redhat.com>
2154
2155 * gendef (sigdelayed): Handle return here rather than going through
2156 sigbe to ensure that flags are properly restored.
2157
b95ae504
TP
21582004-03-04 Thomas Pfaff <tpfaff@gmx.net>
2159
f2afcfa6
CF
2160 * include/pthread.h (PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP): New
2161 define.
b95ae504
TP
2162 (PTHREAD_NORMAL_MUTEX_INITIALIZER_NP): Ditto.
2163 (PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP): Ditto.
f2afcfa6
CF
2164 * thread.cc (pthread_mutex::is_good_initializer): Check for all
2165 posssible initializers
b95ae504
TP
2166 (pthread_mutex::is_good_initializer_or_object): Ditto.
2167 (pthread_mutex::is_good_initializer_or_bad_object): Ditto.
f2afcfa6 2168 (verifyable_object_isvalid): Support up to three static initializers.
b95ae504 2169 (verifyable_object_isvalid (void const *,long)): Remove.
f2afcfa6
CF
2170 (pthread_cond::is_good_initializer_or_bad_object): Remove unneeded
2171 objectState var.
2172 (pthread_cond::init): Condition remains unchanged when creation has
2173 failed.
2174 (pthread_rwlock::is_good_initializer_or_bad_object): Remove unneeded
2175 objectState var.
2176 (pthread_rwlock::init): Rwlock remains unchanged when creation has
2177 failed.
2178 (pthread_mutex::init): Remove obsolete comment. Mutex remains
2179 unchanged when creation has failed. Add support for new initializers.
2180 (pthread_mutex_getprioceiling): Do not create mutex, just return
2181 ENOSYS.
b95ae504
TP
2182 (pthread_mutex_lock): Simplify.
2183 (pthread_mutex_trylock): Remove unneeded local themutex.
f2afcfa6
CF
2184 (pthread_mutex_unlock): Just return EPERM if mutex is not initialized.
2185 (pthread_mutex_setprioceiling): Do not create mutex, just return
2186 ENOSYS.
2187 * thread.h (verifyable_object_isvalid): Support up to three static
2188 initializers.
2189 (verifyable_object_isvalid (void const *,long)): Remove prototype.
2190 (pthread_mutex::init): Add optional initializer to parameter list.
b95ae504 2191
08b0a057
CF
21922004-03-03 Christopher Faylor <cgf@redhat.com>
2193
2194 * gendef (sigreturn): Call stabilize_sig_stack to ensure that there are
2195 no pending signals. Restore edx later.
2196 (sigdelayed): Save edx earlier.
2197
2198 * malloc_wrapper.cc (malloc_init): Add some more debugging output.
2199
7cdd0293
CV
22002004-03-02 Corinna Vinschen <corinna@vinschen.de>
2201
2202 * fhandler_raw.cc (fhandler_dev_raw::raw_read): When reading with
2203 variable block size, read only one block, read directly into user
2204 supplied buffer, return ENOMEM if user supplied buffer is smaller
2205 than size of next block to read. Use read2 instead of bytes_to_read
2206 to count number of bytes read.
2207 * fhandler_tape.cc (fhandler_dev_tape::open): Add debug output.
2208
4e23c181
CV
22092004-02-26 Brian Ford <ford@vss.fsi.com>
2210
2211 * miscfuncs.cc (check_invalid_virtual_addr): Assure the last page
2212 in the range is always tested. Add appropriate const.
0f898946 2213 * mmap.cc (mmap_record::alloc_fh): Remove unused static path_conf object.
4e23c181 2214
ca713cfa
CF
22152004-02-25 Christopher Faylor <cgf@redhat.com>
2216
74c9d43c
CF
2217 * exceptions.cc (setup_handler): Signal event for any sigwaitinfo, if it
2218 exists, to force signal to be handled. Zero event here to prevent
ca713cfa
CF
2219 races.
2220 * signal.cc (sigwaitinfo): Use local handle value for everything since
2221 signal thread could zero event element at any time. Detect when
2222 awaking due to thread not in mask and set return value and errno
2223 accordingly. Don't set signal number to zero unless we've recognized
2224 the signal.
2225 * sigproc.cc (sigq): Rename from sigqueue throughout.
2226
2227 * thread.cc (pthread::join): Handle signals received while waiting for
2228 thread to terminate.
2229
22302004-02-25 Christopher Faylor <cgf@redhat.com>
2231
2232 * cygwin.din: Export sighold, sigqueue.
2233 * exceptions.cc (sighold): Define new function.
2234 * signal.cc (handle_sigprocmask): Set correct errno for invalid signal.
2235 Simplify debugging output.
2236 (sigqueue): Define new function.
2237 * include/cygwin/signal.h (sighold): Declare new function.
2238 (sigqueue): Ditto.
2239 * include/cygwin/version.h: Bump API minor version number.
2240 * include/limits.h (TIMER_MAX): Define.
2241 (_POSIX_TIMER_MAX): Ditto.
2242
f9e19c09
CV
22432004-02-25 Brian Ford <ford@vss.fsi.com>,
2244 Corinna Vinschen <corinna@vinschen.de>
2245
2246 * miscfuncs.cc (check_invalid_virtual_addr): New function.
2247 * winsup.h (check_invalid_virtual_addr): Declare.
2248 * mmap.cc (munmap): Call check_invalid_virtual_addr instead of
2249 IsBadReadPtr.
2250
241f503c
CF
22512004-02-24 Christopher Faylor <cgf@redhat.com>
2252
2253 * gendef (stabilize_sig_stack): Correctly align this pointer for call
2254 to _cygtls::call_signal_handler.
2255 * gentls_offsets: Output sizeof field.
2256 * tlsoffsets.h: Regenerate.
2257
5ef9bbc8
CF
22582004-02-24 Christopher Faylor <cgf@redhat.com>
2259
2260 * dcrt0.cc (_dll_crt0): Don't check sync_startup if threadfunc_ix is set.
2261
2262 * external.cc (cygwin_internal): Implement CW_GET_BINMODE.
2263 * include/sys/cygwin.h: Declare CW_GET_BINMODE.
2264
5dbaca16
CF
22652004-02-24 Christopher Faylor <cgf@redhat.com>
2266
2267 * dcrt0.cc (_dll_crt0): Add some stern internal errors.
2268
c9a76075
CV
22692004-02-24 Corinna Vinschen <corinna@vinschen.de>
2270
2271 * thread.cc (pthread::cancelable_wait): Rearrange slightly.
2272 Add do_sig_wait parameter. Wait for signal_arrived if set to true.
2273 Return WAIT_SIGNALED if signal arrived.
1cda1322 2274 (pthread_cond::wait): Accommodate change to pthread::cancelable_wait.
c9a76075
CV
2275 (pthread::join): Ditto.
2276 (semaphore::_timedwait): Ditto.
2277 (semaphore::_wait): Ditto. Change to return int to allow status
2278 feedback.
2279 (semaphore::wait): Return return value from semaphore::_wait.
2280 * thread.h (WAIT_SIGNALED): New definition.
5fb0fe79 2281 (pthread::cancelable_wait): Change declaration. Define do_sig_wait
c9a76075
CV
2282 as false by default to not interfere with existing calls accidentally.
2283 (semaphore::_wait): Declare int.
2284
4d5d7a2c
CF
22852004-02-21 Christopher Faylor <cgf@redhat.com>
2286
2287 * exceptions.cc (sigpacket::process): Make sure that tls is filled in
2288 for SIGSTOP condition.
2289 (_cygtls::call_signal_handler): Restore signal mask using saved oldmask
2290 rather than current oldmask.
2291
3a0f12b5
CF
22922004-02-20 Christopher Faylor <cgf@redhat.com>
2293
2294 * path.cc (conv_path_list): Return error condition.
2295 (copy1): New function.
2296 (copyenc): New function.
2297 (mount_item::fnmunge): Return error condition. Use new functions to
2298 copy strings.
2299 (mount_item::build_win32): Ditto.
2300 (mount_info::conv_to_win32_path): Return error condition.
2301 (cygwin_conv_to_posix_path): Return result of path conversion.
2302 (cygwin_conv_to_full_posix_path): Ditto.
2303 (return_with_errno): New macro.
2304 (cygwin_win32_to_posix_path_list): Use new macro to potentially set
2305 errno.
2306 (cygwin_posix_to_win32_path_list): Ditto.
2307 * path.h (mount_item::fnmunge): Add size argument.
2308 (mount_item::build_win32): Ditto.
2309
12afe445
CV
23102004-02-20 Corinna Vinschen <corinna@vinschen.de>
2311
2312 * getopt.c: Avoid useless compiler warnings.
2313
1a57b229
CV
23142004-02-20 Corinna Vinschen <corinna@vinschen.de>
2315
2316 * getopt.c: Replace with latest vanilla(!) OpenBSD version 1.16.
2317
0e061ecf
CF
23182004-02-18 Christopher Faylor <cgf@redhat.com>
2319
2320 * fork.cc (fork_child): Invert sense of test which defeated correct
2321 handling in a fork from a non-main thread.
2322
2323 * dcrt0.cc (initial_env): Eliminate parameter and just send DebugBreak
2324 when appropriate.
2325 (dll_crt0_0): Reflect parameter change to initial_env.
2326 (dll_crt0_1): Don't call initial_env.
2327
2d6c4a1a
CF
23282004-02-18 Christopher Faylor <cgf@redhat.com>
2329
2330 * gendef (stabilize_sig_stack): New function.
2331 (setjmp): Import, add sig stack handling. Store sig stack info.
2332 (longjmp): Call stabilize_sig_stack. Restore sig stack info.
2333 * config/i386/setjmp.c: Remove.
2334
a682de34
CV
23352004-02-17 Corinna Vinschen <corinna@vinschen.de>
2336
2337 * fork.cc (fork_child): Move fixup_shms_after_fork so that
2338 signal_arrived is initialized when calling it.
2339
720c33ae
CF
23402004-02-17 Christopher Faylor <cgf@redhat.com>
2341
2342 * Makefile.in (clean): Clean libserver, too.
2343
2344 * fhandler.cc (fhandler_base::~fhandler_base): Remove path_conv cleanup.
2345 * syscalls.cc (chroot): Ditto.
2346 * path.cc (path_conv::~path_conv): Define new destructor.
2347 (conv_path_list_buf_size): Remove explicit path_conv cleanup.
2348 * path.h (path_conv::~path_conv): Declare new destructor.
2349
88e584bf
CF
23502004-02-16 Christopher Faylor <cgf@redhat.com>
2351
2352 * Makefile.in: Compile flock.o with -fomit-frame-pointer.
2353
f6cd9c35
CF
23542004-02-16 Christopher Faylor <cgf@redhat.com>
2355
2356 * Makefile.in: Compile dlfcn.o with -fomit-frame-pointer.
2357
2c29523e
CF
23582004-02-16 Christopher Faylor <cgf@redhat.com>
2359
2360 * Makefile.in: Compile delqueue.o with -fomit-frame-pointer.
2361
212592dc
CV
23622004-02-16 Pierre Humblet <pierre.humblet@ieee.org>
2363
2364 * syscalls.cc (rename): Do not test the MoveFile error code
2365 where MoveFileEx exists.
2366
b4f0009f
CF
23672004-02-15 Christopher Faylor <cgf@redhat.com>
2368
04dbc76e
CF
2369 * cygheap.cc (_csbrk): Report more debugging details on failing
2370 condition.
b4f0009f 2371
955bf2ee
CF
23722004-02-14 Christopher Faylor <cgf@redhat.com>
2373
2374 * Makefile.in: Compile syscalls.o with -fomit-frame-pointer.
2375
2376 * sigproc.cc: Eliminate unused variable.
2377
968bdf96
CV
23782004-02-14 Corinna Vinschen <corinna@vinschen.de>
2379
2380 * getopt.c: Replace with latest NetBSD version 1.16. Keep Cygwin
2381 specific changes as minimal as possible.
2382
cf2b4018
CF
23832004-02-13 Christopher Faylor <cgf@redhat.com>
2384
2385 * sigproc.cc (proc_subproc): Change warning back to silent debug
2386 output.
2387
c21e74cc
CF
23882004-02-13 Christopher Faylor <cgf@redhat.com>
2389
2390 * dcrt0.cc (alloc_stack_hard_way): Revert to previous implementation.
2391 (alloc_stack): Ditto.
2392 * exceptions.cc (ctrl_c_handler): Add debugging output.
2393
edc4f86a
CF
23942004-02-13 Christopher Faylor <cgf@redhat.com>
2395
2396 * Makefile.in (clean): Remove sigfe.s.
2397 (sigfe.s): Ensure that sigfe.s will be regenerated if it does not exist.
2398 * dll_init.cc (dll_dllcrt0): Simplify initializing tests.
2399
2400 * exceptions.cc (setup_handler): Detect when stub caller is either
2401 spinning or has acquired the lock after being suspended to avoid
2402 windows problems with suspending a win32 API call.
2403
2404 * cygtls.h (_cygtls::spinning): Declare new element.
2405 * gendef: Remove unused _siglist_index and _siglist declaration.
2406 (_sigfe): Set spinning element when potentially looping, waiting for lock.
2407 (_sigbe): Ditto.
2408 (_cygtls::lock): Ditto.
2409 (_longjmp): Ditto.
2410 * tlsoffsets.h: Regenerate.
2411 * pinfo.cc (_pinfo::exit): Set final exit state here. Call sigproc_terminate if
2412 invoked with 'norecord'. Clear any residual _cygtls stuff.
2413 * winsup.h (exit_states): Define ES_FINAL.
2414 * spawn.cc (spawn_guts): Don't call proc_terminate specifically when
2415 execing. Let _pinfo::exit handle that case.
2416
2417 * sigproc.cc (wait_subproc): Always exit loop early when proc_loop_wait.
2418
2419 * init.cc (munge_threadfunc): Eliminate unused argument.
2420 (dll_entry): Reflect above change in call to munge_threadfunc.
2421
b3535c27
CF
24222004-02-11 Christopher Faylor <cgf@redhat.com>
2423
2424 * gendef (_sigbe): Zero location on pop.
2425 (_cygtls::pop): Ditto.
2426
b91faaab
CF
24272004-02-11 Christopher Faylor <cgf@redhat.com>
2428
2429 * dcrt0.cc (alloc_stack_hard_way): Eliminate second argument.
2430 (alloc_stack): Remove use of 'b' throughout.
2431
e431827c
CF
24322004-02-11 Christopher Faylor <cgf@redhat.com>
2433
2434 Rename _threadinfo to _cygtls, throughout.
2435 * cygtls.h (_cygtls::call_signal_handler): Rename from
2436 call_signal_handler_now.
2437 (_cygtls::push): Make second argument mandatory.
2438 (_cygtls::fixup_after_fork): Declare new function.
2439 (_cygtls::lock): Ditto.
2440 * cygtls.cc (_cygtls::fixup_after_fork): Define new function.
2441 * dcrt0.cc (cygwin_finished_initializing): Define as bool.
2442 (alloc_stack): Use _tlstop rather than arbitrary variable in probably
2443 vain attempt to avoid strange fork problem on CTRL-C.
2444 (dll_crt0_0): Remove obsolete winpids::init call.
2445 * dll_init.cc (dll_dllcrt0): Detect forkee condition as equivalent to
2446 initializing.
2447 * winsup.h (cygwin_finished_initializing): Declare as bool.
2448 * exceptions.cc (handle_exceptions): Rely on
2449 cygwin_finished_initializing to determine how to handle exception
2450 during process startup.
2451 (_cygtls::call_signal_handler): Rename from call_signal_handler_now.
2452 (_cygtls::interrupt_now): Fill in second argument to push.
2453 (signal_fixup_after_fork): Eliminate.
2454 (setup_handler): Initialize locked to avoid potential inappropriate
2455 unlock. Resume thread if it has acquired the stack lock.
2456 (ctrl_c_handler): Just exit if ctrl-c is hit before cygiwn has finished
2457 initializing.
2458 * fork.cc (sync_with_child): Don't call abort since it can cause exit
2459 deadlocks.
2460 (sync_with_child): Change debugging output slightly.
2461 (fork_child): Set cygwin_finished_initializing here. Call _cygtls fork
2462 fixup and explicitly call sigproc_init.
2463 (fork_parent): Release malloc lock on fork failure.
2464 (vfork): Call signal handler via _my_tls.
2465 * sigproc.cc (sig_send): Ditto.
2466 * syscalls.cc (readv): Ditto.
2467 * termios.cc (tcsetattr): Ditto.
2468 * wait.cc (wait4): Ditto.
2469 * signal.cc (nanosleep): Ditto.
2470 (abort): Ditto.
2471 (kill_pgrp): Avoid killing self if exiting.
2472 * sync.cc (muto::acquire): Remove (temporarily?) ill-advised
2473 exiting_thread check.
2474 * gendef (_sigfe): Be more agressive in protecting stack pointer from
2475 other access by signal thread.
2476 (_cygtls::locked): Define new function.
2477 (_sigbe): Ditto.
2478 (_cygtls::pop): Protect edx.
2479 (_cygtls::lock): Use guaranteed method to set eax to 1.
2480 (longjmp): Aggressively protect signal stack.
2481 * miscfuncs.cc (low_priority_sleep): Reduce "sleep time" for secs == 0.
2482 * pinfo.cc (winpids::set): Counterintuitively use malloc's lock to
2483 protect simultaneous access to the pids list since there are
2484 pathological conditions which can cause malloc to call winpid.
2485 (winpids::init): Eliminate.
2486 * pinfo.h (winpids::cs): Eliminate declaration.
2487 * pinfo.h (winpids::init): Eliminate definition.
2488
897c7856
CV
24892004-02-11 Corinna Vinschen <corinna@vinschen.de>
2490
2491 * security.cc (get_nt_object_attribute): Fix error handling.
2492
9ec70d20
CV
24932004-02-09 Ralf Habacker <ralf.habacker@freenet.de>
2494
2495 * fhandler_socket.cc (fhandler_socket::ioctl): Add FIONREAD handling.
2496
cec48792
CF
24972004-02-08 Christopher Faylor <cgf@redhat.com>
2498
2499 * debug.h (console_printf): Define for non-debugging condition.
2500
2501 * cygtls.h (_threadinfo::lock): Remove wait argument.
2502 (_threadinfo::interrupt_setup): Remove retaddr argument.
2503 * exceptions.cc (_threadinfo::interrupt_setup): Ditto.
2504 (_threadinfo::interrupt_now): Accommodate change to interrupt_setup
2505 argument.
2506 (setup_handler): Ditto. Always lock sig stack prior to determining
2507 interrupt method.
2508 * gendef (_sigfe): Correct thinko regarding cmpxchg.
2509 (_sigbe): Ditto.
2510 (_threadinfo::lock): Ditto.
2511 (_threadinfo::pop): Eliminate left-over stack unlock.
edc4f86a 2512 * sigproc.cc (proc_subproc): Change debugging output to printed
cec48792
CF
2513 warning.
2514
6946073e
CF
25152004-02-08 Christopher Faylor <cgf@redhat.com>
2516
2517 * localtime.cc (localtime_r): Call tzset.
2518
2519 * Makefile.in: Make version.h/cygwin.din version check a warning since
2520 it is not foolproof.
2521
2522 * cygheap.h (CYGHEAPSIZE): Bump size down.
2523
2524 * cygtls.h (_threadinfo::stacklock): New element.
2525 (_threadinfo::pop): Make regparm.
2526 (_threadinfo::lock): New function.
2527 (_threadinfo::unlock): New function.
2528 * cygtls.cc (_threadinfo::push): Wait for a lock on the stack before
2529 performing the operation.
2530 (_threadinfo::pop): Move to another file.
2531 * cygwin.din: More SIGFE changes.
2532 * exceptions.cc (try_to_debug): Always display messages on console.
2533 (handle_exceptions): Unwind stack only when actually about to call
2534 sig_send.
2535 (setup_handler): Lock stack prior to performing any operations.
2536 * gendef (_sigfe): Ditto.
2537 (_sigbe): Ditto.
2538 (_threadinfo::pop): Ditto. Move here.
2539 * gen_tlsoffsets: Generate positive offsets.
2540 * tlsoffsets.h: Regenerate.
2541
2a566ac3
CV
25422004-02-06 Corinna Vinschen <corinna@vinschen.de>
2543
2544 * cygserver.h (CYGWIN_SERVER_VERSION_API): Bump.
2545 * cygserver_ipc.h (struct proc): Add signal_arrived member.
2546 (ipc_set_proc_info): Inititalize blk.signal_arrived.
2547
043878df
CV
25482004-02-06 Pierre Humblet <pierre.humblet@ieee.org>
2549
2550 * uinfo.cc (cygheap_user::init): Use sec_user_nih to build a
2551 security descriptor. Set both the process and the default DACLs.
2552 * fork.cc (fork_parent): Use sec_none_nih security attributes.
2553 * spawn.cc (spawn_guts): Ditto.
2554
656a999a
CF
25552004-02-05 Christopher Faylor <cgf@redhat.com>
2556
2557 * cygwin.din: Make many more functions SIGFE.
2558 * include/cygwin/version.h (CYGWIN_VERSION_SHARED_DATA): Bump.
2559
d82c6f47
CV
25602004-02-05 Pierre Humblet <pierre.humblet@ieee.org>
2561
2562 * security.h (SID): New macro.
2563 (well_known_*_sid): Change type to cygpsid.
2564 (cygsid::init): Delete declaration.
2565 * sec_helper.cc (well_known_*_sid): Define using above SID macro.
2566 (cygsid::init): Delete.
2567 * dcrt0.cc (dll_crt0_0): Do not call cygsid::init.
2568 * security.cc (get_user_local_groups): Change the second argument type
2569 to cygpsid.
2570
06615351
CF
25712004-02-03 Christopher Faylor <cgf@redhat.com>
2572
2573 * cygtls.h (_local_storage::signamebuf): Increase size to prevent
2574 overflow on really odd values.
9e8c2fad 2575 * tlsoffsets.h: Regenerate.
06615351 2576
c571716c
CF
25772004-02-03 Christopher Faylor <cgf@redhat.com>
2578
2579 * Makefile.in (DLL_OFILES): Add strsig.o.
06615351 2580 * cygtls.h (_local_storage::signamebuf): New element.
c571716c 2581 * sysconf.cc (sysconf): Implement _SC_RTSIG_MAX.
9e8c2fad 2582 * tlsoffsets.h: Regenerate.
c571716c
CF
2583 * include/limits.h (_POSIX_RTSIG_MAX): New define.
2584 (RTSIG_MAX): Ditto.
2585 * include/cygwin/signal.h (SIGRTMIN): New define.
2586 (SIGRTMAX): Ditto.
2587 (NSIG): Bump.
2588 * strsig.cc: New file.
2589
50be1d78
CF
25902004-02-03 Jason Tishler <jason@tishler.net>
2591
2592 * window.cc (Winmain): Show windows error code in error output when
2593 RegisterClass fails.
2594
52806019
CF
25952004-02-02 Christopher Faylor <cgf@redhat.com>
2596
2597 * fhandler.h (*::fixup_after_exec): Eliminate unused handle argument.
2598 * fhandler.h (dtable::fixup_after_exec): Eliminate unused handle
2599 argument.
2600 * dcrt0.cc (dll_crt0_1): Reflect elimination of unused handle argument
2601 to fixup_after_exec.
2602 * dtable.cc (dtable::fixup_after_exec): Ditto.
2603 * fhandler_console.cc (fhandler_console::fixup_after_exec): Ditto.
2604 * fhandler_dsp.cc (fhandler_dsp::fixup_after_exec): Ditto.
2605 * fhandler_raw.cc (fhandler_raw::fixup_after_exec): Ditto.
2606 * fhandler_socket.cc (fhandler_socket::fixup_after_exec): Ditto.
2607 * fhandler_virtual.cc (fhandler_virtual::fixup_after_exec): Ditto.
2608 * pipe.cc (fhandler_pipe::fixup_after_exec): Ditto.
2609
26102004-02-02 Pierre Humblet <pierre.humblet@ieee.org>
2611
2612 * spawn.cc (spawn_guts): Do not set ciresrv.parent.
2613 * child_info.h (child_info_spawn::~child_info_spawn): Do not close
2614 parent. Update CURR_CHILD_INFO_MAGIC.
2615 * dcrt0.cc (dll_crt0_0): Do not close spawn_info->parent. Pass NULL to
2616 cygheap->fdtab.fixup_after_exec().
2617
6027d26d
CF
26182004-02-02 Christopher Faylor <cgf@redhat.com>
2619
2620 Throughout, change name from set_inheritance to set_no_inheritance to
2621 better reflect input arguments of this function.
2622
2623 * cygheap.h (CYGHEAPSIZE): Increase size of cygheap to something closer
2624 to the 21st century.
2625
8d9bbb50
CV
26262004-02-02 Corinna Vinschen <corinna@vinschen.de>
2627
2628 * cygerrno.h (set_errno): Replace semicolon with comma in non-DEBUGGING
2629 version to avoid compile time error.
2630
9e1ad59d
CF
26312004-02-01 Christopher Faylor <cgf@redhat.com>
2632
2633 * cygerrno.h (set_errno): Set global errno whenever setting thread
2634 specific version.
2635 * debug.cc (__set_errno): Ditto.
2636
2637 * exceptions.cc (handle_sigsuspend): Remove spurious
2638 sig_dispatch_pending call.
2639 (set_signal_mask): When there seem to be pending signals to dispatch,
2640 tell signal_dispatch_pending/sig_send not to specifically call any
2641 handlers.
2642 * sigproc.h (sig_dispatch_pending): Change declaration to void.
2643 * sigproc.cc (sig_dispatch_pending): Change definition to void. Take
2644 an argument to determine whether to tell sig_send to wait for handler
2645 to be called.
2646 * sigproc.cc (sig_send): Don't call signal handler when sig ==
2647 __SIGFLUSHFAST.
2648 (wait_sig): Honor __SIGFLUSHFAST. Guard against sigpacket::process
2649 nuking si_signo.
2650 * sigproc.h (__SIGFLUSHFAST): Define new special signal.
2651 (sig_dispatch_pending): Change declaration to void. Take optional
2652 boolean argument.
2653
2654 * fork.cc (vfork): Add debugging output.
2655
ef33379b
CF
26562004-01-26 Christopher Faylor <cgf@redhat.com>
2657
2658 * exceptions.cc (sig_handle_tty_stop): Avoid races by waiting for both
2659 signal_arrived and for sigCONT.
2660 (sigpacket::process): Enforce sending of both signal_arrived and
2661 sigCONT, where appropriate.
2662 * gendef (sigreturn): Save tls pointer in ebx so that it can jump into
2663 sigdelayed and use the same register.
2664
5e0f482f
CF
26652004-01-26 Christopher Faylor <cgf@redhat.com>
2666
2667 * cygtls.cc (_threadinfo::init_thread): Add more local reent stdio
2668 initialization.
2669 * dcrt0.cc (initial_env): Can it really be true that XP doesn't allow
2670 attaching a debugger during DLL attach? Add temporary workaround.
2671 (dll_crt0_0): Ensure that _impure_ptr stdio is initialized before any
2672 threads.
2673 (dll_crt0_1): Move _impure_ptr initialization to dll_crt0_0.
2674 * exceptions.cc (try_to_debug): Reinstate old method for looping while
2675 debugging.
2676 * syscalls.cc (_cygwin_istext_for_stdio): Regularize debugging output.
2677 Remove hopefully extraneous check.
2678 (setmode_helper): Add debugging output for improbable case. Use
2679 "binary" rather "raw" for consistency.
2680
d7231d72
CF
26812004-01-25 Christopher Faylor <cgf@redhat.com>
2682
2683 * fhandler.cc (fhandler_base::fhaccess): Avoid always setting errno to
2684 EACCESS when return value is < 0. Rely on errno being set properly.
2685
6bc774fc
CF
26862004-01-25 Christopher Faylor <cgf@redhat.com>
2687
2688 * sigproc.cc (proc_subproc): Don't protect *child's* handle.
2689
9157f0f3
CF
26902004-01-24 Christopher Faylor <cgf@redhat.com>
2691
2692 * fhandler.h (fhandler_base::fhaccess): Return int for compatibility
2693 with access.
2694 * fhandler.cc (fhandler_base::fhaccess): Return int. Use consistent
2695 variable name for exit value. Exit at bottom, printing debugging
2696 information, like other cygwin functions.
2697
f4e815bc
CF
26982004-01-23 Christopher Faylor <cgf@redhat.com>
2699
2700 * cygheap.cc (init_cygheap::close_ctty): Protect YA vforkism.
2701 * fhandler.h (fhandler_base::has_acls): Make pass through for path_conv
2702 method.
2703 (fhandler_base::isremote): Ditto.
2704 (fhandler_base::is_fs_special): Ditto.
2705 (fhandler_base::has_attribute): Ditto. Define new function.
2706 (fhandler_base::fhaccess): Declare new function based on access_worker.
2707 (fhandler_base::set_has_acls): Eliminate obsolete function.
2708 (fhandler_base::set_isremote): Ditto.
2709 * fhandler.cc (fhandler_base::fhaccess): Move from syscalls.cc and into
2710 fhandler_base class. Use fhandler methods to access data rather than
2711 path_conv stuff.
2712 (fhandler_base::device_access_denied): Use fhaccess method.
2713 * fhandler_disk_file.cc (fhandler_disk_file::opendir): Ditto.
2714 (fhandler_base::open_fs): Remove calls to obsolete functions.
2715 * fhandler_virtual.cc (fhandler_virtual::open): Ditto.
2716 * winsup.h (access_worker): Remove obsolete access_worker declaration.
2717 *syscalls.cc (access_worker): Move function to fhandler.cc.
2718 (access): Use fhaccess method.
2719
2720 * pinfo.cc (_pinfo::set_ctty): Clarify debugging output.
2721 * sigproc.cc (sig_dispatch_pending): Ditto.
2722 * syscalls.cc (setsid): Perform minor rearrangement.
2723
b9a76642
PH
27242004-01-23 Pierre Humblet <pierre.humblet@ieee.org>
2725
c571716c
CF
2726 * fhandler_socket.cc (fhandler_socket::create_secret_event): Avoid
2727 creating multiple handles. Always allow event inheritance but set the
2728 handle inheritance appropriately. Improve error handling.
2729 (fhandler_socket::check_peer_secret_event): Improve error handling.
2730 (fhandler_socket::close_secret_event): Simply call CloseHandle.
2731 (fhandler_socket::set_close_on_exec): Set secret event inheritance.
b9a76642 2732
f7239090
CF
27332004-01-23 Christopher Faylor <cgf@redhat.com>
2734
2735 * configure.in: Remove NEWVFORK default.
2736 * configure: Regenerate.
2737 * dcrt0.cc: Conditionalize vfork stuff throughout.
2738 * dtable.cc: Ditto.
2739 * perthread.h: Ditto.
2740 * pipe.cc (fhandler_pipe::close): Ditto.
2741 * spawn.cc (spawnve): Ditto.
2742 * syscalls.cc (setsid): Ditto.
2743 * exceptions.cc (sigpacket::process): Use macro to refer to vfork pid.
2744
2745 * debug.cc (verify_handle): Define new function.
2746 * debug.h (VerifyHandle): Define new macro.
2747 (verify_handle): Declare new function
2748 * fhandler.cc (fhandler_base::dup): Verify that dup'ed handle is not
2749 supposed to be in use.
2750 (fhandler_base::set_inheritance): Ditto.
2751 (fhandler_base::fork_fixup): Ditto.
2752 * fhandler_socket.cc (fhandler_socket::dup): Ditto.
2753 * fhandler_tty.cc (fhandler_tty_slave::open): Ditto.
2754 * net.cc (set_socket_inheritance): Ditto.
2755 * pinfo.cc (pinfo_fixup_after_exec): Ditto.
2756 * sigproc.cc (proc_subproc): Ditto.
2757 (sig_send): Ditto.
2758 * spawn.cc (spawn_guts): Ditto.
2759 * thread.cc (pthread::init_mainthread): Ditto.
2760 * pipe.cc (fhandler_pipe::close): Close read_state with
2761 ForceCloseHandle since it was protected.
2762 (fhandler_pipe::fixup_after_exec): Protect read_state handle.
2763 (fhandler_pipe::dup): Correctly close open handles on error condition.
2764 Verify that dup'ed handle is not supposed to be in use.
2765 (fhandler_pipe::create): Protect read_state.
2766
35b7fc6c
CF
27672004-01-23 Christopher Faylor <cgf@redhat.com>
2768
2769 * exceptions.cc (sig_handle_tty_stop): Fix boneheaded mistake by using
2770 correct check for parent state rather than inverted check mistakenly
2771 introduced on 2003-09-15.
2772
a33df422
CF
27732004-01-22 Brian Ford <ford@vss.fsi.com>
2774
2775 * fhandler_serial.cc (fhandler_serial::raw_write): Prevent a deadlock
2776 when the input buffer overflows.
2777 (fhandler_serial::raw_read): Correct to print the actual error and only
2778 call PurgeComm when necessary.
2779
35711de7
CF
27802004-01-22 Christopher Faylor <cgf@redhat.com>
2781
2782 * dcrt0.cc (reent_data): Make global.
2783 * cygwin.din: Reexport reent_data.
2784
39d06d71
CF
27852004-01-22 Christopher Faylor <cgf@redhat.com>
2786
2787 * cygtls.cc (_threadinfo::remove): Don't assume that we are removing
2788 _my_tls.
2789 * exceptions.cc (setup_handler): Improve debugging output.
2790 (call_signal_handler_now): Remove ill-advised debugger call.
2791 * sigproc.cc (sigcomplete_main): Delete.
2792 (sig_send): Honor FIXME and avoid using main thread's completion event
2793 for everything or suffer races.
2794 (pending_signals::add): Default stored mask to current process mask
2795 rather than mask at time of signal send.
2796 (wait_sig): Add debugging output.
2797 * sigproc.h (sigpacket::mask_storage): Delete.
2798
537ca63f
CF
27992004-01-22 Christopher Faylor <cgf@redhat.com>
2800
2801 * fhandler.cc (fhandler_base::open): Revert isfs change.
2802
a1dcf5d8
CF
28032004-01-21 Christopher Faylor <cgf@redhat.com>
2804
2805 * devices.in: Change raw com device to more correct form.
2806
918f634f
CF
28072004-01-21 Christopher Faylor <cgf@redhat.com>
2808
2809 * fhandler.cc (fhandler_base::open): Use major numbers rather than
2810 device numbers to control special behavior for devices which take
2811 units.
2812 * fhandler_raw.cc (fhandler_dev_raw::writebuf): Ditto.
2813 (fhandler_dev_raw::fstat): Ditto.
2814 (fhandler_dev_raw::open): Ditto.
2815 (fhandler_dev_raw::ioctl): Ditto.
2816
0a0c89ef
CF
28172004-01-21 Nicholas Wourms <nwourms@netscape.net>
2818
2819 * signal.cc (sigaction): Fix if-statement typo.
2820
be14b608
CF
28212004-01-21 Christopher Faylor <cgf@redhat.com>
2822
2823 * cygtls.cc (handle_threadlist_exception): Change logic, improve
2824 debugging output.
2825
bcb4223c
CF
28262004-01-21 Christopher Faylor <cgf@redhat.com>
2827
2828 * fhandler_tty.cc (fhandler_tty::ioctl): Semi-revert 2003-09-26 change
2829 for TIOCSWINSZ. It is not an error for ioctl_request_event to be
2830 missing.
2831
28322004-01-20 Christopher Faylor <cgf@redhat.com>
2833
2834 * sigproc.cc (pending_signals::save): New function.
2835 (pending_signals::restore): Ditto.
2836 (sig_clear): Save/restore current queue pointer.
2837 (wait_sig): Delete signals marked as such.
2838 * sigproc.h (__SIGDELETE): New enum.
2839
67fcf127
CF
28402004-01-20 Christopher Faylor <cgf@redhat.com>
2841
2842 * include/cygwin/version.h: Bump DLL minor number to 8.
2843
2844 * cygmalloc.h: Make more concessions to attempts to get debugging
2845 malloc working.
2846 * debug.h: Ditto.
2847 * dlmalloc.cc: Ditto.
2848 * dlmalloc.h: Ditto.
2849 * malloc_wrapper.cc: Ditto.
2850
2851 * perthread.h (perthread::create): Use calloc to ensure zeroed memory.
2852
fb69e3ed
CV
28532004-01-20 Christopher Faylor <cgf@redhat.com>
2854
2855 * sec_acl.cc (setacl): Make sure sd_ret is large enough.
2856
d795119c
CF
28572004-01-19 Christopher Faylor <cgf@redhat.com>
2858
2859 * sigproc.cc (sigproc_terminate): Don't close sendsig handle when
2860 execing since we're not closing what we think we're closing.
2861 (sig_send): Improve debugging when exiting due to no_signals_available.
2862
2863 * wincap.h (wincaps::cant_debug_dll_entry): New element.
2864 * wincap.cc: Implement above element throughout.
2865 * dcrt0.cc (initial_env): Accommodate changes necessary to allow
2866 initial debugging for systems which do not allow debugging in
2867 dll_entry.
2868 (dll_crt0_0): Add initial_env call back here.
2869
2870 * Makefile.in (install-man): Use mandir as target for installation.
2871
28722004-01-19 Christopher Faylor <cgf@redhat.com>
2873
2874 * include/cygwin/version.h: Bump DLL minor number to 7 (should have been
2875 done earlier).
2876
f6936c48
CF
28772004-01-19 Christopher Faylor <cgf@redhat.com>
2878
2879 * cygwin/include/signal.h: Add copyright notice.
2880
2881 * cygwin.din: Make clock SIGFE. Add clock_gettime, sigwaitinfo,
2882 timer_create, timer_delete, timer_settime.
2883 * include/cygwin/version.h: Reflect above additions.
2884 * fork.cc (fork_child): Call fixup_timers_after_fork.
2885 * signal.cc (sigwait): Remove unused variable.
2886 * timer.cc: New file.
2887 (clock_gettime): Define new function.
2888 (timer_tracker): Define new struct used by timer functions.
2889 (timer_tracker::timer_tracker): New function.
2890 (to_us): New function.
2891 (timer_thread): New function.
2892 (timer_tracker::settime): New function.
2893 (timer_create): New function.
2894 (timer_settime): New function.
2895 (timer_delete): New function.
2896 (fixup_timers_after_fork): New function.
2897 * cygthread.cc: Bump thread count.
2898
28992004-01-17 Christopher Faylor <cgf@redhat.com>
2900
2901 * signal.cc (sigwaitinfo): Define new function.
2902 (sigwait): Redefine based on sigwaitinfo.
2903 * include/cygwin/signal.h (sigwaitinfo): Declare.
2904 (sigwait): Ditto.
2905
29062004-01-17 Christopher Faylor <cgf@redhat.com>
2907
2908 * dtable.cc (dtable::vfork_parent_restore): Avoid double close of ctty
2909 when ctty == ctty_on_hold.
2910
29112004-01-16 Christopher Faylor <cgf@redhat.com>
2912
2913 * cygtls.h (_threadinfo::threadkill): New element.
2914 (_threadinfo::set_threadkill): Declare new function.
2915 (_threadinfo::reset_threadkill): Declare new function.
2916 * dcrt0.cc (dcrt0_1): Call here so that it will be possible to attach
2917 to running process with #(*& Windows Me/9x.
2918 (initial_env): Try to initialize strace if uninitialized.
2919 * gendef: Don't zero signal if threadkill is set since that will happen
2920 in the called function.
2921 * signal.cc (sigwait): Ensure cleanup in error conditions.
2922 * sigproc.cc (sig_send): Clear packet mask storage.
2923 (wait_subproc): Fill in child exit code in siginfo_t structure.
2924 * thread.cc (pthread_kill): Set threadkill flag.
2925 * tlsoffsets.h: Regenerate.
2926
29272004-01-16 Christopher Faylor <cgf@redhat.com>
2928
2929 Throughout, use siginfo_t to fill out all signal information for
2930 "kernel" signals.
2931 * cygtls.h (_threadinfo::set_siginfo): Declare new function.
2932 * cygtls.cc (_threadinfo::set_siginfo): Define new function.
2933 * dcrt0.cc (do_exit): Accommodate siginfo_t considerations.
2934 * exceptions.cc (handle_exceptions): Ditto.
2935 (sig_handle_tty_stop): Ditto.
2936 (ctrl_c_handler): Use killsys() to send signal.
2937 (sigpacket::process): Rename from sig_handle. Use siginfo_t field from
2938 sigpacket for everything.
2939 (tty_min::kill_pgrp): Accommodate siginfo_t considerations.
2940 (fhandler_termios::bg_check): Ditto.
2941 * fhandler_tty.cc (fhandler_tty_slave::ioctl): Use killsys() to send signal.
2942 * signal.cc (kill_worker): Rewrite to use siginfo_t second argument.
2943 (kill_pgrp): Ditto.
2944 (kill0): Define new function pulled from kill().
2945 (kill): Rewrite as frontend to kill0.
2946 (killsys): Define new function.
2947 * sigproc.cc (sigelem): Eliminate.
2948 (sigpacket): Move to sigproc.h. Subsume sigelem.
2949 (pending_signals): Use sigpacket rather than sigelem for everything.
2950 (sig_clear): Ditto.
2951 (wait_sig): Ditto.
2952 (sig_send): Rewrite to use siginfo_t argument.
2953 (sig_send): New function wratpper to sig_send with siginfo_t argument.
2954 (wait_subproc): Accommodate siginfo_t considerations.
2955 * thread.cc (pthread_kill): Ditto.
2956 * sigproc.h (sigpacket): Move here.
2957 (sigpacket::process): Declare "new" function.
2958 (sig_handle): Eliminate declaration.
2959 (sig_send): Declare with new paramaters.
2960 (killsys): Declare new function.
2961 (kill_pgrp): Declare.
2962 * winsup.h: Move some signal-specific stuff to sigproc.h.
2963 * include/cygwin/signal.h: Tweak some siginfo_t stuff.
2964
46ee5422
CF
29652004-01-16 Christopher Faylor <cgf@redhat.com>
2966
2967 * fhandler_console.cc (fhandler_console::close): Remove obsolete test
2968 for vfork_cleanup.
2969 * pipe.cc (fhandler_pipe::close): Add comment.
2970
49d0c042
CF
29712004-01-16 Christopher Faylor <cgf@redhat.com>
2972
2973 * cygheap.cc (init_cygheap::close_ctty): Don't NULL ctty if it is still
2974 active.
2975
001197ae
CF
29762004-01-16 Christopher Faylor <cgf@redhat.com>
2977
2978 * dtable.cc (dtable::vfork_parent_restore): Store ctty_on_hold prior to
2979 calling close_all_files since it will be zeroed.
2980
ac02533e
CF
29812004-01-15 Christopher Faylor <cgf@redhat.com>
2982
2983 * gentls_offsets: Reinstate unlink of temp files.
2984
29852004-01-14 Christopher Faylor <cgf@redhat.com>
2986
2987 * fhandler_console.cc (fhandler_console::close): Fix debugging output.
2988 (fhandler_console::fixup_after_fork): Decrement open_fhs prior to call
2989 to fhandler_console::open since this would cause incrementing too much
2990 incrementing in child processes. (Probably needs to be handled more
2991 elegantly someday)
2992 (fhandler_console::fixup_after_exec): Ditto.
2993
2d1d1eb1
CF
29942004-01-14 Christopher Faylor <cgf@redhat.com>
2995
2996 * cygtls.h (_threadinfo::call): Remove regparm declaration to work
2997 around compiler bug.
2998
29992004-01-13 Christopher Faylor <cgf@redhat.com>
3000
3001 * autoload.cc (TryEnterCriticalSection): Remove.
3002 * dcrt0.cc (dll_crt0_0): Delete inappropriate setting of
3003 _my_tls.stackptr to NULL since it has really bad consequences. Make
3004 'si' an automatic variable.
3005
30062004-01-13 Christopher Faylor <cgf@redhat.com>
3007
3008 * cygtls.cc (_threadinfo::init_thread): Correct thinko which caused
3009 thread list to be allocated every time.
3010 * cygtls.h (CYGTLS_PADSIZE): Define as const int.
3011 * sync.h: Make multiple inclusion safe.
3012 (muto::next): Eliminate.
3013 (muto::exiting_thread): New variable.
3014 (muto::set_exiting_thread): New function.
3015 (new_muto): Change to use different section for mutos since c++ give
3016 inexplicable warning in some cases otherwise.
3017 (new_muto1): Ditto.
3018 * dcrt0.cc (do_exit): Call muto::set_exiting_thread here.
3019 * sync.cc (muto_start): Eliminate.
3020 (muto::acquire): Always give exiting thread a lock. Never give thread
3021 a lock if exiting.
3022 (muto::release): Ditto for releasing.
3023 * dtable.cc (dtable::init_lock): Unline function and define here.
3024 * dtable.h (lock_cs): Define as a muto since critical sections seem to
3025 work oddly on Windows Me.
3026 (lock): Accommodate switch to muto.
3027 (unlock): Ditto.
3028 * exceptions.cc (setup_handler): Don't worry about acquiring mutos
3029 since that hasn't mattered for a long time.
3030 (signal_exit): Ditto: muto stuff will be handled automatically on exit
3031 now.
3032
30332004-01-12 Christopher Faylor <cgf@redhat.com>
3034
3035 * Makefile.in (DLL_IMPORTS): Link advapi32 to ensure proper DLL
3036 initialization.
3037 * autoload.cc (RegCloseKey): Arbitrarily choose this function as a
3038 "seed" to pull the advapi32 link library in. So, comment out the
3039 autoloading.
3040 * cygtls.cc (_threadinfo::init_thread): Just clear CYGTLS_PADSIZE.
3041 (_threadinfo::remove): Add debugging.
3042 (_threadinfo::find_tls): Ditto.
3043 * cygtls.h (_threadinfo::padding): Make zero length (for now?).
3044 * dcrt0.cc (dll_crt0_0): Move more initialization here from dll_crt0_1.
3045 (dll_crt0_1): See above.
3046 * dtable.h (dtable::lock): Remove commented out critical section
3047 locking.
3048 * dtable.h (dtable::init_lock): Remove commented out critical section
3049 locking.
3050 * dtable.h (dtable::unlock): Remove commented out critical section
3051 locking.
3052 * exceptions.cc (interruptible): bool'ize.
3053 * init.cc (threadfunc_fe): Revert to storing threadfunc at stack
3054 bottom.
3055 (munge_threadfunc): Ditto. Avoid adding overhead to
3056 calibration_thread.
3057 (prime_threads): Don't initialize tls stuff.
3058 (dll_entry): Make minor change to initialization order.
3059 * tlsoffsets.h: Regenerate.
3060
3061 * sigproc.cc (wait_sig): Add sanity check for end of process thread
3062 exit.
3063
3064 * select.h: Make minor formatting change.
3065
30662004-01-10 Christopher Faylor <cgf@redhat.com>
3067
3068 * Makefile.in: Add still more -fomit-frame-pointer functions.
3069 * dtable.h (dtable::lock): New function.
3070 (dtable::unlock): New function.
3071 (dtable::init_lock): New function.
3072 * cygheap.h (HEAP_TLS): Declare new enum value.
3073 (init_cygheap::threadlist): Declare new array.
3074 (init_cygheap::sthreads): Declare new variable.
3075 (cygheap_fdmanip::~cygheap_fdmanip): Use new dtable lock/unlock
3076 functions.
3077 (cygheap_fdnew::cygheap_fdnew): Ditto.
3078 (cygheap_fdget::cygheap_fdget): Ditto.
3079 * dtable.cc (dtable_init): Initialize fdtab critical section.
3080 (dtable::fixup_after_fork): Ditto.
3081 (dtable::fixup_after_exec): Ditto.
3082 (dtable::dup2): Use lock/unlock calls to protect access to fdtab.
3083 (dtable::find_fifo): Ditto.
3084 (dtable::fixup_before_fork): Ditto.
3085 (dtable::fixup_before_exec): Ditto.
3086 (dtable::set_file_pointers_for_exec): Ditto.
3087 (dtable::vfork_child_dup): Ditto.
3088 (dtable::vfork_parent_restore): Ditto.
3089 * syscalls.cc (close_all_files): Ditto.
3090 * sync.h (muto::acquired): Declare new function.
3091 (new_muto1): Declare new macro used to specify name of muto storage.
3092 * sync.cc (muto::acquired): Define new function.
3093
3094 * cygthread.cc (cygthread::stub): Remove signal chain removal call
3095 since it is handled during initialization now.
3096 * cygthread.cc (cygthread::simplestub): Remove signal chain removal
3097 call since it is handled during initialization now.
3098 * cygtls.cc (sentry): New class used for locking. Use throughout.
3099 (_threadinfo::reset_exception): Don't pop stack.
3100 (_threadinfo::find_tls): Move from exceptions.cc.
3101 (_threadinfo::init_thread): Initialize array of threads rather than
3102 linked list. Take second argument indicating thread function for this
3103 thread.
3104 (_threadinfo::remove): Search thread array rather than linked list.
3105 Use sentry to lock. Only unlock if we got the lock.
3106 (_threadinfo::find_tls): Ditto for first two.
3107 (handle_threadlist_exception): Handle exceptions when manipulating the
3108 thread list in case of premature thread termination.
3109 (_threadinfo::init_threadlist_exceptions): Ditto.
3110 * cygtls.h (TLS_STACK_SIZE): Decrease size.
3111 (_threadinfo::padding): Add element to avoid overwriting lower part of
3112 stack.
3113 (_threadinfo::remove): Add a "wait" argument to control how long we
3114 wait for a lock before removing.
3115 * exceptions.cc (init_exception_handler): Make global. Take argument
3116 to control exception handler being set.
3117 (ctrl_c_handler): Wait forever when removing self from signal chain.
3118 (_threadinfo::find_tls): Move to cygtls.cc.
3119 (sig_handle): Reorganize detection for thread-specific signals.
3120 * heap.cc (heap_init): Rework slightly. Make fatal error more verbose.
3121 Remove malloc initialization since it can't happen during dll attach.
3122 * init.cc (search_for): Move address to search for on stack here.
3123 (threadfunc_ix): Ditto for stack offset. Make shared so that stack
3124 walk potentially only has to be done once when cygwin processes are
3125 running.
3126 (threadfunc_fe): Use standard tls to store thread function (may change
3127 back later).
3128 (calibration_thread): New function. Potentially called to find
3129 threadfunc_ix.
3130 (munge_threadfunc): Search for "search_for" value on stack. Output
3131 warning when thread func not found on stack. Use standard tls to store
3132 thread function.
3133 (prime_threads): New function. Called to prime thread front end.
3134 (dll_entry): Call dll_crt0_0 here when DLL_PROCESS_ATTACH. Call
3135 prime_threads here. Try to remove thread from signal list here.
3136 * sigproc.cc (wait_sig): Initialize threadlist exception stuff here.
3137 * thread.cc (pthread::exit): Pass argument to signal list remove
3138 function.
3139 * thread.h: Remove obsolete *ResourceLock defines.
3140
3141 * tlsoffsets.h: Regenerate.
3142
3143 * winsup.h (spf): Define temporary debug macro to be deleted later.
3144
3145 * dcrt0.cc (dll_crt0_0): New function, called during DLL
3146 initialization. Mainly consists of code pulled from dll_crt0_1.
3147 (dll_crt0_1): See above.
3148 (_dll_crt0): Wait for initial calibration thread to complete, if
3149 appropriate. Move some stuff to dll_crt0_0.
3150 (initialize_main_tls): Accommodate argument change to
3151 _thread_info::init_thread.
3152 * fork.cc (fork_child): Ditto.
3153 (sync_with_child): Fix debug message.
3154 * external.cc (cygwin_internal): Remove special considerations for
3155 uninitialized dll since initialization happens during dll attach now.
3156
3157 * dlfcn.cc (dlopen): Remove obsolete *ResourceLock calls.
3158 (dlclose): Ditto.
3159
31602004-01-05 Christopher Faylor <cgf@redhat.com>
3161
3162 * cygheap.h (init_cygheap::close_ctty): Declare new function.
3163 * cygheap.cc (init_cygheap::close_ctty): Define new function.
3164 * syscalls.cc (close_all_files): Use close_ctty.
3165 (setsid): Ditto.
3166
3167 * cygthread.cc (cygthread::stub): Remove exception initialization.
3168 * cygthread.cc (cygthread::stub): Remove exception initialization.
3169 (cygthread::simplestub): Ditto.
3170 * thread.cc (pthread::thread_init_wrapper): Ditto.
3171 * cygtls.cc (_last_thread): Make static.
3172 (_threadinfo::call2): Initialize exception handler here.
3173 (_threadinfo::find_tls): Move here.
3174 * exceptions.cc (_threadinfo::find_tls): Move.
3175
3176 * dcrt0.cc (__api_fatal): Add prefix info to message here rather than
3177 including it in every call to function.
3178 * winsup.h (api_fatal): Accommodate above change.
3179 * debug.cc (add_handle): Don't do anything if cygheap not around.
3180 (mark_closed): Ditto.
3181
3182 * dll_init.cc (dll_list::detach): Fix debug output.
3183 * fork.cc (sync_with_child): Ditto.
3184 (vfork): Improve debug output.
3185 * heap.cc (heap_init): Ditto.
3186
3187 * exceptions.cc (try_to_debug): Clarify message when debugger attaches.
3188
0efff769
CF
31892004-01-03 Christopher Faylor <cgf@redhat.com>
3190
3191 * exceptions.cc (_threadinfo::interrupt_now): Avoid double call to
3192 sigdelayed.
3193 * pinfo.cc (_pinfo::commune_send): Avoid inexplicable test which caused
3194 most pids to be shown as "<defunct>" on Win9x.
3195
e80cbe3e
CF
31962004-01-02 Christopher Faylor <cgf@redhat.com>
3197
3198 * cygheap.h (init_cygheap): Play more vfork shell games and move
3199 ctty_on_hold and open_fhs_on_hold (back) here.
3200 * dcrt0.cc (_dll_crt0): Just set impure_ptr_ptr here and let later
3201 initialization deal with tls.
3202 * dtable.cc (dtable::vfork_child_fixup): Move ctty considerations here.
3203 (dtable:vfork_parent_restore): And here.
3204 * fork.cc (vfork): Reflect change to ctty handling.
3205 * perthread.h (vfork_save::fhctty): Eliminate.
3206
3207 * cygwin.din: Make more exports NOSIGFE that will never be interrupted
3208 by a signal.
3209
3210 * init.cc (dll_entry): Set stackptr to NULL to catch problems earlier.
This page took 0.400775 seconds and 5 git commands to generate.