1 2007-02-20 Christopher Faylor <me@cgf.cx>
3 * exceptions.cc (_cygtls::signal_exit): Only call myself.exit when when
4 exit_state indicates that we've visited do_exit.
5 * sync.h (lock_process::lock_process): Use renamed exit_state -
7 * winsup.h: Rename ES_MUTO_SET to ES_PROCESS_LOCKED.
9 2007-02-20 Corinna Vinschen <corinna@vinschen.de>
11 * fhandler_socket.cc (fhandler_socket::bind): Remove printing wrong
12 errno in debug output.
14 2007-02-19 Christopher Faylor <me@cgf.cx>
16 Remove extraneous whitespace.
17 * pinfo.cc (commune_process): Use default argument to lock_process.
18 * sigproc.cc: Update copyright.
21 2007-02-15 Corinna Vinschen <corinna@vinschen.de>
23 * posix_ipc.cc (mq_open): Avoid compiler warning. Initialize mqhdr
24 before using it in file exists case.
25 * include/mqueue.h (mqd_t): Make non-pointer type.
27 2007-02-15 Corinna Vinschen <corinna@vinschen.de>
29 * posix_ipc.cc (ipc_mutex_init): Create global object name.
30 (ipc_cond_init): Ditto.
31 (struct mq_hdr): Add mqh_uname member to store synchronization object
33 (mq_open): Create unique synchronization object name and store in
34 mq_hdr->mqh_uname. Use this name in calls to ipc_mutex_init and
37 2007-02-14 Corinna Vinschen <corinna@vinschen.de>
39 * Makefile.in (DLL_OFILES): Add posix_ipc.o.
40 * cygwin.din (mq_close): Export.
47 (mq_timedreceive): Export.
48 (mq_timedsend): Export.
50 * posix_ipc.cc: New file implementing the above functions. Move
51 shm_open and shm_unlink from syscalls.cc here.
52 * sysconf.cc (sca): Set value of _SC_MQ_OPEN_MAX to MQ_OPEN_MAX,
53 _SC_MQ_PRIO_MAX to MQ_PRIO_MAX, _SC_MESSAGE_PASSING to
54 _POSIX_MESSAGE_PASSING.
55 * include/limits.h (MQ_OPEN_MAX): Define.
56 (MQ_PRIO_MAX): Define.
57 * include/mqueue.h: New file.
58 * include/cygwin/version.h: Bump API minor number.
60 2007-02-13 Corinna Vinschen <corinna@vinschen.de>
62 * include/cygwin/stdlib.h (valloc): Declare.
65 2007-02-09 Pierre A. Humblet <Pierre.Humblet@ieee.org>
67 * libc/minires-os-if.c (write_record): Handle DNS_TYPE_SRV and
70 2007-02-08 Corinna Vinschen <corinna@vinschen.de>
72 * syscalls.cc (check_shm): New static function to do path checking
73 common to shm_open and shm_unlink. Check for /dev/shm existance.
74 (shm_open): Call check_shm.
77 2007-02-08 Corinna Vinschen <corinna@vinschen.de>
79 * cygwin.din (shm_open): Export.
81 * syscalls.cc (shm_open): New function.
82 (shm_unlink): New function.
83 * sysconf.cc (sca): Set value of _SC_SHARED_MEMORY_OBJECTS to
84 _POSIX_SHARED_MEMORY_OBJECTS.
85 * include/cygwin/version.h: Bump API minor number.
86 * include/sys/mman.h (shm_open): Add prototype.
89 2007-02-08 Christopher Faylor <me@cgf.cx>
90 Corinna Vinschen <corinna@vinschen.de>
92 * cygmalloc.h (__set_ENOMEM): Declare.
93 (MALLOC_FAILURE_ACTION): Call __set_ENOMEM.
94 * malloc_wrapper.cc (malloc) Remove setting errno here.
99 (posix_memalign): Save and restore errno.
101 2007-02-07 Corinna Vinschen <corinna@vinschen.de>
103 * cygmalloc.h (MALLOC_FAILURE_ACTION): Move to correct #if branch.
105 2007-02-07 Corinna Vinschen <corinna@vinschen.de>
107 * cygmalloc.h (MALLOC_FAILURE_ACTION): Define empty.
108 * cygwin.din (posix_madvise): Export.
109 (posix_memalign): Export.
110 * fhandler.cc (fhandler_base::fpathconf): Return useful values in
111 _PC_VDISABLE, _PC_SYNC_IO and _PC_SYMLINK_MAX cases.
112 * malloc_wrapper.cc (malloc): Set errno here since it's not set in
118 (posix_memalign): New function.
119 * mmap.cc (posix_madvise): New function.
120 * sysconf.cc (get_open_max): New function.
121 (get_page_size): Ditto.
122 (get_nproc_values): Ditto.
125 (sca): New array to map _SC_xxx options to sysconf return values.
126 (sysconf): Reimplement using sca array.
127 * include/limits.h: Add all missing values as defined by SUSv3.
128 * include/pthread.h (PTHREAD_DESTRUCTOR_ITERATIONS): Move definition
130 (PTHREAD_KEYS_MAX): Ditto.
131 * include/semaphore.h (SEM_VALUE_MAX): Ditto.
132 * include/cygwin/stdlib.h (posix_memalign): Declare.
133 * include/cygwin/version.h: Bump API minor number.
134 * include/sys/mman.h: Add posix_madvise flags.
135 (posix_madvise): Declare.
136 * include/sys/termios.h (_POSIX_VDISABLE): Move definition to
139 2007-02-05 Corinna Vinschen <corinna@vinschen.de>
141 * fhandler_serial.cc (fhandler_serial::tcsetattr): Add support for
142 baud rates up to 3000000 baud. Add missing 128K and 256K cases.
143 (fhandler_serial::tcgetattr): Ditto.
144 * include/sys/termios.h: Add baud rate definitions from B460800 up to
147 2007-02-02 Corinna Vinschen <corinna@vinschen.de>
149 * syscalls.cc (unlink_nt): Add missing assignment in case NtClose fails.
151 2007-02-01 Corinna Vinschen <corinna@vinschen.de>
153 * net.cc (ga_dup): New function, taken from ga_clone with v4-in-v6
155 (ga_clone): Just call ga_dup from here.
156 (ga_duplist): New function to duplicate list of struct addrinfo.
157 (ga_echeck): Don't check ai_flags, it already happened in
159 (cygwin_freeaddrinfo): Always call ipv4_freeaddrinfo.
160 (cygwin_getaddrinfo): Use new wincap.supports_all_posix_ai_flags
161 flag rather than wincap.has_gaa_on_link_prefix. Always duplicate
162 WinSock's addrinfo list to a self-allocated list. Handle AI_V4MAPPED
163 for pre-Vista platforms supporting getaddrinfo.
164 * wincap.h (wincapc::supports_all_posix_ai_flags): New element.
165 * wincap.cc: Implement above element throughout.
166 * include/netdb.h: Note how AI_ADDRCONFIG is not supported pre-Vista.
167 Remove superfluous comment.
169 2007-02-01 Corinna Vinschen <corinna@vinschen.de>
171 * include/cygwin/socket.h: Add IPv6 socket options.
173 2007-01-31 Corinna Vinschen <corinna@vinschen.de>
175 * net.cc (cygwin_getaddrinfo): Fix thinko in AI_ADDRCONFIG handling.
177 2007-01-31 Corinna Vinschen <corinna@vinschen.de>
179 * net.cc (cygwin_getaddrinfo): Check ai_flags for valid values.
180 Handle AI_NUMERICSERV. Handle AI_ADDRCONFIG behaviour on Vista.
181 * include/netdb.h (AI_NUMERICSERV): Add missing flag.
183 2007-01-30 Corinna Vinschen <corinna@vinschen.de>
185 * fhandler_disk_file.cc (fhandler_disk_file::closedir): Add dir name
187 * syscalls.cc (try_to_bin): Enable code to move file to user specific
188 recycler dir to eliminate Vista problem.
189 (unlink_nt): Add comment that rename after opening for delete on close
192 2007-01-30 Corinna Vinschen <corinna@vinschen.de>
194 * sigproc.cc (child_info::child_info): Set msv_count to non-zero
195 value only on systems requiring it.
197 2007-01-28 Corinna Vinschen <corinna@vinschen.de>
199 * include/ftw.h: Include sys/cdefs.h.
201 2007-01-26 Corinna Vinschen <corinna@vinschen.de>
203 * fhandler_disk_file.cc (fhandler_disk_file::rmdir): Implement rmdir
204 on NT by calling unlink_nt. Check for directory here.
205 * syscalls.cc (try_to_bin): Fix buggy debug_printf statement.
206 (unlink_nt): Make non-static. Don't use delete-on-close semantics on
207 directories. Explain why.
209 2007-01-24 Corinna Vinschen <corinna@vinschen.de>
211 * net.cc (if_nametoindex): This time, really free IP_ADAPTER_ADDRESSES
213 (if_indextoname): Ditto.
215 2007-01-24 Corinna Vinschen <corinna@vinschen.de>
217 * security.h (pop_thread_privilege): Revert to previous state, not
218 to token used for impersonation.
220 2007-01-24 Corinna Vinschen <corinna@vinschen.de>
222 * cygheap.h (cygheap_user::deimpersonate): Always RevertToSelf.
224 2007-01-23 Corinna Vinschen <corinna@vinschen.de>
226 * net.cc (gai_errmap): Add EAI_OVERFLOW entry. Fix formatting.
227 (cygwin_gai_strerror): Drop using EAI_MAX.
228 (w32_to_gai_err): Ditto.
229 * include/netdb.h: Define EAI_OVERFLOW. Remove EAI_MAX.
231 2007-01-23 Corinna Vinschen <corinna@vinschen.de>
233 * include/netdb.h: Add AI_xxx flags available since Vista.
235 2007-01-23 Corinna Vinschen <corinna@vinschen.de>
237 * net.cc (if_nametoindex): Free IP_ADAPTER_ADDRESSES memory.
238 (if_indextoname): Ditto.
239 (if_nameindex): Ditto. Remove duplicate indexed entries in result.
241 2007-01-21 Corinna Vinschen <corinna@vinschen.de>
243 * autoload.cc (WSAIoctl): Define.
245 * cygwin.din: Export if_freenameindex, if_indextoname, if_nameindex and
247 * fhandler_procnet.cc: Drop including wchar.h. Drop definitions of
248 GAA_FLAG_INCLUDE_ALL_INTERFACES, IP_ADAPTER_UNICAST_ADDRESS_VISTA.
249 (fhandler_procnet::exists): Check for has_gaa_prefixes. Call
250 get_adapters_addresses here.
251 (fhandler_procnet::readdir): Ditto.
252 (prefix): Move to net.cc.
253 (fhandler_procnet::fill_filebuf): Call get_adapters_addresses here.
254 Simplify allocation. Use AdapterName rather than FriendlyName as
255 interface name. Use IfIndex if available, Ipv6IfIndex otherwise.
256 (in6_are_prefix_equal): Move to net.cc.
257 * fhandler_socket.cc: Define old SIOCGxxx values.
258 (CONV_OLD_TO_NEW_SIO): Convert old SIOCGxxx value to new one.
259 (struct __old_ifreq): Define old struct ifreq.
260 (fhandler_socket::ioctl): Handle old SIOCGxxx values. Handle new
261 SIOCGIFFRNDLYNAM command. Simplify copying ifreq data to user space.
262 Call get_ifconf with additional SOCKET parameter.
263 * net.cc (IP_ADAPTER_UNICAST_ADDRESS_LH): Define.
264 (IP_ADAPTER_ADDRESSES_LH): Define.
265 (SIO_GET_INTERFACE_LIST): Define.
266 (sockaddr_in6_old): Define.
267 (sockaddr_gen): Define.
268 (INTERFACE_INFO): Define.
269 (IN_LOOPBACK): Define.
270 (in_are_prefix_equal): New static function.
271 (ip_addr_prefix): New function, replaces prefix function, add AF_INET
273 (GAA_FLAG_INCLUDE_ALL_INTERFACES): Define.
274 (get_adapters_addresses): New function.
275 (WS_IFF_xxx): Define Winsock interface flag values.
276 (convert_ifr_flags): New function to convert Winsock interface flag
277 values to Cygwin interface flag values.
278 (get_xp_ifconf): New get_ifconf implementation for XP SP1 and above.
279 (get_2k_ifconf): Fix interface index. Fix formatting.
280 (get_nt_ifconf): Fix formatting.
281 (get_95_ifconf): Ditto.
282 (get_ifconf): Take additional SOCKET parameter. Call get_xp_ifconf
284 (if_nametoindex): New function.
285 (if_indextoname): New function.
286 (if_nameindex): New function.
287 (if_freenameindex): New function.
288 (in6_are_prefix_equal): Moved here from fhandler_procnet.cc.
289 * wincap.cc (wincap_xp): Define has_gaa_prefixes as true by default.
290 (wincapc::init): Assume has_osversioninfoex by default. Call
291 GetVersionEx with OSVERSIONINFOEX first. Call with OSVERSIONINFO only
292 if that fails. Simplify NT4 case and try to avoid strcmp. Check XP
293 Service Pack using version.wServicePackMajor to avoid strcmp.
294 * include/asm/socket.h (SIOCGIFFRNDLYNAM): Define.
295 * include/cygwin/if.h: Fix formatting.
296 (IFF_POINTTOPOINT): Define.
298 (IFF_LOWER_UP): Define.
299 (IFF_DORMANT): Define.
300 (struct if_nameindex): Define.
301 (IFRF_FRIENDLYNAMESIZ): Define.
302 (struct ifreq_frndlyname): Define.
303 (IFNAMSIZ): Redefine as 44.
304 (IF_NAMESIZE): Define.
305 (struct ifreq): Redefine ifru_flags as int. Define ifru_data. Pad size
306 to sizeof sockaddr_in6 for further extensions.
308 (ifr_frndlyname): Define.
309 (if_nametoindex): Declare.
310 (if_indextoname): Declare.
311 (if_nameindex): Declare.
312 (if_freenameindex): Declare.
313 * include/cygwin/version.h: Bump API minor number.
314 (CYGWIN_VERSION_CHECK_FOR_OLD_IFREQ): Define check for old vs. new
317 2007-01-18 Corinna Vinschen <corinna@vinschen.de>
319 * spawn.cc (spawn_guts): Don't set cwd for non-Cygwin child processes
320 on NT to allow starting them in virtual directories.
322 2007-01-18 Corinna Vinschen <corinna@vinschen.de>
324 * mmap.cc (list::hash): Fix type to __ino64_t.
325 (list::get_hash): Ditto.
326 (list::set): Add struct stat parameter. Use that instead of calling
328 (map::get_list_by_fd): Ditto.
329 (map::add_list): Ditto.
330 (mmap_is_attached_or_noreserve): Call get_list_by_fd appropriately.
331 (mmap_worker): Add pameters for map list and file stat information.
332 Propagate to called functions.
333 (mmap64): Use fstat on files early. Replace call to GetFileSize.
334 Call get_list_by_fd and mmap_worker appropriately.
336 2007-01-18 Corinna Vinschen <corinna@vinschen.de>
338 * fhandler_procnet.cc: Drop declaration of htonl and ntohs. Include
339 asm/byteorder.h instead.
341 2007-01-18 Corinna Vinschen <corinna@vinschen.de>
343 * include/cygwin/in6.h: Drop inclusion of asm/byteorder.h.
344 * fhandler_procnet.cc: Declare htonl and ntohs here.
346 2007-01-17 Corinna Vinschen <corinna@vinschen.de>
348 * Makefile.in (DLL_OFILES): Add fhandler_procnet.o.
349 * autoload.cc (GetAdaptersAddresses): Define.
350 * devices.h (FH_PROCNET): Define new device.
351 * devices.in (dev_procnet_storage): Add "/proc/net" entry.
352 * devices.cc: Regenerate.
353 * dir.cc (readdir_worker): Use isproc_dev macro.
354 * dtable.cc (build_fh_pc): Add FH_PROCNET.
355 * fhandler.h (class fhandler_procnet): New class.
356 * fhandler_proc.cc: Add "net" subdirectory handling.
357 * fhandler_procnet.cc: New file handling "/proc/net" directory.
358 * path.cc (isvirtual_dev): Move to path.h.
359 * path.h (isproc_dev): New macro to identify /proc files by device.
360 (isvirtual_dev): Moved here. Define using isproc_dev.
361 * syscalls.cc (unlink): Use isproc_dev macro.
362 * wincap.h (wincapc::has_gaa_prefixes): New element.
363 (wincapc::has_gaa_on_link_prefix): New element.
364 * wincap.cc: Implement above elements throughout.
365 (wincapc::init): Check XP for service pack and set has_gaa_prefixes
367 * include/cygwin/in6.h: Include asm/byteorder.h.
369 2007-01-17 Corinna Vinschen <corinna@vinschen.de>
371 * include/asm/socket.h (SIOGIFINDEX): Define.
373 2007-01-17 Corinna Vinschen <corinna@vinschen.de>
375 * mmap.cc (MapView9x): Note possible uselessness of retrying.
377 (mmap64): Fix pre-reservation to work for non NULL, non MAP_FIXED.
379 2007-01-16 Corinna Vinschen <corinna@vinschen.de>
381 * autoload.cc (RtlAnsiStringToUnicodeString): Define.
382 (RtlOemStringToUnicodeString): Define.
383 * ntdll.h (struct _RTL_USER_PROCESS_PARAMETERS): Define.
384 (struct _PEB): Redefine with a bit of content.
385 (RtlAnsiStringToUnicodeString): Declare.
386 (RtlOemStringToUnicodeString): Declare.
387 * path.cc: Include ntdll.h.
388 (_upp): New global variable pointing to user process parameter block.
389 (get_user_proc_parms): New static function to retrieve user process
391 (close_user_proc_parms_cwd_handle): New function to close handle to
392 current working directory in user process parameter block.
393 (cwdstuff::init): Drop redundant declaration of dynamically_loaded.
394 Set current dir only on 9x. Call close_user_proc_parms_cwd_handle
396 (cwdstuff::keep_in_sync): Only on 9x.
397 (cwdstuff::set): Keep behaviour on 9x. On NT write cwd path into user
398 process parameter block and set cwd handle to NULL. Fix comments to
399 reflect new behaviour.
401 2007-01-16 Corinna Vinschen <corinna@vinschen.de>
403 * fhandler_socket.cc (fhandler_socket::ioctl): Handle SIOCGIFINDEX.
404 * net.cc (get_2k_ifconf): Ditto.
405 (get_nt_ifconf): Fake SIOCGIFINDEX.
406 (get_95_ifconf): Ditto.
407 (get_ifconf): Handle SIOCGIFINDEX. Fake it for loopback on systems
408 not supporting IP Helper Lib.
409 * include/asm/socket.h (SIOCGIFINDEX): Define.
410 * include/cygwin/if.h (struct ifreq): Add member for interface index.
411 (ifr_ifindex): Define.
413 2007-01-16 Corinna Vinschen <corinna@vinschen.de>
415 * include/cygwin/in6.h (struct ipv6_mreq): Change type of interface
417 (struct in6_pktinfo): Ditto.
419 2007-01-16 Corinna Vinschen <corinna@vinschen.de>
421 * include/cygwin/in.h (struct ip_mreq_source): Define.
422 (struct ip_msfilter): Define.
423 (IP_MSFILTER_SIZE): Define.
424 (struct in_pktinfo): Define.
425 (struct group_req): Define.
426 (struct group_source_req): Define.
427 (struct group_filter): Define.
428 (GROUP_FILTER_SIZE): Define.
429 (INADDR_ALLRTRS_GROUP): Define.
430 * include/cygwin/socket.h: Define protocol agnostic multicast options.
432 2007-01-15 Corinna Vinschen <corinna@vinschen.de>
434 * CYGWIN_LICENSE: Fix web pages and contact information.
436 2007-01-15 Corinna Vinschen <corinna@vinschen.de>
438 * ntdll.h: Adjust status definitions.
440 2007-01-15 Corinna Vinschen <corinna@vinschen.de>
442 * cygheap.cc (cygheap_init): Add TODO comment.
444 2007-01-15 Corinna Vinschen <corinna@vinschen.de>
446 * ntdll.h (STATUS_SHARING_VIOLATION): Define.
448 2007-01-13 Corinna Vinschen <corinna@vinschen.de>
450 * syscalls.cc (unlink_nt): Don't move files to recycle bin which are
453 2007-01-13 Christopher Faylor <me@cgf.cx>
455 * glob.cc: Update copyright notice with latest from FreeBSD.
456 (glob0): Use correct type for c variable to propagate previously
459 2007-01-12 Corinna Vinschen <corinna@vinschen.de>
461 * cygheap.cc (_csbrk): Fix off-by-one error.
462 * cygwin.sc: Give .cygheap a minimum size of 512K.
464 2007-01-12 Christopher Faylor <me@cgf.cx>
466 * external.cc (sync_winenv): Use cur_environ () rather than
469 2007-01-12 Corinna Vinschen <corinna@vinschen.de>
471 * fork.cc (child_copy): Add missing Windows PID in debug output.
473 2007-01-12 Corinna Vinschen <corinna@vinschen.de>
475 * syscalls.cc: Update copyright.
477 2007-01-10 Corinna Vinschen <corinna@vinschen.de>
479 * mmap.cc (mmap64): Pre-Reserve space for the whole mapping to get a
480 useful, valid address before the actual mappings take place.
483 2007-01-10 Corinna Vinschen <corinna@vinschen.de>
485 * syscalls.cc (sync): Use b_drive for B: drive (Thanks to Howard Chu).
487 2007-01-09 Corinna Vinschen <corinna@vinschen.de>
489 * syscalls.cc (getpagesize): Change condition for clarity.
490 (getsystempagesize): Ditto.
492 2007-01-09 Corinna Vinschen <corinna@vinschen.de>
494 * mmap.cc: Do bookkeeping in 4K pages, rather than in 64K chunks.
496 2007-01-07 Corinna Vinschen <corinna@vinschen.de>
498 * security.h (setacl): Add parameter for writability flag.
499 * sec_acl.cc (setacl): Ditto. Set to true if any ACE with write
500 permissions is created.
501 * fhandler_disk_file.cc (fhandler_disk_file::facl): Reset
502 FILE_ATTRIBUTE_READONLY if ACL contains an ACE with write permissions.
504 2007-01-05 Corinna Vinschen <corinna@vinschen.de>
506 * include/strings.h: Don't include string.h. Only declare functions
509 2007-01-04 Corinna Vinschen <corinna@vinschen.de>
511 (get_ifconf): Set MTU for loopback to more correct value.
513 2007-01-04 Corinna Vinschen <corinna@vinschen.de>
515 * fhandler_socket.cc (fhandler_socket::ioctl): Don't fake results
516 for SIOCGIFFLAGS here. Call get_ifconf instead.
517 * net.cc (get_2k_ifconf): Clean up code to generate interface name.
518 Handle SIOCGIFFLAGS here.
519 (get_nt_ifconf): Fake SIOCGIFFLAGS here.
520 (get_95_ifconf): Ditto.
521 (get_ifconf): Don't fake loopback on systems with IP Helper Lib.
522 Set MTU for loopback to a more "modern" value.
524 2007-01-04 Brian Ford <Brian.Ford@FlightSafety.com>
525 Corinna Vinschen <corinna@vinschen.de>
527 * fhandler.h (PREFERRED_IO_BLKSIZE): Define as 64K.
528 * fhandler.cc (fhandler_base::fstat): Set st_blksize to
529 PREFERRED_IO_BLKSIZE.
530 * fhandler_disk_file.cc (fhandler_base::fstat_helper): Ditto.
531 * fhandler_mailslot.cc (fhandler_mailslot::fstat): Ditto.
532 * fhandler_raw.cc (fhandler_dev_raw::fstat): Ditto.
534 2007-01-01 Christopher Faylor <me@cgf.cx>
536 * spawn.cc (spawn_guts): Don't expect synchronization from a non-cygwin