]> sourceware.org Git - newlib-cygwin.git/blame - winsup/cygwin/ChangeLog
* net.cc (wsock_event): Add destructor.
[newlib-cygwin.git] / winsup / cygwin / ChangeLog
CommitLineData
9f13167f
CV
1Mon Jun 4 0:14:00 2001 Corinna Vinschen <corinna@vinschen.de>
2
3 * net.cc (wsock_event): Add destructor.
4
aa7a6112
CF
5Sun Jun 3 09:49:55 2001 Robert Collins <rbtcollins@hotmail.com>
6
7 * dlfcn.cc (dlclose): Do not call FreeLibrary if the symbol to close
8 was obtained by dlopen(NULL,...).
9
77d13021
CF
10Sat Jun 2 23:11:52 2001 Christopher Faylor <cgf@cygnus.com>
11
12 * syscalls.cc (sleep): Try to be a little more accomodating of signal
13 arrival. Ensure that the signal handler is called.
14
7ceb1cac
CF
15Sat Jun 2 14:07:28 2001 Christopher Faylor <cgf@cygnus.com>
16
17 * cygheap.cc (cygheap_root::cygheap_rot): Remove constructor.
18 (cygheap_root::~cygheap_root): Remove destructor.
19 (cygheap_root::operator =): Remove.
20 (cygheap_root::set): New method.
21 * cygheap.h (cygheap_root): Reflect above changes. Store root info in
22 mount-like structure.
23 (cygheap_root:posix_ok): New method.
24 (cygheap_root::ischroot_native): Ditto.
25 (cygheap_root::unchroot): Ditto.
26 (cygheap_root::exists): Ditto.
27 (cygheap_root::posix_length): Ditto.
28 (cygheap_root::posix_path): Ditto.
29 (cygheap_root::native_length): Ditto.
30 (cygheap_root::native_path): Ditto.
31 * dir.cc (opendir): Remove special chroot test.
32 * path.cc (path_prefix_p): Remove front end.
33 (normalize_posix_path): Reorganize chroot tests to accomodate new
34 convention of allowing paths using posix chroot prefix.
35 (path_conv::check): Pass a "already ran normalize" option to
36 conv_to_win32_path. Return if there is an error from this function.
37 (mount_info::conv_to_win32_path): Add extra argument. Don't call
38 normalize_posix_path if caller has already done so. Substitute chroot
39 setting, if any, for root translation. Add chroot checking to final
40 output step.
41 * shared_info (mount_info): Accomodate additional argument to
42 conv_to_win32_path.
43 * syscalls.cc (chroot): Store both normalized posix path and native
44 path in chroot.
45
bb825147
CF
46Fri Jun 1 10:57:19 2001 Christopher Faylor <cgf@cygnus.com>
47
48 * path.cc (chdir): Really make sure that isspace gets only an unsigned
49 char.
50
bc28fe95
CV
51Fri Jun 1 13:45:00 2001 Corinna Vinschen <corinna@vinschen.de>
52
53 * syscalls.cc (_rename): Handle the case that `foo' is renamed to
54 `bar' while `bar.lnk' is an existing shortcut-symlink.
55
1de19751
CF
56Thu May 31 15:57:57 2001 Christopher Faylor <cgf@cygnus.com>
57
58 * fhandler.cc (fhandler_disk_file::fstat): Avoid clearing S_IFMT bits
59 since we've already pre-cleared everything anyway.
60
ecfb6f11
CF
61Wed May 30 23:51:32 2001 Earnie Boyd <earnie_boyd@yahoo.com>
62
63 * path.cc (chdir): Always send unsigned chars to isspace since newlib's
64 isspace doesn't deal well with "negative" chars.
65
66Wed May 30 23:51:32 2001 Christopher Faylor <cgf@cygnus.com>
67
68 * fhandler.cc (fhandler_disk_file::open): Propagate remote status of
69 file garnered from path_conv. Move #! checking to fstat.
70 (fhandler_disk_file::fstat): Reorganize st_mode setting to eliminate
71 duplication. Move check for #! here from fhandler::open.
72
73 * fhandler.h (fhandler_base::isremote): New method.
74 (fhandler_base::set_isremote): Ditto.
75 (fhandler_base::set_execable_p): Also record "don't care if executable state".
76 (fhandler_base::dont_care_if_execable): New method.
77 * path.cc (path_conv::check): Clear new flags. Appropriately set
78 vol_flags, drive_type, and is_remote_drive.
79 * path.h: Add new flags and methods for manipulating them.
80 * syscalls.cc (_unlink): Use isremote() to determine if a path is
81 remote rather than calling GetDriveType.
82 (stat_worker): Ditto.
83 * security.cc (get_file_attribute): Or attribute with result of
84 NTReadEA to be consistent with get_nt_attribute.
85
b2939a81
CV
86Tue May 29 19:02:00 2001 Corinna Vinschen <corinna@vinschen.de>
87
88 * sec_helper.cc (cygsid::getfrompw): Change parameter to `const'.
89 (cygsid::getfromgr): Ditto.
90 * security.cc: Use `sys_mbstowcs' and `sys_wcstombs' throughout.
91 (extract_nt_dom_user): Try to get user and domain from SID in
92 pw->pw_gecos first.
93 * security.h (class cygsid): Change parameter of getfrompw() and
94 getfromgr() to `const'.
95 * uinfo.cc (internal_getlogin): Change order for evaluating user
96 information in winNT case. Drop usage of NetWkstaUserGetInfo().
97
98Mon May 28 21:34:00 2001 Corinna Vinschen <corinna@vinschen.de>
792ca1c2
CV
99
100 * shortcut.c (check_shortcut): Treat only Cygwin shortcuts as symlinks.
101
b9ce8140
CF
102Fri May 25 11:07:07 2001 Christopher Faylor <cgf@cygnus.com>
103
104 * path.cc (symlink_info::check): Correctly set 'ext_tacked_on'. Use
105 this to determine if user specified 'foo.lnk' explicitly. Reorganize
106 slightly to get rid of one goto.
107
fdc5ebe9
CV
108Fri May 25 10:15:00 2001 Corinna Vinschen <corinna@vinschen.de>
109
110 * path.cc (symlink_info::check): Add a check to return correctly
111 if incoming `*.lnk' file is not a symlink.
112
86f41a09
CF
113Thu May 24 15:46:50 2001 Christopher Faylor <cgf@cygnus.com>
114
115 * path.cc (slash_drive_prefix_p): Remove.
116 (mount_info::slash_drive_to_win32_path): Ditto.
117 (mount_info::conv_to_win32_path): Remove slash drive prefix check.
118 (mount_info::add_item): Ditto.
119 (mount_info::del_item): Ditto.
120 * shared_info.h (mount_info): Remove slash_drive_to_win32_path
121 declaration.
122
52cd2f88
CF
123Thu May 24 01:17:33 2001 Christopher Faylor <cgf@cygnus.com>
124
125 * exceptions.cc (handle_exceptions): Bump repeat count for debugging
126 kick out.
127
128 * fhandler.h (fhandler_dev_dsp): Add a fixup_after_exec.
129 * fhandler_dsp.cc (class Audio): Add TOT_BLOCK_SIZE to enum.
130 (operator new): New.
131 (bigwavebuffer): Declare using TOT_BLOCK_SIZE to avoid buffer overruns.
132 (Audio::Audio): Optimize slightly.
133 (fhandler_dev_dsp::open): Allocate s_audio using static buffer.
134 (fhandler_dev_dsp::fixup_after_exec): New function. Ditto.
135
7b9a10a6
CV
136Wed May 23 17:45:00 2001 Corinna Vinschen <corinna@vinschen.de>
137
138 * syscalls.cc (seteuid): Restrict overriding external provided
139 user tokens to ntsec. Don't test external tokens for primary
140 group to evaluate if it should be overridden. Restrict creating
141 internal tokens to ntsec.
142
07d08883
CV
143Wed May 23 10:11:00 2001 Corinna Vinschen <corinna@vinschen.de>
144
145 * syscalls.cc (chown_worker): Don't check for ENOSYS.
146
43a19043
CF
147Tue May 22 12:20:07 2001 Christopher Faylor <cgf@cygnus.com>
148
149 * signal.cc (sleep): Protect with sigframe.
150
e7e956a7
CV
151Tue May 22 17:58:00 2001 Corinna Vinschen <corinna@vinschen.de>
152
153 * security.cc (get_file_attribute): Don't set errno.
154
7cef8b61
CF
155Mon May 21 15:08:00 2001 Christopher Faylor <cgf@cygnus.com>
156
157 * configure.in: Allow --enable-newvfork to turn NEWVFORK on and off.
158 * configure: Regenerate.
159
f01fb5e7
CF
160Mon May 21 11:46:01 2001 Christopher Faylor <cgf@cygnus.com>
161
162 * include/cygwin/version.h: Bump minor version number.
163
1b72f36e
CF
164Sun May 20 13:26:25 2001 Christopher Faylor <cgf@cygnus.com>
165
166 * fhandler_dsp.cc: Reformat to GNU standards.
167 (s_audio): Change to a pointer throughout.
168 (fhandler_dev_dsp::open): Initialize s_audio, if required.
169
1fcc912f
CV
170Sat May 19 23:40:00 2001 Corinna Vinschen <corinna@vinschen.de>
171
172 * autoload.cc: Add load statements for `LookupAccountNameW',
173 `LsaClose', `LsaEnumerateAccountRights', `LsaFreeMemory',
174 `LsaOpenPolicy', `LsaQueryInformationPolicy', `NetLocalGroupEnum',
175 `NetLocalGroupGetMembers', `NetServerEnum', `NetUserGetGroups' and
176 `NtCreateToken'.
177 * ntdll.h: Add declaration for `NtCreateToken'.
178 * sec_helper.cc: Add `well_known_local_sid', `well_known_dialup_sid',
179 `well_known_network_sid', `well_known_batch_sid',
180 `well_known_interactive_sid', `well_known_service_sid' and
181 `well_known_authenticated_users_sid'.
182 (cygsid::string): Define as const method.
183 (cygsid::get_sid): Set psid to NO_SID on error.
184 (cygsid::getfromstr): Ditto.
185 (cygsid::getfrompw): Simplify.
186 (cygsid::getfromgr): Check for gr == NULL.
187 (legal_sid_type): Move to security.h.
188 (set_process_privilege): Return -1 on error, otherwise 0 or 1 related
189 to previous privilege setting.
190 * security.cc (extract_nt_dom_user): Remove `static'.
191 (lsa2wchar): New function.
192 (open_local_policy): Ditto.
193 (close_local_policy): Ditto.
194 (get_lsa_srv_inf): Ditto.
195 (get_logon_server): Ditto.
196 (get_logon_server_and_user_domain): Ditto.
197 (get_user_groups): Ditto.
198 (is_group_member): Ditto.
199 (get_user_local_groups): Ditto.
200 (sid_in_token_groups): Ditto.
201 (get_user_primary_group): Ditto.
202 (get_group_sidlist): Ditto.
203 (get_system_priv_list): Ditto.
204 (get_priv_list): Ditto.
205 (get_dacl): Ditto.
206 (create_token): Ditto.
207 (subauth): Return immediately if SE_TCB_NAME can't be assigned.
208 Change all return statements in case of error to jumps to `out'
209 label. Add `out' label to support cleanup.
210 * security.h: Add extern declarations for `well_known_local_sid',
211 `well_known_dialup_sid', `well_known_network_sid',
212 `well_known_batch_sid', `well_known_interactive_sid',
213 `well_known_service_sid' and `well_known_authenticated_users_sid'.
214 Add extern declarations for functions `create_token',
215 `extract_nt_dom_user' and `get_logon_server_and_user_domain'.
216 (class cygsid): Add method `assign'. Change operator= to call new
217 `assign' method. Add `debug_print' method.
218 (class cygsidlist): New class.
219 (legal_sid_type): Moved from sec_helper.cc to here.
220 * spawn.cc (spawn_guts) Revert reversion of previous patch.
221 Call `RevertToSelf' and `ImpersonateLoggedOnUser' instead of `seteuid'
222 again.
223 * syscalls.cc (seteuid): Rearranged. Call `create_token' now when
224 needed. Call `subauth' if `create_token' fails. Try setting token
225 owner and primary group only if token was not explicitely created
226 by `create_token'.
227 * uinfo.cc (internal_getlogin): Try harder to generate correct user
228 information. Especially don't trust return value of `GetUserName'.
229
975d2083
CF
230Sat May 19 21:16:07 2001 Christopher Faylor <cgf@cygnus.com>
231
232 * fork.cc (fork_parent): Move atforkprepare call here.
233 (fork): From here.
234
69fb3121
CV
235Sat May 19 18:35:00 2001 Corinna Vinschen <corinna@vinschen.de>
236
237 * autoload.cc: Add missing load statement for `CancelIo'.
238
87f0d5ad
CF
239Sat May 19 01:22:43 2001 Christopher Faylor <cgf@cygnus.com>
240
241 * grp.cc (read_etc_group): Don't copy mutex on fork.
242 * pwd.cc (read_etc_passwd): Ditto.
243 * autoload.cc (LoadDLLfuncEx): Use LoadDLLprime to initialize DLL
244 specific area.
245
0260054a
CV
246Fri May 18 10:31:00 2001 Corinna Vinschen <corinna@vinschen.de>
247
248 * net.cc (wsock_event::wait): Explicitely cancel IO when a signal
249 arrived to avoid data loss. Fallback to blocking IO when canceling
250 fails.
251
42938841
CV
252Thu May 17 15:29:00 2001 Corinna Vinschen <corinna@vinschen.de>
253
254 * security.cc (cygwin_set_impersonation_token): Never destroy
255 previous token object.
256 (subauth): Create token source with well defined identifier.
257
1cec7241
CV
258Wed May 16 23:27:00 2001 Corinna Vinschen <corinna@vinschen.de>
259
260 * uinfo.cc (uinfo_init): Just set user token to INVALID_HANDLE_VALUE.
261 Token value is already invalid at that point.
262
3065afdb
CV
263Wed May 16 21:34:00 2001 Fred Yankowski <fred@ontosys.com>
264
265 * net.cc (errmap): Add missing mapping from WSAEINTR to EINTR.
266
48621257
CV
267Wed May 16 09:20:00 2001 Corinna Vinschen <corinna@vinschen.de>
268
269 * sec_helper.cc (legal_sid_type): Fix conditional. Change to
270 inline function.
271
d61b1993
CF
272Wed May 16 01:01:48 2001 Christopher Faylor <cgf@cygnus.com>
273
274 * autoload.h: Eliminate.
275 * autoload.cc: Pull in autoload.h. Eliminate many macros. Rewrite to
276 avoid necessity of initialization routines. Just use a standard one.
277 (wsock_init): New function. Moved from net.cc.
278 * net.cc (wsock_init): Move to autoload.cc.
279 (wsadata): Make global.
280 * dtable.cc (dtable::build_fhandler): Use more reliable method for
281 checking if net stuff has been loaded.
282
2b0a111f
CV
283Tue May 15 19:52:00 2001 Corinna Vinschen <corinna@vinschen.de>
284
285 * fork.cc (fork): Eliminate superfluous call to getuid().
286 * security.h: New define `NO_SID'. Remove declarations of functions
287 moved to methods into class cygsid.
288 (class cygsid): Declare new methods `getfromstr', `get_sid',
289 `getfrompw', `getfromgr', `get_rid', `get_uid', `get_gid', `string'
290 and new constructors and operators =, == and !=.
291 Declare new global cygsids `well_known_XXX_sid' substituting the
292 corresponding `get_XXX_sid' functions. Remove declarations of
293 these functions.
294 * sec_helper.cc (well_known_admin_sid): New global variable.
295 (well_known_system_sid): Ditto
296 (well_known_creator_owner_sid): Ditto
297 (well_known_world_sid): Ditto
298 (cygsid::string): New method, substituting `convert_sid_to_string_sid'.
299 (cygsid::get_sid): New method, substituting `get_sid'.
300 (cygsid::getfromstr): New method, substituting
301 `convert_string_sid_to_sid'.
302 (cygsid::getfrompw): New method, substituting `get_pw_sid'.
303 (cygsid::getfromgr): New method, substituting `get_gr_sid'.
304 (cygsid::get_id): New method, substituting `get_id_from_sid'.
305 (get_admin_sid): Eliminated.
306 (get_system_sid): Ditto.
307 (get_creator_owner_sid): Ditto.
308 (get_world_sid): Ditto.
309 * grp.cc: Use new cygsid methods and well known sids throughout.
310 * registry.cc: Ditto.
311 * sec_acl.cc: Ditto.
312 * security.cc: Ditto.
313 * shared.cc: Ditto.
314 * syscalls.cc (seteuid): Ditto. Eliminate redundant conditional.
315 * uinfo.cc (internal_getlogin): Ditto.
316 * spawn.cc (spawn_guts) Revert previous patch.
317
de81c046
CV
318Tue May 15 10:20:00 2001 Corinna Vinschen <corinna@vinschen.de>
319
320 * fhandler_socket.cc (fhandler_socket::ioctl): Convert s_addr
321 field to host byte order before comparing with INADDR_LOOPBACK.
322
a2cdb048
CV
323Tue May 15 9:03:00 2001 Corinna Vinschen <corinna@vinschen.de>
324
325 * autoload.cc: Add autoload statements for ws2_32 functions
326 `WSACloseEvent', `WSACreateEvent', `WSAGetOverlappedResult',
327 `WSARecv', `WSARecvFrom', `WSASend', `WSASendTo' and `WSASetEvent',
328 `WSAWaitForMultipleEvents'.
329 * net.cc: Define wsock_evt.
330 (wsock_event): New class.
331 (cygwin_sendto): Use overlapped socket io if available.
332 (cygwin_recvfrom): Ditto.
333 (cygwin_recv): Ditto.
334 (cygwin_send): Ditto.
335 * security.cc (subauth): Set Win32 error to 0 to safely ask for the
336 error code of dynamically loaded function `LsaRegisterLogonProcess'.
337
7ede23a1
CF
338Mon May 14 15:37:29 2001 Christopher Faylor <cgf@cygnus.com>
339
340 * errno.cc (_sys_errlist): Add missing commas.
341
5aac6665
CV
342Mon May 14 16:13:00 2001 Corinna Vinschen <corinna@vinschen.de>
343
344 * security.cc (subauth): Check if Secur32.dll could be loaded.
345
df7320e1
CF
346Sun May 13 22:49:04 2001 Christopher Faylor <cgf@cygnus.com>
347
348 * path.cc (path_conv::check): Revert allow_ntsec check so that volume
349 info is always retrieved and isdisk setting is properly set.
350
49a8c92c
CF
351Sun May 13 14:02:36 2001 Christopher Faylor <cgf@cygnus.com>
352
353 * fhandler_tty.cc (fhandler_tty_common::dup): Preserve O_NOCTTY when
354 duping a filehandle.
355
cbedbdd0
CV
356Sat May 12 18:19:00 2001 Corinna Vinschen <corinna@vinschen.de>
357
358 * dir.cc (rmdir): Rearrange slightly to allow removing directories
359 even when R/O attribute is set.
360
c3a245f5
CF
361Fri May 11 16:53:38 2001 Christopher Faylor <cgf@cygnus.com>
362
363 * external.cc (fillout_pinfo): Use correct pids.
364 * path.cc (mount_info::conv_to_win32_path): Correct test for whether to
365 include a slash.
366
5bba0cb5
CF
367Fri May 11 01:04:17 2001 Christopher Faylor <cgf@cygnus.com>
368
369 * exceptions.cc (handle_exceptions): Don't print message when executing
370 from a cygwin program.
371
723190cf
CF
3722001-05-10 Egor Duda <deo@logos-m.ru>
373 Christopher Faylor <cgf@redhat.com>
374
375 * environ.cc (winenv): Always add SYSTEMDRIVE and SYSYEMROOT to
376 win32-style environment if they don't already exist.
377
cedb00be 3782001-05-10 Kazuhiro Fujieda <fujieda@jaist.ac.jp>
d61b1993 379
cedb00be
CF
380 * path.cc (mount_info::conv_to_win32_path): Treat UNC paths the same as
381 paths including `:' or `\'.
382
cd94b71c
CF
383Wed May 9 14:46:32 2001 Christopher Faylor <cgf@cygnus.com>
384
385 * fhandler.h (fhandler_termios::echo_erase): Declare new method.
386 * fhandler_termios.cc (fhandler_termios::echo_erase): New method for
387 echoing erase characters.
388 (fhandler_termios::line_edit): Check the echo flag before echoing
389 control characters (from Kazuhiro Fujieda <fujieda@jaist.ac.jp>).
390
00b59ce9
CF
391Wed May 9 10:43:30 2001 Christopher Faylor <cgf@cygnus.com>
392
393 * include/pthread.h: Remove C++ comment.
394
79201150
CF
395Tue May 8 11:09:59 2001 Christopher Faylor <cgf@cygnus.com>
396
397 * cygheap.cc (_cfree): Add regparm attribute.
398 (_crealloc): Ditto.
399
400 * dcrt0.cc (dll_crt0_1): Default to always checking for executable for now.
401
402 * dtable.cc (dtable::not_open): Move method.
403 * dtable.h (dtable): Here.
404
405 * exceptions.cc (ctrl_c_handler): Don't expect process group leader to
406 handle a signal if it doesn't exist.
407
408 * fhandler.h (fhandler_base): Make openflags protected.
409
410 * localtime.c (tzsetwall): Check for __CYGWIN__ as well as __WIN32__.
411
412 * path.cc (path_conv::check): Add some comments. Change strcat to assignment.
413
414 * lib/_cygwin_S_IEXEC.cc (_cygwin_bob__): Eliminate.
415
416 * fhandler_tty.cc (fhandler_console::dup): Set controlling terminal if necessary.
417 * fhandler_tty.cc (fhandler_tty_slave::dup): Ditto.
418
ef8b6590
CF
419Mon May 7 21:33:17 2001 Christopher Faylor <cgf@cygnus.com>
420
421 * include/sys/file.h: Revert special X_OK usage. Just make it a
422 constant.
423
68ebd3f6 424Sun May 6 17:05:00 2001 Robert Collins <rbtcollins@hotmail.com>
ef8b6590
CF
425
426 * thread.h (pthread_cond): New element cond_access to allow atomic
427 broadcasts.
68ebd3f6
RC
428 * thread.cc (pthread_cond::pthread_cond): Initialise cond_access.
429 (pthread_cond::~pthread_cond): Destroy cond_access.
430 (pthread_cond::Broadcast): Use cond_access.
431 (pthread_cond::Signal): Use cond_access.
432 (pthread_cond_wait): Use cond_access.
433 (pthread_cond_timedwait): Use cond_access.
434
2bfb9665
CF
435Sun May 6 11:55:40 2001 Christopher Faylor <cgf@cygnus.com>
436
437 * string.h (cygwin_strchr): Make 'static inline' so that things will
438 still work when optimized.
439
11ba5ef4
CF
440Sat May 5 01:04:11 2001 Christopher Faylor <cgf@cygnus.com>
441
442 * exceptions.cc (handle_exceptions): Vastly increase test for exception
443 loop guard variable.
444
f598d941
CF
445Fri May 4 22:23:33 2001 Christopher Faylor <cgf@cygnus.com>
446
447 * exceptions.cc (stack_info): Add some controls.
448 (stack_info::init): Add extra arguments to control method of
449 initialization.. If we have a known good frame, set things up so that
450 this frame is not skipped the first time through. Record whether
451 caller cares about arguments or not.
452 (stack_info::walk): Don't store arguments if they're unwanted.
453 (stackdump): Add isexception parameter for use when called by exception
454 handler.
455 (cygwin_stackdump): Accomodate extra argument to stackdump.
456 (handle_exceptions): Ditto.
457 (sig_handle): Ditto.
458 (interrupt_on_return): Accomodate extra arguments to stack walk
459 initialization.
460
d7490eaa
CF
461Fri May 4 21:05:20 2001 Christopher Faylor <cgf@cygnus.com>
462
463 * localtime.c: Revert exclusion of windows.h.
464
6731c77e
CF
465Fri May 4 17:03:16 2001 Christopher Faylor <cgf@cygnus.com>
466
467 * string.h: Fix last-minute typo.
468
63b61cd1
CF
469Fri May 4 16:49:34 2001 Christopher Faylor <cgf@cygnus.com>
470
471 * pinfo.h: Correctly set __SIGOFFSET.
472
473 * path.cc (hash_path_name): Avoid calling library functions for simple
474 copying of characters.
475
476 * shortcut.c: Use WIN32_LEAN_AND_MEAN.
477 * smallprint.c: Ditto.
478
479 * environ.cc (getwinenv): Minor clarity fix.
480
481 * localtime.c: No need to include windows.h
482
483 * string.h: New file.
484
17743fbc
CF
485Fri May 4 16:37:30 2001 Christopher Faylor <cgf@cygnus.com>
486
487 * exceptions.cc (ctrl_c_handler): Always send signal to process if it
488 has no tty.
489
69b218bf
ED
4902001-05-04 Egor Duda <deo@logos-m.ru>
491
492 * fhandler_socket.cc (set_connect_secret): Use /dev/urandom to
493 generate secret cookie.
494
620dd06d
CF
495Thu May 3 16:37:55 2001 Christopher Faylor <cgf@cygnus.com>
496
497 * include/pthread.h (pthread_cleanup_push): Eliminate space preceding
498 arguments.
499 (pthread_cleanup_pop): Ditto.
500
6c22ecdd
CV
501Thu May 3 18:16:00 2001 Corinna Vinschen <corinna@vinschen.de>
502
503 * net.cc (wsock_init): Rename `was_in_progress' to `wsock_started'
504 for clearness.
505
70c7f359
CF
506Thu May 3 10:44:16 2001 Christopher Faylor <cgf@cygnus.com>
507
508 * exceptions.cc (handle_exceptions): Break out of "loop" if the
509 debugger doesn't seem to be attaching to our process.
510
a6a0193b
CV
511Wed May 2 20:18:00 2001 Corinna Vinschen <corinna@vinschen.de>
512
513 * autoload.cc: Use new definition of LoadDLLinitfunc throughout.
514 Redefine wrapper for wsock32.dll and ws2_32.dll.
515 (std_dll_init): New function.
516 * autoload.h: Rename LoadDLLinitfunc to LoadDLLinitfuncdef.
517 Add new defines LoadDLLinitfunc and LoadDLLstdfunc.
518 * net.cc (wsock_init): Add guard variable handling. Take care
519 to call WSAStartup only once. Load WSAStartup without using
520 autoload wrapper to eliminate recursion. Eliminate FIONBIO
521 and srandom stuff.
522
4c265f4a
CF
523Tue May 1 01:26:15 2001 Christopher Faylor <cgf@cygnus.com>
524
525 * path.cc (mount_info::conv_to_win32_path): More path tweaking.
526
beab320f
CF
527Tue May 1 00:34:46 2001 Christopher Faylor <cgf@cygnus.com>
528
529 * path.cc (mount_info::conv_to_win32_path): Fix debugging output to
530 avoid a SIGSEGV. Avoid double backslashes in middle of filename.
531
d3c7e9de
CF
532Mon Apr 30 21:51:14 2001 Christopher Faylor <cgf@cygnus.com>
533
534 * path.cc (mkrelpath): New function.
535 (mount_info::conv_to_win32_path): Eliminate now-unneeded relative path
536 name arg and processing.
537 (path_conv::check): Accomodate relative path names again. Accomodate
538 one extra argument in mount_info::conv_to_win32_path. Tack trailing
539 slash on end of relative path as a side effect, like before.
540 * shared_info.h (mount_info::conv_to_win32_path): Reflect new argument
541 ordering.
542
57ff940d
CV
543Mon Apr 30 22:09:00 2001 Corinna Vinschen <corinna@vinschen.de>
544
545 * autoload.cc: Add LoadDLLinitfunc for secur32.dll.
546 Add LoadDLLfuncEx statements for AllocateLocallyUniqueId@4,
d61b1993 547 DuplicateTokenEx@24, LsaNtStatusToWinError@4,
57ff940d
CV
548 LsaDeregisterLogonProcess@4, LsaFreeReturnBuffer@4,
549 LsaLogonUser@56, LsaLookupAuthenticationPackage@12,
550 LsaRegisterLogonProcess@12,
551 * environ.cc: Add extern declaration for `subauth_id'.
552 (subauth_id_init): New function for setting `subauth_id'.
553 (struct parse_thing): Add entry for `subauth_id'.
554 * fork.cc (fork_parent): Call `RevertToSelf' and
555 `ImpersonateLoggedOnUser' instead of `seteuid'.
556 * security.cc: Define global variable `subauth_id'.
557 (extract_nt_dom_user): New function.
558 (cygwin_logon_user): Call `extract_nt_dom_user' now.
559 (str2lsa): New static function.
560 (str2buf2lsa): Ditto.
561 (str2buf2uni): Ditto.
562 (subauth): Ditto.
563 * security.h: Add prototype for `subauth'.
564 * spawn.cc (spawn_guts): Use cygheap->user.token only if impersonated.
565 Use `cygsid' type. Remove impersonation before allowing access to
566 workstation/desktop to everyone. Call `RevertToSelf' and
567 `ImpersonateLoggedOnUser' instead of `seteuid'.
568 * syscalls.cc (seteuid): Rearranged to allow using subauthentication
569 to retrieve user tokens when needed.
570
965cecdf
CV
571Mon Apr 30 20:26:00 2001 Corinna Vinschen <corinna@vinschen.de>
572
573 * uinfo.cc (internal_getlogin): Formatting change.
574
17db1105
CV
575Mon Apr 30 19:58:00 2001 Corinna Vinschen <corinna@vinschen.de>
576
577 * grp.cc: Eliminate MAX_DOMAIN_NAME define.
578 (read_etc_group): Substitute MAX_DOMAIN_NAME by
579 INTERNET_MAX_HOST_NAME_LENGTH.
580 * passwd.cc (parse_pwd): Don't force pw_name to be lower case.
581 * sec_helper.cc: Substitute MAX_USER_NAME by UNLEN,
582 MAX_COMPUTERNAME_LENGTH by INTERNET_MAX_HOST_NAME_LENGTH throughout.
583 (lookup_name): Slight cleanup.
584 * security.cc (alloc_sd): Substitute MAX_USER_NAME by UNLEN.
585 * security.h: Define DEFAULT_UID as DOMAIN_USER_RID_ADMIN and
586 DEFAULT_GID as DOMAIN_ALIAS_RID_ADMINS.
587 * shared.cc (memory_init): Substitute MAX_USER_NAME by UNLEN.
588 * thread.h: Ditto.
589 * uinfo.cc (internal_getlogin): Substitute MAX_USER_NAME by UNLEN.
590 Substitute MAX_COMPUTERNAME_LENGTH and MAX_HOST_NAME by
591 INTERNET_MAX_HOST_NAME_LENGTH.
592 * winsup.h: Include lmcons.h. Eliminate MAX_USER_NAME and
593 MAX_HOST_NAME. Move DEFAULT_UID and DEFAULT_GID to security.h.
594
c0a45b92
CF
595Mon Apr 30 12:35:40 2001 Christopher Faylor <cgf@cygnus.com>
596
597 * path.cc (path_conv::check): Don't use path_flags when converting to
598 MS-DOS syntax unless parsing tail of path component. Stop parsing path
599 when we reach the 'root' of the path. Correctly copy tail to path
600 component.
601
8abeff1e
CF
602Sun Apr 29 22:28:06 2001 Christopher Faylor <cgf@cygnus.com>
603
604 * exceptions.cc (INIT_EXCEPTION_HANDLER): Eliminate.
605 (init_exceptions): Just use init_exception_handler.
606 (open_stackdumpfile): New function.
607 (stack_info::first_time): Eliminate.
608 (stack_info::init): Set up fields to avoid "first_time" consideration.
609 (stack_info::walk): Remove "first_time" consideration.
610 (stackdump): Change arguments to accept initial frame pointer and open
611 stack file flag.
612 (stack): Eliminate.
613 (cygwin_stackdump): Use stackdump() rather than stack().
614 (try_to_debug): Remove all synchronization logic. Just keep looping in
615 exception handler until debugger notices us. Return 1 if successfully
616 started debugger.
617 (handle_exceptions): Just return if we know that we're debugging.
618 Reorganize to avoid creating a stackdump file if we are starting a
619 debugger. Return from exception handler if debugger started
620 successfully.
621 (sig_handle): Create a stackdump only if debugger wasn't started.
622 * winsup.h (try_to_debug): Add an argument.
623
2b5803d4
CF
624Sun Apr 29 21:41:25 2001 Christopher Faylor <cgf@cygnus.com>
625
626 * path.cc (symlink_info::check): Remove extra arguments, move
627 functionality back to path_conv::check. Clear symlink bit from pflags
628 argument before detecting if this is a symlink.
629 (path_conv::check): Convert posix path here instead of
630 symlink_info::check. Only grab volflags when using ntsec.
631 (symlink_info::check_case): Just replace appropriate part of input
632 path.
633
b98ebf54
CF
634Sat Apr 28 19:36:13 2001 Christopher Faylor <cgf@cygnus.com>
635
636 Throughout, change 'tty_attached' to 'real_tty_attached', for clarity.
637 Throughout, change 'OutputStopped' to 'output_stopped', for
638 consistency.
639 * dtable.cc (stdio_init): Set controlling tty if not set by stdio
640 opens.
641 * exceptions.cc (ctrl_c_handler): Avoid special pgid checking if no tty
642 is associated with the process.
643 (Suggested by Tim Baker <dbaker@direct.ca>)
644 * external.cc (fillout_pinfo): Return actual tty number for ctty.
645 * fhandler_console.cc (get_tty_stuff): Set ctty when shared memory is
646 allocated. Accept flags input from open().
647 (set_console_ctty): New function.
648 (fhandler_console::open): Pass flags to get_tty_stuff and rely on this
649 function to set the ctty, if appropriate.
650 * fhandler_termios.cc (fhandler_termios::set_ctty): Move to tty_min
651 class.
652 * fhandler_tty.cc (fhandler_tty_slave::open): Use tc field to access
653 set_ctty().
654 * tty.h (TTY_CONSOLE): Move to include/sys/cygwin.h.
655 (tty_min): Add set_ctty class here.
656 * include/sys/cygwin.h (TTY_CONSOLE): New home here.
657
658 * path.cc (symlink_info): Make contents an actual buffer. Pass more
659 flags to case_check.
660 (path_conv::check): Reorganize to do parsing based on posix path rather
661 than native path.
662 (symlink_info::check): Expect posix path as input. Translate to native
663 path here. Accept path_conv flags. Stop parsing if not a symlink
664 regardless of whether previous path was a symlink.
665
cba63823
CF
6662001-04-27 Kazuhiro Fujieda <fujieda@jaist.ac.jp>
667
668 * thread.cc (thread_init_wrapper): Use _REENT_INIT to initialize the
669 reent structure of newlib.
670
671Fri Apr 27 14:02:24 2001 Christopher Faylor <cgf@cygnus.com>
672
673 * sigproc.h (sig_send): Add exception parameter to sig_send.
674 * sigproc.cc (sig_send): Ditto. Use it when setting frame info.
675 * exceptions.cc (handle_exceptions): Use exception flag when calling
676 sig_send.
677
a069f560
ED
6782001-04-27 Egor Duda <deo@logos-m.ru>
679
680 * tty.cc (tty::make_pipes): Set to_slave pipe mode to nonblocking.
681 * fhandler_tty.cc (fhandler_pty_master::accept_input): If pipe buffer
682 is full, give slave a chance to read data.
683
22ae5a5b
CV
6842001-04-26 Kazuhiro Fujieda <fujieda@jaist.ac.jp>
685
d61b1993 686 * security.cc (alloc_sd): Add unrelated ACCESS_ALLOWED_ACE behind
22ae5a5b
CV
687 the `everyone' ACE.
688
968d91b2
CF
689Wed Apr 25 15:07:37 2001 Christopher Faylor <cgf@cygnus.com>
690
fb1a9f35
CF
691 * sigproc.h [sigthread]: Add exception field.
692 [sigframe::~sigframe]: Clear exception field.
693 [sigframe::set]: Set exception field from caller.
968d91b2
CF
694 * sigproc.cc (sig_send): Set exception field when frame pointer is
695 passed in.
696 * exceptions.cc (interrupt_on_return): Always treat exception as
697 interruptible.
698
86699e15
ED
6992001-04-25 Egor Duda <deo@logos-m.ru>
700
701 * cygwin.din: Export asctime_r, ctime_r, gmtime_r, localtime_r
702 * include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR to 39
703
edc4bfd9
CF
704Wed Apr 25 10:57:36 2001 Christopher Faylor <cgf@cygnus.com>
705
706 * include/cygwin/version.h: Bump minor version number.
707 * childinfo.h: Bump child structure magic number.
708
feae8d0e
CV
7092001-04-25 Kazuhiro Fujieda <fujieda@jaist.ac.jp>
710
711 * uinfo.cc (internal_getlogin): Return pointer to struct passwd.
712 (uinfo_init): Accommodate the above change.
713 * syscalls.cc (seteuid): Ditto.
714
d551169a
CV
715Tue Apr 25 11:08:00 2001 Corinna Vinschen <corinna@vinschen.de>
716
717 * autoload.cc: Add LoadDLLfunc statements for SetTokenInformation@16.
718 * cygheap.cc: Include security.h.
719 * grp.cc (internal_getgrent): New function.
720 (getgroups): Rearranged using `internal_getgrent' and the new
721 `cygsid' class.
722 * passwd.cc (internal_getpwent): New function.
723 * sec_acl.cc: Use new `cygsid' class throughout.
724 (acl_access): Use `internal_getgrent' instead of `getgrent'.
725 * sec_helper.cc: Use new `cygsid' class throughout.
726 (get_id_from_sid): Use `internal_getgrent' instead of `getgrent'.
727 Use `internal_getpwent' instead of `getpwent'.
728 * security.cc: Use new `cygsid' class throughout.
729 * security.h: Move `MAX_SID_LEN' from winsup.h to here.
730 Add extern declarations for `internal_getgrent' and `internal_getpwent'.
731 (class cygsid): New class.
732 * shared.cc (sec_user): Use new `cygsid' class.
733 * syscalls.cc (seteuid): Try to set owner to user and primary group to
734 current group in impersonation token before performing impersonation.
735 (setegid): Try to set primary group in process token to the new group
736 if ntsec is on.
737 * uinfo.cc (internal_getlogin): Use new `cygsid' class.
738 Try to set owner to user and primary group to current group in process
739 token if the process has been started from a non cygwin process.
740 (uinfo_init): Set primary group only if the process has been started
741 from a non cygwin process.
742 * winsup.h: Move define for `MAX_SID_LEN' to security.h.
743
3a6e9668
CV
744Mon Apr 16 23:20:00 2001 Andy Younger <andylyounger@hotmail.com>
745
746 * fhandler_dsp.cc: Improved handling of 8 bit playback modes.
747 Put in mock support for SNDCTL_DSP_SETFRAGMENT.
748
b7cf6a2f
CV
749Tue Apr 24 23:51:00 2001 Corinna Vinschen <corinna@vinschen.de>
750
751 * passwd.cc (getpwnam_r): Add pw_passwd handling as well.
752 (getpwuid_r): Ditto.
753
3c73ae1c
CV
754Tue Apr 24 23:43:00 2001 Corinna Vinschen <corinna@vinschen.de>
755
756 * passwd.cc (getpwnam_r): Use correct offsets into buffer.
757 Copy pw_gecos field as well.
758 (getpwuid_r): Ditto.
759
8db71e01
ED
7602001-04-24 Egor Duda <deo@logos-m.ru>
761
762 * dlmalloc.c: New file. Port of Doug Lea's malloc
763 * dlmalloc.h: Ditto.
764 * Makefile.in: Add support for MALLOC_DEBUG
765 * config.h.in: Ditto.
766 * winsup.h: Ditto.
767 * configure.in: Add --enable-malloc-debugging option.
768 * configure: Regenerate.
769 * debug.h: Include declarations for debugging malloc.
770 * tty.cc (grantpt): Fix definition.
771 (unlockpt): Ditto.
772
f3ea62a8
CF
773Mon Apr 23 22:00:29 2001 Christopher Faylor <cgf@cygnus.com>
774
775 Remove trailing underscore from fhandler_base and friends, throughout.
776 * fhandler.h (fhandler_base::set_open_status): New method. Stores
777 original open status.
778 (fhandler_base::get_open_status): New method. Retrieves original open
779 status.
780 (fhandler_base::reset_to_open_binmode): New method.
781 * fhandler.cc (fhandler_base::open): Save open status.
782 (fhandler_base::init): Ditto.
783 * fhandler_clipboard.cc (fhandler_clipboard::open): Ditto.
784 * fhandler_console.cc (fhandler_console::open): Ditto.
785 * fhandler_dsp.cc (fhandler_dsp::open): Ditto.
786 * fhandler_dev_mem.cc (fhandler_dev_mem::open): Ditto.
787 * fhandler_dev_random.cc (fhandler_dev_random::open): Ditto.
788 * fhandler_serial.cc (fhandler_serial::open): Ditto.
789 * fhandler_tty_slave.cc (fhandler_tty_slave::open): Ditto.
790 * fhandler_tty_master.cc (fhandler_tty_master::open): Ditto.
791 * fhandler_dev_zero.cc (fhandler_dev_zero::open): Ditto.
792 * syscalls.cc (setmode): Rework so that 0 mode value causes reversion
793 to open state.
794
795 * fhandler_tty_slave.cc (fhandler_tty_slave::read): Use correct
796 multiplier when converting from deciseconds to milliseconds.
797
9cf9c146
CF
798Mon Apr 23 13:28:35 2001 Christopher Faylor <cgf@cygnus.com>
799
800 * fhandler.h (fhandler_base::clear_r_binary): New method.
801 (fhandler_base::clear_w_binary): New method.
802 * syscalls.cc (setmode): Accept 0 as mode value. Resets text/binary
803 behavior for fd to default.
804
f940c5b1
CF
805Mon Apr 23 12:46:07 2001 Christopher Faylor <cgf@cygnus.com>
806
807 * net.cc [errmap]: Add '0' condition.
808 (find_winsock_errno): Don't translate no error to EPERM.
809
c02e9189
CF
810Sun Apr 22 20:48:24 2001 Christopher Faylor <cgf@cygnus.com>
811
812 * include/cygwin/version.h: Bump Cygwin version and API version.
813
9672024b
RC
814Mon Apr 23 9:27:00 2001 Robert Collins <rbtcollins@hotmail.com>
815
816 * thread.cc (MTinterface::Init): Always initialise per process variables.
817
1acf5c29
CF
818Sun Apr 22 19:18:18 2001 Christopher Faylor <cgf@cygnus.com>
819
820 * features.h: Reinstate as wrapper for sys/features.h.
821
b2652452
CV
822Mon Apr 23 0:10:00 2001 Corinna Vinschen <corinna@vinschen.de>
823
824 * security.cc (alloc_sd): Reformat comment.
825 * shared.cc: Drop function declarations already in security.h.
826
96dc5dd7
CF
827Sun Apr 22 12:17:57 2001 Christopher Faylor <cgf@cygnus.com>
828
829 * shortcut.c (check_shortcut): Close input file handle before
830 returning.
831 * path.cc (check_sysfile): Ditto.
832 (symlink_info::check): Rely on opened file handle being closed by
833 symlink checking routines. Set ext_tacked_on when .lnk is detected.
834
da77d416
CF
835Sat Apr 21 19:26:05 2001 Christopher Faylor <cgf@cygnus.com>
836
837 * thread.cc (MTinterface::Init): Remove accidentally checked in code.
838
9450ad0d
RC
839Sun Apr 22 00:22:00 2001 Robert Collins <rbtcollins@hotmail.com>
840
841 * passwd.cc (getpwuid): Check for thread cancellation.
842 (getpwuid_r): Ditto.
843 (getpwname): Ditto.
844 (getpwnam_r): Ditto.
845 * thread.h (pthread_mutex): New constructors for pshared operation.
846 (MTinterface): Associative array for pshared mutex's.
847 * thread.cc (MTinterface::Init): Initailize pshared mutex array.
848 (pthread_cond::BroadCast): Implementation notes.
849 (pthread_cond::TimedWait): Remove use of SignalObjectAndWait on non-NT systems.
850 (pthread_mutex::pthread_mutex(unsigned short)): New function.
851 (pthread_mutex::pthread_mutex (pthread_mutex_t *, pthread_mutexattr *)):New function.
852 (pthread_mutex::pthread_mutex(pthread_mutexattr *)): Fail on pshared mutex's.
853 (__pthread_mutex_getpshared): New function.
854 (__pthread_join): Check for thread cancellation.
855 (__pthread_cond_timedwait): Support pshared mutex's.
856 (__pthread_cond_wait): Ditto.
857 (__pthread_condattr_setpshared): Error on PROCESS_SHARED requests.
858 (__pthread_mutex_init): Support pshared mutex's.
859 (__pthread_mutex_getprioceiling): Ditto.
860 (__pthread_mutex_lock): Ditto.
861 (__pthread_mutex_trylock): Ditto.
862 (__pthread_mutex_unlock): Ditto.
863 (__pthread_mutex_destroy): Ditto.
864 (__pthread_mutex_setprioceiling): Ditto.
d61b1993 865 (__pthread_mutexattr_setpshared): Support PTHREAD_PROCESS_PSHARED requests.
9450ad0d 866
60326076
CF
867Fri Apr 20 19:38:29 2001 Christopher Faylor <cgf@cygnus.com>
868
869 * cygwin.din: Add *scanf and *scan_r functions.
870
3c8e92d9
CV
871Fri Apr 20 22:25:00 2001 Corinna Vinschen <corinna@vinschen.de>
872
873 * security.cc (set_process_privileges): Swap out.
874 * sec_helper.cc (set_process_privilege): Rename from
875 `set_process_privileges'. Takes the privilege to enable or disable
876 as parameter now.
877 * security.h: Add prototype for `set_process_privileges'.
878
b9815dc3 8792001-04-19 Egor Duda <deo@logos-m.ru>
d61b1993 880
b9815dc3
CF
881 * path.cc (path_conv::check): Always initialize member variables.
882
cbd88687
CF
883Fri Apr 20 12:27:49 2001 Christopher Faylor <cgf@cygnus.com>
884
885 * include/sys/file.h: More cleanup for X_OK.
886
cdcfe4e8
CF
887Fri Apr 20 11:48:45 2001 Christopher Faylor <cgf@cygnus.com>
888
889 * include/sys/file.h: Move X_OK protection earlier.
890
891 * dtable.cc (dtable::vfork_child_fixup): Avoid closing already closed
892 handles.
893
bfbc1aec
CV
894Fri Apr 20 16:29:00 2001 Corinna Vinschen <corinna@vinschen.de>
895
896 * grp.cc (getgroups): Change so that SIDs get compared instead
897 of strings to SIDs.
898
c0d1968a
CV
899Fri Apr 20 14:50:00 2001 Corinna Vinschen <corinna@vinschen.de>
900
901 * Makefile.in: Add object files `sec_helper.cc' and `sec_acl.cc'.
902 * security.cc: Swap out several functions.
903 * sec_acl.cc: New file. Move Sun compatibel ACL functions from
904 `security.cc' to here.
905 * sec_helper.cc: New file. Move security helper functions from
906 `security.cc' to here.
907 * security.h: Changed to accomodate the above changes.
908
909Fri Apr 20 14:12:00 2001 Corinna Vinschen <corinna@vinschen.de>
910
911 * grp.cc: Replace `group_in_memory_p' by `group_state'.
912 Eliminate group_sem throughout.
913 (enum grp_state): New enumeration type.
914 (read_etc_group): Make race safe.
915 * security.cc: Eliminate group_sem throughout.
916
b78d6f6e
CV
917Thu Apr 19 9:40:00 2001 Corinna Vinschen <corinna@vinschen.de>
918
919 * mmap.cc (mmap): Drop usage of the same memory area if the same
920 region of the same file is mapped twice.
921
0381fec6
CF
922Wed Apr 18 16:53:54 2001 Christopher Faylor <cgf@cygnus.com>
923
924 Throughout, change fdtab references to cygheap->fdtab.
925 * child_info.h (cygheap_exec_info): Eliminate special fdtab stuff.
926 * spawn.cc (spawn_guts): Ditto.
927 * cygheap.cc (cygheap_init): Initialize fdtab, if appropriate.
928 * cygheap.h (CYGHEAPSIZE): Include size of init_cygheap.
929 (_cmalloc_entry): Include fdtab here.
930 * dtable.h (dtable): Declare/define new methods.
931 * dtable.cc (dtable::vfork_child_fixup): New method.
932 (dtable::fixup_after_exec): Remove unneeded extra arguments.
933 * dcrt0.cc (dll_crt0_1): Ditto.
934
935 * environ.cc (getwinenv): Use case sensitive comparison.
936 (winenv): Make a copy of environment cache to avoid realloc problems
937 when duplicate environment variables exist in the environment. (From
938 Egor Duda)
939
940 * net.cc (cygwin_socket): Revert Apr 14 change.
941
942 * include/sys/file.h: Protect against previous X_OK definition.
943
944Tue Apr 17 12:18:28 2001 Christopher Faylor <cgf@cygnus.com>
945
946 * passwd.cc: Eliminate passwd_sem throughout.
947 * security.cc: Ditto.
948
949Tue Apr 17 12:18:28 2001 Robert Collins <rbtcollins@hotmail.com>
950
951 * cygwin.din: Export New functions.
952 * passwd.cc (read_etc_passwd): Make race safe.
953 (getpwuid_r): New function.
954 (getpwnam_r): New function.
955
77c45b12
CV
9562001-04-18 Egor Duda <deo@logos-m.ru>
957
958 * grp.cc (getgroups): Avoid crash if passwd field if /etc/group is
959 empty.
960
4199e1e6
CF
961Tue Apr 17 19:05:44 2001 Christopher Faylor <cgf@cygnus.com>
962
963 * path.h (path_conv::add_ext_from_sym): Declare.
964 * path.cc (path_conv::add_ext_from_sym): Convert to pure inline method.
965
e6629a8a
CV
966Tue Apr 17 18:50:00 2001 Corinna Vinschen <corinna@vinschen.de>
967
968 * path.cc (windows_device_names): Add missing NULL element.
969
adfd477d
CF
970Tue Apr 17 12:14:54 2001 Christopher Faylor <cgf@cygnus.com>
971
972 * path.cc (windows_device_names): Move dsp to proper location.
973
8aefe7c0
CV
974Tue Apr 17 13:44:00 2001 Corinna Vinschen <corinna@vinschen.de>
975
976 * path.cc (path_conv::check): Set case_clash even if pcheck_case
977 is set to PCHECK_ADJUST when a case clash is given for the last
978 component in path.
979 (symlink_info::case_check): Ditto.
980 * syscalls.cc (_rename): Avoid overwriting an already existing file
981 if a case clash is given even if pcheck_case is set to PCHECK_ADJUST.
982
77eb506d
CV
983Tue Apr 17 2:07:07 2001 Christopher Faylor <cgf@cygnus.com>
984
985 * config.h.in: Turn off VFORK again.
986
431ba7dd
CF
987Mon Apr 16 23:45:24 2001 Christopher Faylor <cgf@cygnus.com>
988
989 * path.h (cwdstuff): Move class.
990 * cygheap.h (cwdstuff): To here.
991 (init_cygheap): Add cwd field.
992 * child_info.h (cygheap_exec_info): Eliminate cwd stuff.
993 (child_info_spawn): Ditto.
994 * dcrt0.cc (dll_crt0_1): Remove cygcwd.fixup_after_exec call. Convert
995 cygcwd reference to cygheap->cwd.
996 * path.cc: Ditto, throughout.
997 (cwdstuff::copy): Eliminate.
998 (cwdstuff::fixup_after_exec): Ditto.
999 * spawn.cc (spawn_guts): Eliminate call to cygcwd.copy.
1000
1001 * fhandler.h (FH_OSS_DSP): Move into "fast" device category.
1002
7ade56ca
CV
1003Mon Apr 16 19:19:00 2001 Corinna Vinschen <corinna@vinschen.de>
1004
1005 * mmap.cc: Move fh_paging_file from some functions to be
1006 a global static variable.
1007 (class mmap_record): Add `devtype_' member to remember
1008 the device type of the file. Add declaration for methods
1009 `get_device', `alloc_fh' and `free_fh'.
1010 (mmap_record::mmap_record): Initialize `devtype_' correctly.
1011 (mmap_record::alloc_fh): New method.
1012 (mmap_record::free_fh): Ditto.
1013 (munmap): Use new mmap_record::alloc_fh and mmap_record::free_fh
1014 methods to create a correct fhandler.
1015 (msync): Ditto.
1016 (fixup_mmaps_after_fork): Ditto.
1017
c4548fb4
CV
1018Mon Apr 16 16:01:00 2001 Corinna Vinschen <corinna@vinschen.de>
1019
1020 * grp.cc (getgroups): If `allow_ntsec' is set, use the process token
1021 information to evaluate the groups list.
1022
3b3b19d2
CF
1023Mon Apr 16 00:08:02 2001 Christopher Faylor <cgf@cygnus.com>
1024
1025 * features.h: Remove this file as it is now being supplied by newlib.
1026
b0a50cf3
CF
1027Sun Apr 15 23:23:29 2001 Christopher Faylor <cgf@cygnus.com>
1028
1029 * autoload.cc: Add winmm functions needed by fhandler_dsp.cc.
1030
1031Sun Apr 15 22:53:52 2001 Andy Younger <andylyounger@hotmail.com>
1032
1033 * fhandler_dsp.cc: New file. Implements OSS like /dev/dsp.
1034 * include/sys/soundcard.h: New file. User land includes for OSS
1035 /dev/dsp.
1036 * fhandler.h: Add new class fhandler_dev_dsp and a FH_OSS_DSP
1037 definition.
1038 * dtable.cc (dtable::build_fhandler): Allow creation of the /dev/dsp
1039 device.
1040 * path.cc (windows_device_names): Add /dev/dsp into list of device
1041 names.
1042 * Makefile.in (DLL_OFILES): Add fhandler_dsp.o.
1043
4535e6a9
CF
1044Sun Apr 15 16:36:27 2001 Christopher Faylor <cgf@cygnus.com>
1045
1046 * uname.c (uname): Default n in in86 to 6 if Windows returns > 6.
1047
1ff87985
CV
1048Sun Apr 15 15:56:00 2001 Corinna Vinschen <corinna@vinschen.de>
1049
1050 * path.cc (add_ext_from_sym): Redefine to call `add_ext_from_sym_'.
1051 (add_ext_from_sym_): New inline function.
1052
34bbe838
CF
1053Sat Apr 14 19:23:52 2001 Christopher Faylor <cgf@cygnus.com>
1054
1055 * config.h.in: Turn on VFORK by default.
1056
266be1d8
CF
1057Sat Apr 14 18:04:35 2001 Christopher Faylor <cgf@cygnus.com>
1058
1059 * net.cc (cygwin_socket): Set SO_LINGER to small value so closed UNIX
1060 domain sockets will not stay around.
1061
1062Sat Apr 14 18:01:43 2001 Pierre A. Humblet <Pierre.Humblet@ieee.org>
1063
1064 * select.cc (socket_cleanup): Set SO_LINGER to small value so closed
1065 dummy sockets do not stay around. Use correct value for second argument
1066 to shutdown.
1067
e6b98fc8
RC
1068Sat Apr 14 17:04:00 2001 Robert Collins <rbtcollins@hotmail.com>
1069
1070 * thread.h (MTinterface): Add threadcount.
1071 * thread.cc (MTinterface::Init): Set threadcount to 1.
1072 (__pthread_create): Increment threadcount.
1073 (__pthread_exit): Decrement threadcount and call exit() from the last thread.
1074
1114d472 1075Fri Apr 13 11:34:24 2001 Robert Collins <rbtcollins@hotmail.com>
39b6859a
CF
1076
1077 * fork.cc (fork_child): Call the __pthread_atforkchild function.
1078 (fork_parent): Call the __pthread_atforkparent function.
1079 * cygwin.din: Export pthread_atfork.
1080 * thread.h (callback): New class.
1081 (MTinterface): Use it.
1082 * thread.cc (__pthread_atforkprepare): New function.
1083 (__pthread_atforkparent): New function.
1084 (__pthread_atforkchild): New function.
1085 (__pthread_atfork): New function.
1086 * pthread.cc (pthread_atfork): New function.
1087
e61cead3
CV
1088Fri Apr 13 9:52:00 2001 Corinna Vinschen <corinna@vinschen.de>
1089
1090 * path.cc (add_ext_from_sym): New define evaluating `known'suffix'.
1091 (path_conv::check): Use add_ext_from_sym throughout.
1092
1093Thu Apr 12 23:19:00 2001 Corinna Vinschen <corinna@vinschen.de>
70c370d6
CV
1094
1095 * dir.cc (mkdir): Check for case clash.
1096 * environ.cc: Add extern declaration for `pcheck_case'.
1097 (check_case_init): New function.
1098 (struct parse_thing): Add "check_case" option.
1099 * errno.cc (_sys_nerrlist): Add text for ECASECLASH.
1100 (strerror): Add case branch for ECASECLASH.
1101 * fhandler.cc (fhandler_disk_file::open): Check for case clash.
1102 * path.cc: Add global variable `pcheck_case'.
1103 (struct symlink_info): Add member `case_clash' and method `case_check'.
1104 (path_prefix_p_): Call `pathnmatch' instead of `strncasematch'.
1105 (pathnmatch): New funtion.
1106 (pathmatch): Ditto.
1107 (path_conv::check): Add handling for case checking.
1108 (symlink): Check for case clash.
1109 (symlink_info::check): Add parameter for case checking.
1110 Handle case checking.
1111 (symlink_info::case_check): New method.
1112 (chdir): Don't use unconverted path if pcheck_case==PCHECK_STRICT.
1113 * path.h: Add extern declarations for `pathmatch' and
1114 `pathnmatch'.
1115 (enum case_checking): New enumeration type describing
1116 the case checking behaviour of path conversion routines.
1117 (class path_conv): Add member `case_clash'.
1118 * syscalls.cc (_link): Check for case clash.
1119
82d4a5d4
CF
1120Thu Apr 12 12:49:53 2001 Christopher Faylor <cgf@cygnus.com>
1121
1122 * syscalls.cc (mkfifo): New function stub.
1123
aa67fd12
CF
11242001-04-12 Robert Collins <rbtcollins@hotmail.com>
1125
1126 * configure.in: Remove PTH_ALLOW.
1127 * cygwin.din: Remove @PTH_ALLOW@ prefixes to pthread functions. Add
1128 new pthread exports.
1129 * pthread.cc: New wrapper functions for the above new exports.
1130 * sched.cc (valid_sched_parameters): New function.
1131 (sched_setparam): Use it.
1132 (sched_set_thread_priority): New function. Used by pthread_sched*.
1133 * thread.cc (pthread_key_destructor::InsertAfter): New function.
1134 (pthread_key_destructor::UnlinkNext): New function.
1135 (pthread_key_destructor::Next): New function.
1136 (pthread_key_destructor_list::Insert): New function.
1137 (pthread_key_destructor_list::Remove): New function.
1138 (pthread_key_destructor_list::Pop): New function.
1139 (pthread_key_destructor::pthread_key_destructor): New function.
1140 (pthread_key_destructor_list::IterateNull): New function.
1141 (MTinterface::Init): Initialise new member.
1142 (pthread::pthread): Initialise new members.
1143 (pthread::create): Copy new attributes. Set the new thread priority.
1144 (pthread_attr::pthread_attr): Initialise new members.
1145 (pthread_key::pthread_key): Setup destructor function.
1146 (pthread_key::~pthread_key): Remove destructor function.
1147 (pthread_mutexattr::pthread_mutexattr): New function.
1148 (pthread_mutexattr::~pthread_mutexattr): New function.
1149 (__pthread_once): New function.
1150 (__pthread_cleanup): New function.
1151 (__pthread_cancel): New function.
1152 (__pthread_setcancelstate): New function.
1153 (__pthread_setcanceltype): New function.
1154 (__pthread_testcancel): New function.
1155 (__pthread_attr_getinheritsched): New function.
1156 (__pthread_attr_getschedparam): New function.
1157 (__pthread_attr_getschedpolicy): New function.
1158 (__pthread_attr_getscope): New function.
1159 (__pthread_attr_setinheritsched): New function.
1160 (__pthread_attr_setschedparam): New function.
1161 (__pthread_attr_setschedpolicy): New function.
1162 (__pthread_attr_setscope): New function.
1163 (__pthread_exit): Call any key destructors on thread exit.
1164 (__pthread_join): Use the embedded attr values.
1165 (__pthread_detach): Use the embedded attr values.
1166 (__pthread_getconcurrency): New function.
1167 (__pthread_getschedparam): New function.
1168 (__pthread_key_create): Pass the destructor on object creation.
1169 (__pthread_key_delete): Correct incorrect prototype.
1170 (__pthread_setconcurrency): New function.
1171 (__pthread_setschedparam): New function.
1172 (__pthread_cond_timedwait): Support static mutex initialisers.
1173 (__pthread_cond_wait): Ditto.
1174 (__pthread_mutex_getprioceiling): New function.
1175 (__pthread_mutex_lock): Support static mutex initialisers.
1176 (__pthread_mutex_trylock): Ditto.
1177 (__pthread_mutex_unlock): Ditto.
1178 (__pthread_mutex_destroy): Ditto.
1179 (__pthread_mutex_setprioceiling): New function.
1180 (__pthread_mutexattr_getprotocol): New function.
1181 (__pthread_mutexattr_getpshared): New function.
1182 (__pthread_mutexattr_gettype): New function.
1183 (__pthread_mutexattr_init): New function.
1184 (__pthread_mutexattr_destroy): New function.
1185 (__pthread_mutexattr_setprotocol): New function.
1186 (__pthread_mutexattr_setprioceiling): New function.
1187 (__pthread_mutexattr_getprioceiling): New function.
1188 (__pthread_mutexattr_setpshared): New function.
1189 (__pthread_mutexattr_settype): New function. Remove stubs for non
1190 MT_SAFE compilation.
1191 * thread.h: Remove duplicate #defines. Add prototypes for new
1192 functions in thread.cc.
1193 (pthread_key_destructor): New class.
1194 (pthread_key_destructor_list): New class.
1195 (pthread_attr): Add new members.
1196 (pthread): Remove members that are duplicated in the pthread_attr
1197 class.
1198 (pthread_mutex_attr): Add new members.
1199 (pthread_once): New class.
1200 * include/pthread.h: Add prototypes for new functions exported from
1201 cygwin1.dll. Remove typedefs.
1202 * include/sched.h: Add prototypes for new functions in sched.cc.
1203 * include/cygwin/types.h: Add typedefs from pthread.h
1204
fc672fb2
CF
1205Tue Apr 10 22:02:53 2001 Christopher Faylor <cgf@cygnus.com>
1206
1207 * path.cc (struct symlink_info): Add extn and ext_tacked_on fields.
1208 (path_conv::check): Only tack on extension if a known one didn't
1209 already exist.
1210 (suffix_scan::has): Return pointer to known extension.
1211 (symlink_info::check): Record location of extension, if any.
1212
619f7fa0
ED
12132001-04-09 Egor Duda <deo@logos-m.ru>
1214
1215 * fhandler.h (class fhandler_socket): Add members and methods to
1216 support secure connections on AF_UNIX sockets.
1217 * fhandler_socket.cc (fhandler_socket::set_connect_secret): New method.
1218 (fhandler_socket::get_connect_secret): Ditto.
1219 (fhandler_socket::create_secret_event): Ditto.
1220 (fhandler_socket::close_secret_event): Ditto.
1221 (fhandler_socket::check_peer_secret_event): Ditto.
1222 (fhandler_socket::fixup_after_fork): Duplicate secret event to child.
1223 (fhandler_socket::dup): Copy address family.
1224 (fhandler_socket::close): Close secret event.
1225 * net.cc (get_inet_addr): Read secret cookie.
1226 (cygwin_connect): Check if peer knows secret cookie value.
1227 (cygwin_accept): Ditto. Copy address family to newly created socket.
1228 (cygwin_bind): Generate and write secret cookie.
1229 (wsock_init): Initialize random number generator.
1230
aa970c61
CF
1231Sun Apr 8 20:40:58 2001 Christopher Faylor <cgf@cygnus.com>
1232
1233 * Makefile.in: Put -lgcc last in list of libraries, since stdc++
1234 library needs it.
1235 * cygwin.din: Remove obsolete "__empty" export.
1236 * exceptions.cc (call_signal_handler_now): Force inclusion of function
1237 even when -finline-functions is specified.
1238 * sigproc.h: Remove obsolete call_signal_handler declaration.
1239
1240Sun Apr 8 20:36:55 2001 Benjamin Riefenstahl <Benjamin.Riefenstahl@epost.de>
e3eef4d0 1241
aa970c61
CF
1242 * fhandler_console.cc (cp_get_internal): New function.
1243 (cp_convert): New function.
1244 (con_to_str): New function.
1245 (str_to_con): New function.
1246 (fhandler_console::read): Replace OemToCharBuff with con_to_str.
1247 (fhandler_console::write_normal): Replace CharToOemBuff with str_to_con.
1248
9ddfe5a0
CV
1249Thu Apr 5 22:41:00 2001 Corinna Vinschen <corinna@vinschen.de>
1250
1251 * syscalls.cc (stat_worker): Fix conditional which still allowed
1252 successful stat'ing of non-existant files.
1253
0403bb74
CF
1254Wed Apr 4 10:37:44 2001 Christopher Faylor <cgf@cygnus.com>
1255
1256 * child_info.h: Bump magic number for fork/exec/spawn.
1257
c196a1a2
CV
1258Tue Apr 3 20:06:00 2001 Corinna Vinschen <corinna@vinschen.de>
1259
1260 * errno.cc (errmap): Map ERROR_FILE_INVALID to ENXIO.
1261
c90e420d
CF
1262Mon Apr 2 22:48:58 2001 Christopher Faylor <cgf@cygnus.com>
1263
1264 * cygrun.c (main): Fix compiler warning.
1265 * gmon.c (_mcleanup): Ditto.
1266 * profil.c (profile_off): Ditto.
1267
1268 * net.cc (find_winsock_errno): New function.
1269 (__set_winsock_errno): Use find_winsock_errno.
1270 (cygwin_setsockopt): Detect SO_ERROR for debugging.
1271 (cygwin_getsockopt): Ditto. Translate error when getsockopt returns
1272 SO_ERROR.
1273 * winsup.h: regparmize __set_winsock_errno.
1274 * include/sys/strace.h: Document that strace functions can't use
1275 regparm.
1276
0f0a7dc9
CV
12772001-04-02 Kazuhiro Fujieda <fujieda@jaist.ac.jp>
1278
1279 * fhandler.cc (fhandler_disk_file::open): Avoid checking a magic
1280 number of a directory.
1281
f97adf98
CF
1282Mon Apr 2 00:24:08 2001 Christopher Faylor <cgf@cygnus.com>
1283
1284 * shared_info.h (mount_info): Remove mnt_ elements.
1285 * thread.h (struct _winsup_t): Add mnt_ elements.
1286 * path.cc (fillout_mntent): Use mnt_ elements from reent_winsup ().
1287
1ba3935d
CF
1288Sun Apr 1 20:10:34 2001 Christopher Faylor <cgf@cygnus.com>
1289
1290 * exceptions.cc (sigframe::call_signal_handler): Return value of
1291 call_signal_handler_now.
1292 * sigproc.h (sigframe): Use constructor.
1293 * syscalls.cc (_read): Correct errno test prior to calling signal
1294 handler.
1295
2a1743c7
CF
1296Sun Apr 1 00:38:06 2001 Christopher Faylor <cgf@cygnus.com>
1297
0ef785e4 1298 * exceptions.cc (sigframe::call_signal_handler): Move outside of "C"
2a1743c7
CF
1299 block or some compilers will complain.
1300
11f3a79b
CF
1301Sun Apr 1 00:24:14 2001 Christopher Faylor <cgf@cygnus.com>
1302
1303 * exceptions.cc (call_signal_handler_now): Rename from
1304 call_signal_handler to avoid C++ confusion.
1305
5817ee2d
CF
1306Sun Apr 1 00:08:15 2001 Christopher Faylor <cgf@cygnus.com>
1307
1308 * path.cc (fillout_mntent): Always remove drive root directories from
1309 future consideration by "/cygdrive" reporting.
1310 (cygdrive_getmnt): Avoid reporting removable drives or drives with no
1311 media mounted.
1312
f2aeff27
CF
1313Sat Mar 31 21:56:19 2001 Christopher Faylor <cgf@cygnus.com>
1314
1315 * thread.h (struct _winsup_t): Remove obsolete elements. Add
1316 available_drives element.
1317 * path.cc (mount_info::getmntent): Report "/cygdrive" drives when
1318 mounted drives are exhausted.
1319 (fillout_mntent): New function.
1320 (mount_item::getmntent): Use fillout_mntent.
1321 (cygdrives_mntent): New function. Returns next available "/cygdrive".
1322 (setmntent): Initialize available "/cygdrives".
1323 * syscalls.cc: Remove some if 0'ed code.
1324 * times.cc (timezone): Use more descriptive variable name.
1325
f6111483
CF
1326Sat Mar 31 18:59:52 2001 Christopher Faylor <cgf@cygnus.com>
1327
1328 * sigproc.h (class sigframe): Implement 'unregister()' method.
1329 (sigframe::~sigframe): Use unregister method.
1330 (sigframe::call_signal_handler): Declare new method.
1331 * exceptions.cc (sigframe::call_signal_handler): New method.
1332 Unregisters current sigframe before calling signal handler.
1333 (setup_handler): Clear waiting threads prior to arming signal_arrived.
1334 * syscalls.cc (_read): Change goto to loop. Recalculate sigframe
1335 inside of loop so that constructor is called when appropriate.
1336 * wait.cc (wait4): Ditto.
1337
1338 * signal.cc: Change "sig" to "signal" in debugging messages throughout.
1339 * sigproc.cc: Ditto.
1340
ab57d146
CF
1341Sat Mar 31 17:12:08 2001 Christopher Faylor <cgf@cygnus.com>
1342
1343 * fhandler_serial.cc (fhandler_serial::raw_write): Close protected
1344 handles with ForceCloseHandle or suffer spurious warnings.
1345
0cec3226
CF
1346Sat Mar 31 16:23:32 2001 Christopher Faylor <cgf@cygnus.com>
1347
1348 * fhandler.cc (fhandler_base::read): Remove special handling of CTRL-Z.
1349
70afbaae
CV
1350Sat Mar 31 11:09:00 2001 Corinna Vinschen <corinna@vinschen.de>
1351
1352 * fhandler.h (class fhandler_console): Add members `insert_mode'.
1353 * fhandler_console.cc (fhandler_console::dup): Duplicate `insert_mode'.
1354 (fhandler_console::fhandler_console): Initialize `insert_mode'.
c796f4f1 1355 (fhandler_console::char_command): Add terminal capabilities
70afbaae
CV
1356 "enter insert mode" = \E[4h and "exit insert mode" = \E[4l.
1357 Care for insert mode on terminal capability "repeat char" = \E[x;yb.
1358 (fhandler_console::write_normal): Care for insert mode before writing
1359 to the console.
1360 (array keytable): Add keymapping for modified cursor and control
1361 block keys (xterm like).
1362
f42da31a
CV
1363Fri Mar 30 13:02:00 2001 Corinna Vinschen <corinna@vinschen.de>
1364
1365 * fhandler.h (class fhandler_console): Add members `savebufsiz' and
1366 `savebuf' to allow save/restore of screen.
70afbaae
CV
1367 * fhandler_console.cc (fhandler_console::dup): Duplicate `savebufsiz'
1368 and `savebuf'.
f42da31a
CV
1369 (fhandler_console::fhandler_console): Initialize `savebufsiz' and
1370 `savebuf'.
1371 (fhandler_console::char_command): Add terminal capabilities
1372 "save screen content" = \E[?47h and "restore screen content" = \E[?47l.
1373
b5eb3d0f
CF
1374Wed Mar 28 19:28:50 2001 Christopher Faylor <cgf@cygnus.com>
1375
1376 * path.cc (chdir): Eat trailing whitespace on input path.
1377
1ac6d1a1
CF
1378Tue Mar 27 22:38:42 2001 Christopher Faylor <cgf@cygnus.com>
1379
1380 * lib/_cygwin_S_IEXEC.c: Remove "const" from globals or they never seem
1381 to be defined. Wrap definitions in extern "C". Include winsup.h to
1382 assure proper definitions.
1383
1384 * dcrt0.cc (dll_crt0_1): Call stdio_init after premain run so that
1385 binmode.o, etc., will control default stdio settings.
1386 * dtable.cc (dtable::init_std_file_from_handle): Allow __fmode to force
1387 binmode/textmode settings. Default pipes to binmode.
1388
37a2d97a
CV
1389Tue Mar 27 11:31:00 2001 Corinna Vinschen <corinna@vinschen.de>
1390
1391 * mmap.cc (mmap): Fix conditional for previous patch.
1392
1636a5a1
CV
1393Mon Mar 26 18:48:00 2001 Corinna Vinschen <corinna@vinschen.de>
1394
1395 * mmap.cc (mmap): Outflank copy-on-write problem on 9x by
1396 setting access mode to FILE_MAP_READ when read access is requested.
1397
aa73152e
CF
1398Sun Mar 25 20:12:21 2001 Christopher Faylor <cgf@cygnus.com>
1399
1400 * dlfcn.cc (check_access): Eliminate.
1401 (check_path_access): Use passed in path_conv buf.
1402 (get_full_path_of_dll): Use passed in name buf to avoid a static. Rip
1403 out most of the path checking since LoadLibrary will do all of this
1404 automatically.
1405 (dlopen): Set errno when appropriate (may not be compliant?).
1406 * environ.cc (posify): Don't pass in "native" path if it seems to
1407 actually be posix.
1408
db0421f6
CF
1409Thursday Mar 22 2001 Robert Collins <rbtcollins@hotmail.com>
1410
1411 * fhandler.h (fhandler_dev_clipboard): Extend to support writing.
1412 * fhandler_clipboard.cc (fhandler_dev_clipboard::fhandler_dev_clipboard):
1413 Initialize new fields. Open clipboard here.
1414 (fhandler_dev_clipboard::dup): New method.
1415 (fhandler_dev_clipboard::open): Accomodate new fields. Register
1416 clipboard here, if appropriate.
1417 (set_clipboard): New function. Moves buffer to clipboard.
1418 (fhandler_dev_clipboard::write): Truly implement clipboard writing.
1419 (fhandler_dev_clipboard::read): Reimplement to allow successive reads.
1420 (fhandler_dev_clipboard::lseek): Truly implement seeks in clipboard.
0ed560cb
CF
1421 (fhandler_dev_clipboard::close): Clear out new fields. Support
1422 sequential reads and sequential writes. Support for binary data via a
1423 native clipboard format.
db0421f6 1424
0b30bad4 14252001-03-22 Egor Duda <deo@logos-m.ru>
0cec3226 1426
0b30bad4
CF
1427 * fhandler_console.cc (fhandler_console::set_default_attr): Update
1428 console color attributes on tty reset.
1429
c4458148
CF
1430Wed Mar 21 22:12:36 2001 Christopher Faylor <cgf@cygnus.com>
1431
1432 * autoload.cc (kernel32_init): New function for kernel32 autoload
1433 initialization.
1434 (SignalObjectAndWait): Add conditional load of this function when it is
1435 available.
1436
9a08b2c0
CF
14372001-03-21 Robert Collins <rbtcollins@hotmail.com>
1438
1439 * sched.cc: New file. Implement sched*.
1440 * include/sched.h: New file. User land includes for sched*.
1441 * Makefile.in: Add sched.o
1442 * cygwin.din: Add exports for sched*.
1443
a1299ba5
CF
1444Tue Mar 20 14:48:46 2001 Christopher Faylor <cgf@cygnus.com>
1445
1446 * dtable.cc: Guard against new winsock.h/winsock2.h warnings when
1447 mixing winsock*.h and sys/types.h.
1448 * fhandler_socket.cc: Ditto.
1449 * net.cc: Ditto.
1450 * select.cc: Ditto.
1451 * exceptions.cc: Remove unneeded define.
1452
b8c8fa17
CF
1453Mon Mar 19 17:43:29 2001 Christopher Faylor <cgf@cygnus.com>
1454
1455 * exceptions.cc (interruptible): Update debugging output.
1456 (setup_handler): Ensure that wait_sig loop wakes up when we punt on
1457 sending a signal.
1458 * poll.cc (poll): Add signal guard here.
1459
78ace8a7
ED
14602001-03-19 Egor Duda <deo@logos-m.ru>
1461
1462 * tty.h (tty::create_inuse): Add new parameter to allow non-
1463 inheritable 'inuse' events.
1464 * tty.cc (tty::create_inuse): Use new parameter.
1465 * fhandler_tty.cc (fhandler_tty_master::init): Ditto.
1466 * fhandler_tty.cc (fhandler_pty_master::open): Ditto.
1467 * fhandler_tty.cc (fhandler_tty_master::init): Create master_alive
1468 event.
1469 * tty.cc (tty_list::terminate): Close master_alive event.
1470 * fhandler_tty.cc (fhandler_tty_common::close): Send EOF to slaves
1471 when master side is closed.
1472
98750a84
CV
1473Mon Mar 19 14:32:00 2001 Corinna Vinschen <corinna@vinschen.de>
1474
1475 * mmap.cc (map::get_list_by_fd): Avoid calling `get_namehash' when
1476 file descriptor is -1.
1477
30f326bf
CV
1478Sat Mar 17 18:30:00 2001 Corinna Vinschen <corinna@vinschen.de>
1479
1480 * syscalls.cc (check_posix_perm): New static function.
1481 (fpathconf): Add _PC_POSIX_PERMISSIONS and _PC_POSIX_SECURITY
1482 support.
1483 (pathconf): Ditto.
1484 * include/cygwin/version.h: Bump API minor number to 37.
1485
5e8e21d9
ED
14862001-03-18 Egor Duda <deo@logos-m.ru>
1487
1488 * fhandler.h (fhandler_tty_slave): Declare new methods.
1489 * select.cc (fhandler_tty_slave::select_read): New method.
1490 * select.cc (fhandler_tty_slave::ready_for_read): Ditto.
1491 * select.cc (verify_tty_slave): New function.
1492 * fhandler_termios.cc (fhandler_termios::line_edit): Empty input
1493 buffer on signal.
1494 * fhandler_tty.cc (fhandler_tty_slave::read): Check for input data
1495 after reading from pipe. Reset event if input pipe is empty.
1496 * tty.h (class tty): Allow creating events with manual reset.
1497 * tty.cc (tty::get_event): Use manual_reset flag.
1498 * tty.cc (tty::common_init): Create input_available_event with
1499 manual reset.
1500
00a74961
CF
1501Sat Mar 17 21:48:03 2001 Christopher Faylor <cgf@cygnus.com>
1502
1503 * external.cc (fillout_pinfo): Match windows pid, as well as cygwin pid
1504 when passed in pid. Don't prematurely break when searching for a pid.
1505
1506 * thread.h (_winsup_t): Eliminate unneeded field.
1507
8eb72e63
CV
1508Sat Mar 17 20:46:00 2001 Corinna Vinschen <corinna@vinschen.de>
1509
1510 * net.cc (get_95_ifconf): Use strcasematch instead of strcasecmp.
1511 * syscalls.cc (_unlink): Ditto.
1512 (_rename): Ditto.
1513
57499703
CF
1514Sat Mar 17 12:43:15 2001 Christopher Faylor <cgf@cygnus.com>
1515
1516 * path.cc (suffix_scan::next): Avoid searching for foo.lnk twice when
1517 input is "foo".
1518
298fad46
CV
1519Sat Mar 17 18:10:00 2001 Corinna Vinschen <corinna@vinschen.de>
1520
1521 * net.cc (cygwin_socket): Set protocol to 0 when address family is
1522 AF_UNIX to avoid WSAEPROTONOSUPPORT error.
1523
f52488f7
CV
1524Sat Mar 17 09:51:32 2001 Mathew Brozowski <brozow@tavve.com>
1525
1526 * net.cc (cygwin_socket): Pass protocol parameter to socket call.
1527
b63a3f55
CF
1528Sat Mar 17 02:05:38 2001 Christopher Faylor <cgf@cygnus.com>
1529
1530 * dir.cc (readdir): Use strcasematch for consistency.
1531 * path.cc (symlink_info): Eliminate known_suffix.
1532 (path_conv::check): Always copy ext_here to end of buffer, if found.
1533 (suffix_scan): Eliminate ext_here, add suffixes_start.
1534 (suffix_scan::has): Eliminate an argument. Reorganize. Always return
1535 pointer to end of input path.
1536 (suffix_scan::next): Take a second pass through the suffix list looking
1537 for .lnk.
1538 (symlink_info::check): Eliminate known_suffix usage.
1539
db15b3e3 1540Sat Mar 17 00:10:52 2001 Christopher Faylor <cgf@cygnus.com>
5bb22c6b 1541
db15b3e3 1542 * syscalls.cc (stat_dev): Give devices full read/write by default.
5bb22c6b 1543
c0c9de3c
CF
1544Saturday Mar 17 3:45 2001 Robert Collins <rbtcollins@hotmail.com>
1545
1546 * thread.cc (MTinterface::CreateCond): Check for null attr pointer.
1547
ddca580f
CF
1548Fri Mar 16 21:13:23 2001 Christopher Faylor <cgf@cygnus.com>
1549
1550 * fhandler_termios.cc (fhandler_termios::line_edit): Don't accept input
1551 when a signal is sent or we'll end up in an EOF/signal race.
1552
b65c6896
CF
1553Fri Mar 16 20:25:40 2001 Christopher Faylor <cgf@cygnus.com>
1554
1555 * path.cc: Translate scan states from defines to enums.
1556 (suffix_scan): Rename state to nextstate for clarity.
1557 (lnk_match): Change to allow multiple states to indicate that a .lnk
1558 has been matched.
1559 (suffix_scan::has): Eliminate a goto. Handle .lnk as a special case,
1560 since a .lnk may also need to be tacked on the end of a .lnk.
1561 (suffix_scan::next): Don't increment next state. Set it specifically.
1562 Recognize new .lnk states.
1563
92f4bf97 1564Saturday Mar 17 01:19 2001 Robert Collins rbtcollins@hotmail.com
0cec3226 1565
5ccbf4b6
CF
1566 * cygwin.din: Export the new functions.
1567 * pthread.cc (pthread_cond_*): Add wrapper functions that call
1568 __pthread_cond* functions.
1569 * thread.cc (__pthread_cond_*): Implement the pthread_cond* functions.
1570 * thread.h: Add new class entries and prototypes for __pthread_cond*
1571 functions.
1572 * include/pthread.h: user land header prototypes for pthread_cond*
1573 functions and related defines.
1574
e212576d
CV
1575Wed Mar 14 16:30:00 2001 Corinna Vinschen <corinna@vinschen.de>
1576
1577 * environ.cc (parse_options): Use strtok_r instead of strtok.
1578 * security.cc (convert_string_sid_to_sid): Ditto.
1579 (aclfromtext): Ditto. Fix buffer usage.
1580
78d2c08c
CV
1581Wed Mar 14 10:11:00 2001 Corinna Vinschen <corinna@vinschen.de>
1582
1583 * path.cc (lnk_suffixes): Remove.
1584 (class suffix_scan): Add `lnk_state' flag.
1585 (suffix_scan::lnk_match): Return state of `lnk_state' now.
1586 (suffix_scan::has): Changed behaviour if file has `.lnk' suffix.
1587 (suffix_scan::next): Set `lnk_state' where appropriate.
1588 (symlink_info::check): Fix a wrong `break'.
1589 * syscalls.cc (chown_worker): Change debug statement to reflect
1590 lchown fix.
1591 (lchown): Call chown_worker with `PC_SYM_NOFOLLOW' instead of
1592 `PC_SYM_IGNORE'.
1593
1d39c83a
CV
1594Tue Mar 13 13:52:00 2001 Corinna Vinschen <corinna@vinschen.de>
1595
1596 * fhandler.cc (fhandler_disk_file::fstat): Add correct modes to
1597 symlinks when stat'ing on FAT or FAT32 file systems.
1598
e935fcf0
ED
15992001-03-12 Egor Duda <deo@logos-m.ru>
1600
1601 * fhandler.h (fhandler_termios::fixup_after_exec): New function.
344ce60c
ED
1602 * fhandler_termios.cc (fhandler_termios::fixup_after_fork): New
1603 function. Fixup output handle.
e935fcf0
ED
1604 * fhandler_tty.cc (fhandler_tty_common::fixup_after_fork): Output
1605 handle is now fixed up in fhandler_termios::fixup_after_fork().
1606
79409dc0
ED
16072001-03-12 Egor Duda <deo@logos-m.ru>
1608
1609 * fhandler.h (fhandler_termios::fhandler_termios): Enable fixup
1610 after fork.
1611 * fhandler_console.cc (fhandler_console::fhandler_console): Fixup
1612 after fork is now enabled in the base class constructor.
1613
2b777e2e
CF
1614Mon Mar 12 11:19:41 2001 Christopher Faylor <cgf@cygnus.com>
1615
1616 * mkvers.sh: Include config.h so that DEBUGGING is correctly defined.
1617
941fa5ad
CF
1618Mon Mar 12 09:47:55 2001 Christopher Faylor <cgf@cygnus.com>
1619
1620 * spawn.cc (spawn_guts): Don't set EXIT_REPARENTING if parent process
1621 is not a cygwin process (suggested by Jason Gouger
1622 <cygwin@jason-gouger.com>).
1623
d0909d91
CF
1624Sun Mar 11 16:00:58 2001 Christopher Faylor <cgf@cygnus.com>
1625
1626 * child_info.h: Bump magic number for fork/exec/spawn.
1627
2116a175
CF
1628Sat Mar 10 20:54:47 2001 Christopher Faylor <cgf@cygnus.com>
1629
1630 * autoload.cc (noload): Use proper method for multiline strings or
1631 newer gcc's complain.
1632 * exceptions.cc (unused_sig_wrapper): Ditto.
1633 * fhandler.h (fhandler_base): Make get_io_handle and friends return
1634 self.
1635 * fhandler_tty.cc (fhandler_pty_common::close_on_exec): Accomodate
1636 DEBUGGING flag to avoid spurious warnings when inheritance is set.
1637
7cf3b655
CF
1638Sat Mar 10 16:52:12 2001 Christopher Faylor <cgf@cygnus.com>
1639
1640 * shortcut.c (PATH_ALL_EXEC): Add parentheses to avoid a compiler
1641 warning.
1642
1643 * exceptions.cc (setup_handler): Clarify debugging message.
1644 * sigproc.cc (proc_subproc): Remove PROC_CHILDSTOPPED test. It is
1645 handled by normal PROC_CLEARWAIT case.
1646 (wait_sig): Eliminate "dispatched" tracking. Remove __SIGCHILDSTOPPED
1647 test. Decrement counter again before jumping out of
1648 InterlockedDecrement loop so that subsequent InterlockedIncrement will
1649 keep the counter at the correctly decremented value and also detect
1650 when there are pending signals.
1651 * sigproc.h: Remove __SIGCHILDSTOPPED element.
1652 (procstuff): Remove PROC_CHILDSTOPPED element.
1653
e2f2a27e
CF
1654Sat Mar 10 15:22:44 2001 Christopher Faylor <cgf@cygnus.com>
1655
1656 * syscalls.cc (_rename): Set errno to ENOENT when an old path doesn't
1657 exist (from Kazuhiro Fujieda <fujieda@jaist.ac.jp>). Also set EACCES
1658 when directory is not writable.
1659
6ebccdc1
CF
1660Wed Mar 7 15:49:47 2001 Christopher Faylor <cgf@cygnus.com>
1661
1662 * syscalls.cc (_read): Change definition to return ssize_t to be
1663 consistent with read.
1664 (_write): Change definition to return ssize_t to be consistent with
1665 write.
1666
efd76e41
CF
1667Wed Mar 7 01:08:21 2001 Christopher Faylor <cgf@cygnus.com>
1668
1669 * sigproc.h (sigthread): Declare new methods. Create new winapi_lock
1670 field.
1671 (sigframe:;set): Call get_winapi_lock after frame is set so that signal
1672 handler thread knows not to call SuspendThread.
1673 (sigframe::~sigframe): Release winapi_lock.
1674 * exceptions.cc (sigthread::get_winapi_lock): New method.
1675 (sigthread::release_winapi_lock): New method.
1676 (setup_handler): Use get_winapi_lock to ensure that signalled thread is
1677 not blocked in a Windows API.
1678
1679 * path.h (path_types): Avoid broken GCC warning.
1680
bf11a54f
CV
1681Tue Mar 6 14:02:00 2001 Corinna Vinschen <corinna@vinschen.de>
1682
1683 * path.cc (suffix_scan::has): Change order of conditionals
1684 to allow checking for .lnk suffixes even if in_suffixes is empty.
1685
1686Tue Mar 6 13:02:00 2001 Corinna Vinschen <corinna@vinschen.de>
7cdc9fee
CV
1687
1688 * autoload.c (cygwin_premain0): Add missing parameter.
1689 * binmode.c (cygwin_premain0): Ditto.
1690 * textmode.c (cygwin_premain0): Ditto.
1691
1692Tue Mar 6 12:04:00 2001 Jason Tiller <jtiller@sjm.com>
1693
1694 * auto_load.cc: Add "GetKeyboardLayout" entry in the list of
1695 Win32 User32.DLL exports to provide.
1696 * fhandler.h (class fhandler_console): Add meta_mask private
1697 member to remember which keystroke modifiers should generate
1698 META.
1699 * fhandler_console.cc (fhandler_console::read): Modify code that
1700 tests a keystroke for a META-escaped key to use the 'meta_mask'
1701 variable.
1702 (fhandler_console::fhandler_console): Add definition for
1703 variable "meta_mask" used to determine if a keystroke should be
1704 preceded by META in the client console stream. Set meta_mask
1705 based on whether or not user's keyboard language is English -
1706 non-English keyboards pass AltGr (right <ALT>) unmolested,
1707 whereas English keyboards now interpret left- and right-<ALT>
1708 as META.
1709
a887211b
CV
1710Mon Mar 5 20:15:00 2001 Corinna Vinschen <corinna@vinschen.de>
1711
1712 * include/a.out.h: Add copyright hint.
1713 * include/fcntl.h: Ditto.
1714 * include/lastlog.h: Ditto.
1715 * include/memory.h: Ditto.
1716 * include/mntent.h: Ditto.
1717 * include/paths.h: Ditto.
1718 * include/poll.h: Ditto.
1719 * include/syslog.h: Ditto.
1720 * include/termio.h: Ditto.
1721 * include/tzfile.h: Ditto.
1722 * include/arpa/inet.h: Ditto.
1723 * include/asm/byteorder.h: Ditto.
1724 * include/asm/socket.h: Ditto.
1725 * include/asm/types.h: Ditto.
1726 * include/cygwin/if.h: Ditto.
1727 * include/cygwin/mtio.h: Ditto.
1728 * include/cygwin/rdevio.h: Ditto.
1729 * include/cygwin/socket.h: Ditto.
1730 * include/net/if.h: Ditto.
1731 * include/netinet/in.h: Ditto.
1732 * include/netinet/in_systm.h: Ditto.
1733 * include/netinet/ip.h: Ditto.
1734 * include/netinet/ip_icmp.h: Ditto.
1735 * include/netinet/tcp.h: Ditto.
1736 * include/sys/cdefs.h: Ditto.
1737 * include/sys/cygwin.h: Ditto.
1738 * include/sys/ioctl.h: Ditto.
1739 * include/sys/mman.h: Ditto.
1740 * include/sys/mount.h: Ditto.
1741 * include/sys/mtio.h: Ditto.
1742 * include/sys/procfs.h: Ditto.
1743 * include/sys/resource.h: Ditto.
1744 * include/sys/smallprint.h: Ditto.
1745 * include/sys/socket.h: Ditto.
1746 * include/sys/strace.h: Ditto.
1747 * include/sys/syslog.h: Ditto.
1748 * include/sys/sysmacros.h: Ditto.
1749 * include/sys/termio.h: Ditto.
1750 * include/sys/termios.h: Ditto.
1751 * include/sys/uio.h: Ditto.
1752 * include/sys/un.h: Ditto.
1753 * include/sys/utsname.h: Ditto.
1754 * include/sys/vfs.h: Ditto.
1755 * include/sys/wait.h: Ditto.
1756 * regexp/regerror.c: Ditto.
1757 * regexp/regexp.h: Ditto.
1758 * regexp/regmagic.h: Ditto.
1759
95a8465b
CF
1760Mon Mar 5 01:25:03 2001 Christopher Faylor <cgf@cygnus.com>
1761
1762 * dlopen.c (dlopen): Return NULL when name is NULL (suggested by
1763 chrisiasci@aol.com).
1764
1765 * cygwin.din: Add a new, internally used export -
1766 _check_for_executable.
1767 * dcrt0.cc (dll_crt0_1): Set _check_for_executable for older binaries.
1768 Pass user_data to premain functions.
1769 * fhandler.cc (fhandler_disk_file::open): Only check for executable if
fb1a9f35 1770 the linked program is interested in the executable bit.
95a8465b
CF
1771 (fhandler_disk_file::check_execable_p): Delete.
1772 * fhandler.h (executable_states): New enumeration of various states of
1773 executable bit caring.
1774 (fhandler_base::set_execable_p): New method.
1775
1776 * fhandler_termios.cc (fhandler_termios::line_edit): Flag when a signal
1777 has been sent to the tty. Return -1 when this is so.
1778 * fhandler_console.cc (fhandler_console::read): Return -1 when signal
1779 sending character encountered.
1780
1781 * path.cc (path_conv::check): Record when path refers to a disk device.
1782 Move executable extension check here.
1783 (check_sysfile): Accomodate new EXEC path states.
1784 (has_suffix): Remove.
1785 (next_suffix): Remove.
1786 (class suffix_scan): New clas.
1787 (suffix_scan::has): New method.
1788 (suffix_scan:next): New method.
1789 (symlink_info::check): Use suffix_scan method to control for scanning
1790 for suffixes.
1791 * path.h (path_conv::exec_state): New method.
1792 * perprocess.h: Make "C" friendly.
1793 * include/cygwin/version.h: Define CYGWIN_VERSION_CHECK_FOR_S_IEXEC.
1794 Bump CYGWIN_VERSION_API_MINOR.
1795 * include/sys/cygwin.h: Change premain declarations.
1796
1797 * winsup.h: Move __cplusplus test to after builtin defines.
1798
306c4b67
ED
17992001-03-04 Egor Duda <deo@logos-m.ru>
1800
1801 * fhandler.h (class fhandler_tty_common): New mutex and event to
1802 syncronize input on master tty with slave tty.
1803 * fhandler_tty.cc (fhandler_pty_master::accept_input): Use them to
1804 syncronize with slave.
1805 * fhandler_tty.cc (fhandler_tty_slave::read): Use input mutex and
1806 event to syncronize with master. Do not limit amount of data read
1807 from master to vmin value. Interrupt on signal and return already
1808 read data, if any.
1809 * fhandler_tty.cc (fhandler_tty_slave::open): Handle input mutex and
1810 event.
1811 * fhandler_tty.cc (fhandler_tty_common::close): Ditto.
1812 * fhandler_tty.cc (fhandler_tty_common::set_close_on_exec): Ditto.
1813 * fhandler_tty.cc (fhandler_tty_common::fixup_after_fork): Ditto.
1814 * fhandler_tty.cc (fhandler_tty_common::dup): Ditto.
1815 * tty.h (tty::open_input_mutex): New function.
1816 * tty.cc (tty::common_init): Create input mutex and event.
1817
ed94def2
CV
1818Fri Mar 2 13:32:00 2001 Corinna Vinschen <corinna@vinschen.de>
1819
1820 * dir.cc (readdir): Fix creating path in symlink check.
1821
e03f5f73
CV
1822Fri Mar 2 12:33:00 2001 Corinna Vinschen <corinna@vinschen.de>
1823
1824 * dir.cc (readdir): Fix shortcut==symlink condition.
1825 * environ.cc: Add extern decl for `allow_winsymlinks'.
1826 (struct parse_thing): Add entry for `[no]winsymlinks'.
1827 * path.cc (symlink): Change to be able to create both,
1828 symlink==shortcut and symlink==systemfile, dependent of
1829 the setting of `allow_winsymlinks'.
1830 * security.cc (cygwin_logon_user): Add debug output.
1831 * shortcut.c: Add defines from path.h.
1832 (has_exec_chars): Copy from path.h.
1833 (check_shortcut): Check for executable file condition if not a
1834 shortcut.
1835
903c330d
CF
1836Thu Mar 1 21:06:07 2001 Christopher Faylor <cgf@cygnus.com>
1837
1838 * exceptions.cc (sig_handle_tty_stop): Ignore attempts to suspend a
1839 process if started by non-cygwin parent.
1840
d80999a1
CF
1841Thu Mar 1 20:48:11 2001 Christopher Faylor <cgf@cygnus.com>
1842
1843 * select.cc (peek_console): Don't report read_ready on mouse events
1844 unless we are looking for mouse events.
1845 * fhandler.h (fhandler_console::mouse_aware): New method.
1846
2de76014
CV
1847Wed Feb 28 15:10:00 2001 Corinna Vinschen <corinna@vinschen.de>
1848
1849 * uinfo.cc: Eliminate `#include <wchar.h>'.
1850
739db26a
ED
18512001-02-28 Egor Duda <deo@logos-m.ru>
1852
1853 * fhandler_floppy.cc (fhandler_dev_floppy::lseek): Determine
1854 drive geometry or partition size to allow seeking from the end of
1855 raw floppy device. Don't allow positioning past the end of media or
1856 to offsets bigger then max off_t.
1857
a53136cc
ED
18582001-02-27 Egor Duda <deo@logos-m.ru>
1859
1860 * fhandler.h (class fhandler_console): Make all variables that
1861 describe "state" of console to be members of fhandler_console.
1862 default_color is now the color which is set when console recieves
1863 reset command.
1864 * fhandler_console.cc (fhandler_console::fhandler_console): Turn
1865 mouse handling and raw keyboard mode off by default. Initialize
1866 state information.
1867 * fhandler.cc (fhandler_console::set_raw_win32_keyboard_mode): New
1868 function.
1869 * fhandler_console.cc (fhandler_console::set_default_attr): New
1870 function. Reset console attributes to default values.
1871 * fhandler_console.cc (fhandler_console::open): Reset attributes.
1872 * fhandler_console.cc (fhandler_console::get_win32_attr): New function.
1873 Calculate win32-style console attribute based on terminal attributes.
1874 * fhandler_console.cc (fhandler_console::set_cursor_maybe): Use
1875 member variable.
1876 * fhandler_console.cc (fhandler_console::read): If in raw-win32
1877 keyboard mode, encode win32 keyboard events in \033{x;y;z;t;u;wK
1878 sequences.
1879 * fhandler_console.cc (fhandler_console::dup): Copy all state
1880 information to the dup()ed handle.
1881 * fhandler_console.cc (fhandler_console::scroll_screen): Use current
1882 fill-in attribute.
1883 * fhandler_console.cc (fhandler_console::clear_screen): Ditto.
1884 * fhandler_console.cc (fhandler_console::char_command): Check if we
1885 saw '?' symbol by member variable. Set terminal attributes on \033[Xm
1886 commands. \033[24m - turn off underline mode, \033[27m - turn off
1887 reverse mode, \033[39m - restore default foreground color.
1888 \033[49m - restore default background color. \033[2000h - turn on raw
1889 keyboard mode, \033[2000l - turn off raw keyboard mode.
1890 * fhandler_console.cc (fhandler_console::write): Set attribues to
1891 default values on reset command.
1892
5b331f1e 18932001-02-26 Mike Simons <msimons@moria.simons-clan.com>
efd76e41 1894
5b331f1e
CF
1895 * times.cc (settimeofday): Replace function stub with working code.
1896
88429768
CV
1897Mon Feb 26 10:42:00 2001 Corinna Vinschen <corinna@vinschen.de>
1898
1899 * strace.cc (strace::vprntf): Move prntf functionality to this function
1900 adding an va_list interface to strace.
1901 (strace::printf): Calls strace::vprntf now.
1902 (strace_printf): New function providing an extern "C" interface to
1903 trace output.
1904 * include/sys/strace.h: Make plain C clean.
1905 (class strace): Add `vprntf' method.
1906
6626ebfe
CV
1907Mon Feb 26 0:10:00 2001 Corinna Vinschen <corinna@vinschen.de>
1908
1909 * shortcut.c: Remove #include <sys/strace.h>.
1910
649033a8
CV
1911Sun Feb 25 10:32:00 2001 Corinna Vinschen <corinna@vinschen.de>
1912
1913 * path.cc (symlink): Add a ".lnk" suffix regardless. Add a comment.
1914
80ed95f2
CV
1915Sun Feb 25 10:18:00 2001 Corinna Vinschen <corinna@vinschen.de>
1916
649033a8 1917 * shortcut.c (check_shortcut): Change symlink condition.
80ed95f2 1918
675412e9
CV
1919Fri Feb 23 10:42:00 2001 Corinna Vinschen <corinna@vinschen.de>
1920
1921 * mmap.cc (fhandler_disk_file::mmap): Use `addr' correctly.
1922 * fhandler_mem.cc (fhandler_dev_mem::mmap): Ditto.
1923
ff413a98
CV
1924Thu Feb 22 17:09:00 2001 Corinna Vinschen <corinna@vinschen.de>
1925
1926 * path.cc (symlink): Keep relative paths relative in the DOS
659b480b
CV
1927 path inside of a shortcut. If that's impossible or the target
1928 path is already absolute save an absolute path.
ff413a98 1929
c5a4eacc
CV
1930Thu Feb 22 15:33:00 2001 Corinna Vinschen <corinna@vinschen.de>
1931
1932 * cygerrno.h: Revert previous patch.
1933 * errno.cc: Ditto.
1934 * dir.cc: Eliminate `dir_suffixes'.
1935 (opendir): Remove usage of `dir_suffixes'.
1936 (rmdir): Ditto.
1937 * fhandler.cc (fhandler_disk_file::open): Remove usage of
1938 `inner_suffixes'.
1939 * path.cc: Rename `inner_suffixes' to `lnk_suffixes'.
1940 (path_conv::check): Remove usage of `inner_suffixes'.
1941 (symlink): Ditto.
1942 (symlink_info::check): Handle checking for `.lnk' in path_conv
1943 exclusively here.
1944 (chdir): Remove usage of `dir_suffixes'.
1945 * shortcut.c: Eliminate debug_printf lines.
1946 (check_shortcut): Don't set error except on failing ReadFile.
1947 * spawn.cc: Remove ".lnk" from `std_suffixes'.
1948 * syscalls.cc (_unlink): Remove usage of `inner_suffixes'.
1949 Remove ".lnk" from `stat_suffixes'.
1950 (_rename): Add check for renaming a symlink to keep the ".lnk"
1951 suffix after renaming.
1952
79e56091
CV
1953Thu Feb 22 13:38:00 2001 Corinna Vinschen <corinna@vinschen.de>
1954
1955 * shortcut.c: New file. Provides a C interface to reading of
1956 Windows shortcuts to avoid compiler flag `-fvtable-thunks'.
1957 * shortcut.h: Ditto.
1958 * Makefile.in: Add shortcut.o to DLL_OFILES.
1959 * cygerrno.h: Provide a C interface to `geterrno_from_win_error' for
1960 using in shortcut.c.
1961 * errno.cc (geterrno_from_win_error): Define as extern "C".
1962 * path.cc (struct symlink_info): Remove methods `check_shortcut' and
1963 `check_sysfile'.
1964 (shortcut_header): Move to shortcut.c.
1965 (shortcut_initalized): Ditto.
1966 (create_shortcut_header): Ditto.
1967 (cmp_shortcut_header): Ditto.
1968 (symlink_info::check_shortcut): Ditto. Reorganize as a plain C function.
1969 (symlink_info::check_sysfile): Redefine as a global function using the
1970 same parameter list as `check_shortcut' for clearness.
1971 (symlink_info::check): Change parameter list for calls to
1972 `check_shortcut' and `check_sysfile'.
1973
87e6b098
CV
1974Thu Feb 22 12:04:00 2001 Corinna Vinschen <corinna@vinschen.de>
1975
1976 * fhandler.cc (fhandler_disk_file::open): Use `inner_suffixes' when
1977 resolving real_path.
1978 * path.cc (symlink): Ditto for win32_topath.
1979
10b06c5e
CV
1980Wed Feb 21 22:41:00 2001 Corinna Vinschen <corinna@vinschen.de>
1981
1982 * Makefile.in: Add `-lshell32 -luuid' to link pass for new-cygwin1.dll.
1983 * autoload.cc: Add LoadDLLinitfunc for ole32.dll.
1984 Add LoadDLLfuncEx statements for CoInitialize@4, CoUninitialize@0
1985 and CoCreateInstance@20.
1986 * dir.cc (dir_suffixes): New datastructure.
1987 (readdir): Check for R/O *.lnk files to hide the suffix.
1988 (opendir): Use `dir_suffixes' in path conversion.
1989 (rmdir): Ditto.
1990 * fhandler.cc (fhandler_disk_file::fstat): Add S_IFLNK flag
1991 before calling `get_file_attribute'. Take FILE_ATTRIBUTE_READONLY
1992 into account only if the file is no symlink.
1993 * path.cc (inner_suffixes): New datastructure.
1994 (SYMLINKATTR): Eliminated.
1995 (path_conv::check): Use `inner_suffixes' on inner path components.
1996 (shortcut_header): New global static variable.
1997 (shortcut_initalized): Ditto.
1998 (create_shortcut_header): New function.
1999 (cmp_shortcut_header): Ditto.
2000 (symlink): Create symlinks by creating windows shortcuts. Preserve
2001 the old code.
2002 (symlink_info::check_shortcut): New method.
2003 (symlink_info::check_sysfile): Ditto.
2004 (symlink_info::check): Check for shortcuts. Move code reading
2005 old system attribute symlinks into symlink_info::check_sysfile().
2006 (chdir): Use `dir_suffixes' in path conversion.
2007 * security.cc (get_file_attribute): Check for S_IFLNK flag.
2008 Force 0777 permissions then.
2009 * spawn.cc (std_suffixes): Add ".lnk" suffix.
2010 * syscalls.cc (_unlink): Use `inner_suffixes' in path conversion.
2011 Check for shortcut symlinks to eliminate R/O attribute before
2012 calling DeleteFile().
2013 (stat_suffixes): Add ".lnk" suffix.
2014 (stat_worker): Force 0777 permissions if file is a symlink.
2015
0917ed59
ED
20162001-02-21 Egor Duda <deo@logos-m.ru>
2017
2018 * sigproc.cc (getsem): Make semaphore always non-inheritable.
2019
441d7aee
CF
2020Mon Feb 19 22:25:53 2001 Christopher Faylor <cgf@cygnus.com>
2021
2022 * dcrt0.cc (locale_init): Remove.
2023
f97e7d75
CF
20242001-02-15 Kazuhiro Fujieda <fujieda@jaist.ac.jp>
2025
2026 * cygwin.din: Export rand48 functions.
2027 * thread.cc (MTinterface::Init): Remove the initialization of
2028 `reent_data'.
2029 * dcrt0.cc: Add the initalizer to the declaration of `reent_data'.
2030 * include/cygwin/version.h: Bump CYGWIN_VERSION_API_MINOR to 35.
2031
fc68bf34
ED
20322001-02-16 Egor Duda <deo@logos-m.ru>
2033
2034 * signal.cc (signal): Prohibit setting handlers for SIGKILL and
2035 SIGSTOP
2036 * signal.cc (sigaction): Ditto
2037 * syscalls.cc (_lseek): Return EINVAL on invalid input
2038
ee2c7251
CF
2039Wed Feb 14 14:54:40 2001 Christophe Iasci <chrisiasci@aol.com>
2040
2041 * dlfcn.cc (dlopen): Do not call LoadLibrary with a NULL pointer, when
2042 the library is not found
2043
8f8e7442 20442001-02-14 Egor Duda <deo@logos-m.ru>
efd76e41 2045
8f8e7442
CF
2046 * fhandler_console.cc (fhandler_console::char_command): Ignore unknown
2047 rendition codes in \033[xx;yym control sequences
2048
cde0c2fb
CF
2049Fri Feb 9 23:19:01 2001 Christopher Faylor <cgf@cygnus.com>
2050
2051 * fork.cc (fork_parent): Return EAGAIN when can't record pid.
2052 * pinfo.h (pinfo::remember): Return value of call to proc_subproc.
2053 * sigproc.cc (proc_subproc): Return error if can't record pid.
2054
c41482c7
CF
2055Fri Feb 9 12:17:27 2001 Christopher Faylor <cgf@cygnus.com>
2056
2057 * syscalls.cc (mknod): Add valid parameters.
2058
889109ab
CV
2059Thu Feb 8 22:09:00 2001 Corinna Vinschen <corinna@vinschen.de>
2060
2061 * mmap.cc (mmap): Check for reusing a mapping only on MAP_SHARED
2062 and on MAP_PRIVATE|MAP_ANON in the special case of offset 0.
2063
db49d0b5
CV
2064Thu Feb 8 21:57:00 2001 Corinna Vinschen <corinna@vinschen.de>
2065
2066 * mmap.cc (class list): Add member `hash'.
2067 (list::list): Initialize `hash'.
2068 (list::get_list_by_fd): Use filepath hash value to get the correct
2069 mapping list if it's not an anonymous mapping.
2070 (map::add_list): Initialize `hash' with filepath hash value.
2071 (mmap): Check for reusing a mapping only on MAP_SHARED.
2072
91d385fe
CF
2073Wed Feb 7 18:47:36 2001 Christopher Faylor <cgf@cygnus.com>
2074
2075 * signal.cc (killpg): Correct first argument.
2076
9182099c
CV
2077Wed Feb 7 22:22:00 2001 Corinna Vinschen <corinna@vinschen.de>
2078
2079 * autoload.cc: Add LoadDLLinitfunc for iphlpapi.dll.
2080 Add LoadDLLfuncEx statements for GetIfTable@12 and GetIpAddrTable@12.
2081 * fhandler_socket.cc (fhandler_socket::ioctl): Move variable
2082 definitions to the beginning of the function to allow better debugging.
2083 Add handling for SIOCGIFHWADDR, SIOCGIFMETRIC and SIOCGIFMTU.
2084 * net.cc: Include iphlpapi.h.
2085 (get_2k_ifconf): Rewritten. Uses IP Helper API now.
2086 (get_nt_ifconf): Add handling for SIOCGIFHWADDR, SIOCGIFMETRIC
2087 and SIOCGIFMTU.
2088 (get_95_ifconf): Ditto. Renamed from `get_9x_ifconf'.
2089 (get_ifconf): Name loopback `lo' instead of `lo0' as in Linux.
2090 Add handling for SIOCGIFHWADDR, SIOCGIFMETRIC and SIOCGIFMTU.
2091 Call `get_95_ifconf' only on Windows 95, `get_nt_ifconf' only
2092 on Windows NT < Service Pack 3, `get_2k_ifconf otherwise.
2093 * include/asm/socket.h: Add defines for SIOCGIFHWADDR, SIOCGIFMETRIC
2094 and SIOCGIFMTU.
2095 * include/cygwin/if.h: Add `ifr_hwaddr', `ifr_metric' and `ifr_mtu'.
2096 (struct ifreq): Add `ifru_hwaddr'.
2097
d7ed877b
CV
2098Tue Feb 6 15:04:00 2001 Corinna Vinschen <corinna@vinschen.de>
2099
2100 * syscalls.cc (stat_worker): Add a check for the special case when
2101 a process creates a file using mode 000 using ntsec.
2102
ae9b22c6
CV
2103Mon Feb 5 17:00:00 2001 Corinna Vinschen <corinna@vinschen.de>
2104
2105 * fhandler.cc (fhandler_base::open): Always add GENERIC_READ access
2106 when opening raw disk devices.
2107 * fhandler_floppy.cc (fhandler_dev_floppy::lseek): Implement bytewise
2108 access.
2109 * fhandler_raw.cc (fhandler_dev_raw::open): Always open raw disk device
2110 binary.
2111 (fhandler_dev_raw::raw_write): Don't drop read buffer content when
2112 writing after read.
2113
cada03f9
CV
2114Mon Feb 5 13:30:00 2001 Corinna Vinschen <corinna@vinschen.de>
2115
2116 * mmap.cc (mmap_record::fixup_map): New method to duplicate
2117 the memory protection in a just forked child.
2118 (mmap): Realign gran_len to page boundary only on anonymous
2119 mapping before saving in the mmap_record.
2120 (munmap): Cleanup code.
2121 (msync): Ditto.
2122 (fixup_mmaps_after_fork): Ditto. Call mmap_record::fixup_map now.
2123
47f81092
CF
2124Thu Feb 1 23:08:29 2001 Christopher Faylor <cgf@cygnus.com>
2125
2126 * cygheap.cc (creturn): Correctly calculate cygheap_max.
2127
f8da1507
CF
2128Wed Jan 31 10:04:58 2001 Christopher Faylor <cgf@cygnus.com>
2129
2130 * shared.cc (shared_info::initialize): Reduce size of heap.
2131
83443511
CV
2132Wed Jan 31 13:22:00 2001 Corinna Vinschen <corinna@vinschen.de>
2133
2134 * include/sys/resource.h: Fix typo.
2135
44e6d951
CV
2136Wed Jan 31 13:20:00 2001 Corinna Vinschen <corinna@vinschen.de>
2137
83443511 2138 * include/sys/resource.h: Add RLIMIT_NLIMITS and RLIM_NLIMITS.
44e6d951 2139
4f42df7b
CF
2140Tue Jan 30 18:15:23 2001 Christopher Faylor <cgf@cygnus.com>
2141
2142 * include/cygwin/version.h: Bump version to 1.3.0.
2143
9928a7e1
CV
2144Tue Jan 30 8:55:00 2001 Corinna Vinschen <corinna@vinschen.de>
2145
2146 * pinfo.cc (pinfo::init): Use INVALID_HANDLE_VALUE instead of
2147 explicit cast (HANDLE) 0xffffffff.
2148 * shared.cc (open_shared): Ditto.
2149
747e88d3
CF
2150Mon Jan 29 17:15:22 2001 Bill Hegardt <bill@troyxcd.com>
2151
2152 * fhandler_serial.cc (raw_write): Use local copy of OVERLAPPED
2153 structure instead of shared structure to fix a race condition between
2154 read/write.
2155
68ea0dc2
CV
2156Mon Jan 29 14:30:00 2001 Corinna Vinschen <corinna@vinschen.de>
2157
2158 * mmap.cc (mmap): Remove obsolete check for MAP_SHARED|MAP_ANON as
2159 being invalid.
2160
f977222f
CV
2161Mon Jan 29 10:23:00 2001 Corinna Vinschen <corinna@vinschen.de>
2162
2163 * mmap.cc (mmap_record::find_empty): Fix loop condition.
2164
6a4878cf
CF
2165Sun Jan 28 19:40:40 2001 Christopher Faylor <cgf@cygnus.com>
2166
2167 * syscalls.cc (_link): Make sure that newpath does not exist. Set
2168 errno if it does.
2169
2170Sun Jan 28 19:29:08 2001 Christopher Faylor <cgf@cygnus.com>
2171
2172 * cygheap.cc (init_cheap): Don't specify a load address for the heap.
2173 It doesn't work on #!*& Windows 9x.
2174 (cygheap_init): Move GetUserName to memory_init.
2175 * dcrt0.cc (dll_crt0_1): Call new memory_init functin, eliminate call
2176 to heap_init.
2177 * heap.cc (heap_init): Improve error output.
2178 * heap.h: Correct some declarations.
2179 * shared.cc (mount_table_init): Remove.
2180 (memory_init): Renamed from shared_init. Reorganize to accomodate
2181 strange Windows 9x problems with cygheap/heap interaction.
2182 * shared_info.h: Rename shared_init to memory_init.
2183
ae6c8e4f
CF
2184Sun Jan 28 01:25:33 2001 Christopher Faylor <cgf@cygnus.com>
2185
2186 * include/cygwin/version.h: Bump API version.
2187
9a089f21
CF
2188Sun Jan 28 01:18:22 2001 Christopher Faylor <cgf@cygnus.com>
2189
2190 * cygheap.cc (init_cheap): Move username initialization.
2191 (cygheap_init): Here.
2192 * shared_info.h (mount_info): Add a sys_mount_table_counter field.
2193 (shared_info): Ditto.
2194 * path.cc (mount_info::conv_to_win32_path): Check that our mount table
2195 is in sync with the system mount table and reinitialize it if not.
2196 (mount_info::add_reg_mount): Bump sys_mount_table counters if the
2197 system mount table changes.
2198 (mount_info::del_reg_mount): Ditto.
2199 (mount_info::write_cygdrive_info_to_registry): Ditto.
2200 (mount_info::remove_cygdrive_info_from_registry): Ditto.
2201
2a6fc028
CF
2202Sun Jan 28 00:28:30 2001 Christopher Faylor <cgf@cygnus.com>
2203
2204 Throughout, change 'cygwin_shared.mount' to 'mount_table'.
2205 * child_info.h (child_info): Move shared_h, console_h to cygheap. Add
2206 mount_h.
2207 * cygheap.h (init_cygheap): Add shared_h, console_h.
2208 * cygheap.cc (init_cheap): Initialize heap at a fixed location after
2209 the shared memory regions. Initialize cygheap->user name here.
2210 * dcrt0.cc (dll_crt0_1): Call getpagesize () to initialize constants.
2211 Remove cygheap_init since it is done in shared_init now.
2212 (_dll_crt0): Initialize mount_h, remove shared_h and console_h
2213 initialization.
2214 * fhandler_console.cc (console_shared_h): Eliminate.
2215 (get_tty_stuff): Use cygheap->console_h rather than console_shared_h.
6a4878cf
CF
2216 * heap.cc (heap_init): Use page size constant calculated earlier in
2217 initialization.
2a6fc028
CF
2218 * shared.cc: Eliminate cygwin_shared_h. Add cygwin_mount_h.
2219 (mount_table_init): New function for initializing a user mount table.
6a4878cf
CF
2220 (open_shared_file_map): Use constant for shared memory region.
2221 Initialize cygheap and mount table here.
2a6fc028
CF
2222 (open_shared): Improve debugging output.
2223 (shared_info::initialize): Eliminate call to mount.init.
2224 (shared_terminate): Use cygheap->shared_h. Close cygwin_mount_h.
2225 (open_shared_file_map): Eliminate.
2226 * shared_info.h (mount_info): Add a version field.
6a4878cf
CF
2227 (shared_align_past): New macro for calculating location for shared
2228 memory regions.
2a6fc028 2229 * sigproc.cc (init_child_info): Eliminate shared_h, console_h.
6a4878cf
CF
2230 * spawn.cc (spawn_guts): Pass on cygwin_mount_h iff not a different
2231 user.
2a6fc028
CF
2232 * syscalls.cc (system_info): New global holding system memory defaults.
2233 (getpagesize): Use system_info.
2234 * uinfo.cc (internal_getlogin): Only fill in user name if nonexistent.
2235 * winsup.h: Declare system_info.
2236
6a4878cf
CF
2237 * passwd.cc (read_etc_passwd): Use cygheap->user.name () rather than
2238 retrieving the name again.
2a6fc028 2239
bdfeca60
CF
2240Sat Jan 27 10:18:02 2001 Christopher Faylor <cgf@cygnus.com>
2241
2242 * path.cc (path_conv::check): Detect when path has symlinks.
2243 (symlink_info::check): Remove debugging stuff.
2244 (chdir): Use posix'ized win32 path if cd'ed to a path using symlinks.
2245
206a8d88
CF
2246Fri Jan 26 21:20:28 2001 Christopher Faylor <cgf@cygnus.com>
2247
2248 * exceptions.cc (sigreturn): Call any pending signals prior to
2249 resetting the signal mask so that stacked signals behave correctly.
2250 (sigdelayed): Avoid a race where a signal could end up calling an
2251 incorrect signal handler if two signals come in close together.
2252
174f1a39
CV
2253Tue Jan 23 21:56:00 2001 Corinna Vinschen <corinna@vinschen.de>
2254
2255 * mmap.cc (fhandler_disk_file::mmap): Call CreateFileMapping with
2256 len != 0 only when performing an anonymous mapping.
2257
4c7b8250
CF
2258Mon Jan 22 15:35:28 2001 Christopher Faylor <cgf@cygnus.com>
2259
2260 * path.h: Add a new constant.
2261 * syscalls.cc (_read): Oscillate errno check.
2262
c65a3183
CF
2263Mon Jan 22 15:27:12 2001 Christopher Faylor <cgf@cygnus.com>
2264
2265 * include/cygwin/version.h: Bump API to reflect setlogmask.
2266
29c39fe3
CF
2267Sun Jan 21 22:40:25 2001 Jason Tishler <jt@dothill.com>
2268
2269 * cygwin.din: Add export for setlogmask().
2270 * syslog.cc (setlogmask): New function.
2271
c807d355
CV
2272Thu Jan 18 10:27:00 2001 Corinna Vinschen <corinna@vinschen.de>
2273
2274 * resource.cc (setrlimit): Support RLIMIT_NOFILE.
2275
4e2a97b2
CF
2276Wed Jan 17 23:23:12 2001 Christopher Faylor <cgf@cygnus.com>
2277
2278 * syscalls.cc (setdtablesize): Call with amount to increment not total
2279 amount. Return success or failure error code.
2280
a7cde2b9
CF
2281Wed Jan 17 09:47:13 2001 Christopher Faylor <cgf@cygnus.com>
2282
2283 * autoload.cc (LoadDLLinitfunc): Remove debugging statement.
2284
2285 * exceptions.cc (sig_handle_tty_stop): Move setting of PID_STOPPED to
2286 earlier in interrupt.
2287 ((interrupt_setup): i.e., here.
2288 (sig_handle): Don't queue multiple SIGSTOPS.
2289 * fhandler.h (bg_check_types): Enumerate return value of bg_check for
2290 clarity.
2291 * signal.cc (kill_pgrp): Minor cleanup.
2292 * fhandler_termios.cc (fhandler_termios::bg_check): Use enumerated type
2293 for function return. Don't raise signal if a signal is already queued.
2294 * fhandler_console.cc (fhandler_console::read): Use enumerated return
2295 type for bg_check.
2296 * select.cc: Ditto, throughout.
2297 * read.cc: Ditto, throughout.
2298 * termios.cc: Ditto, throughout.
2299 (_read): YA interrupt detect simplification.
2300 * wait.cc (wait4): Ditto.
2301
cb503978
CV
2302Wed Jan 17 10:56:00 2001 Corinna Vinschen <corinna@vinschen.de>
2303
2304 * cygheap.cc (cygheap_user::~cygheap_user): Temporarily
2305 disable free'ing memory.
2306
9fedfd57
CV
2307Tue Jan 16 18:01:00 2001 Corinna Vinschen <corinna@vinschen.de>
2308
2309 * mmap.cc (mmap): Initialize fh to avoid compiler warnings.
2310
9470a80c
CF
2311Mon Jan 15 21:07:00 2001 Christopher Faylor <cgf@cygnus.com>
2312
2313 * wait.cc (wait4): Rename variable for consistency. Allow restartable
2314 signal behavior.
2315
9334c89c
CV
2316Mon Jan 15 23:15:00 2001 Corinna Vinschen <corinna@vinschen.de>
2317
2318 * mmap.cc (mmap): Add more parameter checking. Change error output
2319 in case of EINVAL. Treat mmapping /dev/zero like MAP_ANONYMOUS.
2320
c6dd43f2
CV
2321Mon Jan 15 20:34:00 2001 Corinna Vinschen <corinna@vinschen.de>
2322
2323 * mmap.cc: include <unistd.h>. Define some bit operations for
2324 the new page map.
2325 (mmap_record): Change type of base_address_ to caddr_t.
2326 Add map_map_ member. Add several methods to manipulate map_map_.
2327 (mmap_record::alloc_map): New method.
2328 (mmap_record::free_map): Ditto.
2329 (mmap_record::find_empty): Ditto.
2330 (mmap_record::map_map): Ditto.
2331 (mmap_record::unmap_map): Ditto.
2332 (list::add_record): Change return type to `mmap_record *'.
2333 Allocate page map.
2334 (list::match): New method.
2335 (mmap): Partly rewritten to take care for the new page map. Add some
2336 parameter checking.
2337 (munmap): Ditto.
2338
66097f06
CV
2339Mon Jan 15 13:50:00 2001 Corinna Vinschen <corinna@vinschen.de>
2340
2341 * heap.cc (heap_init): Fix extern declaration of getpagesize.
2342 * syscalls.cc (getpagesize): Fix another typo.
2343
dc3651b6
CV
2344Mon Jan 15 12:48:00 2001 Corinna Vinschen <corinna@vinschen.de>
2345
2346 * syscalls.cc (getpagesize): Save pagesize in global variable to
2347 avoid calling GetSystemInfo too often.
2348 * heap.cc (getpagesize): Eliminate.
2349 (heap_init): Use getpagesize function from syscalls.cc.
2350
4cf2c0e0
CV
2351Mon Jan 15 11:56:00 2001 Corinna Vinschen <corinna@vinschen.de>
2352
2353 * sysconf.cc (sysconf): return `getpagesize ()' on _SC_PAGESIZE
2354 request to avoid implementing the same twice.
2355
a3ec080b
CF
2356Sun Jan 14 14:07:50 2001 Christopher Faylor <cgf@cygnus.com>
2357
2358 * syscalls.cc (_read): Use more lightweight method for determining if
2359 read has been interrupted by a signal.
2360
c3d62298
CF
2361Fri Jan 12 00:35:15 2001 Christopher Faylor <cgf@cygnus.com>
2362
2363 * debug.h: Add regparm attributes to some functions.
2364
2365 * signal.cc (sigaction): Don't treat SIGCONT specially.
2366
6a4878cf
CF
2367 * exceptions.cc (interrupt_setup): Save sa_flags of interrupted signal
2368 for later use.
c3d62298
CF
2369 (sig_handler): Default any stopping signal to SIGSTOP.
2370 (call_signal_handler): New function.
2371 (sigdelayed0): New function.
6a4878cf
CF
2372 * sigproc.cc (sigproc_init): Initialize SIGSTOP sigaction for special
2373 behavior.
c3d62298
CF
2374 * sigproc.h: Define call_signal_handler.
2375 * syscalls.cc (_read): Allow restartable signal behavior.
2376
c4efddf6
CV
2377Thu Jan 11 13:17:00 2001 Corinna Vinschen <corinna@vinschen.de>
2378
2379 * fhandler.h (fhandler_base): New method `fixup_mmap_after_fork'.
2380 (fhandler_disk_file: Ditto.
2381 (fhandler_dev_mem): Ditto.
2382 * fhandler_mem.cc (fhandler_dev_mem::open): Set OBJ_INHERIT attribute
2383 for device\physicalmemory handle.
2384 (fhandler_dev_mem::mmap): Ditto.
6a4878cf
CF
2385 * fhandler_mem.cc (fhandler_dev_mem::fixup_mmap_after_fork): New
2386 method.
2387 * mmap.cc (mmap_record): Add private `fdesc_' member. Change
2388 constructor accordingly.
c4efddf6
CV
2389 (get_fd): New method.
2390 (mmap): Use new mmap_record constructor.
2391 (fhandler_base::fixup_mmap_after_fork): New method.
2392 (fhandler_disk_file::fixup_mmap_after_fork): Ditto.
6a4878cf 2393 (fixup_mmaps_after_fork): Call `fixup_mmap_after_fork' of appropriate
c4efddf6
CV
2394 fhandler class.
2395
7416e1d2
CF
2396Wed Jan 10 22:08:30 2001 Kazuhiro Fujieda <fujieda@jaist.ac.jp>
2397
2398 * sigproc.cc (wait_sig): Allow SIGCONT when stopped.
2399
55ae1dff
CV
2400Tue Jan 9 16:55:00 2001 Corinna Vinschen <corinna@vinschen.de>
2401
2402