Commit Graph

8569 Commits

Author SHA1 Message Date
cabe8aa22a * new-features.sgml (ov-new1.7.10): Document pthread spinlocks. 2011-03-29 10:35:08 +00:00
f00fe1b8e7 * cygwin.din (pthread_spin_destroy): Export.
(pthread_spin_init): Export.
	(pthread_spin_lock): Export.
	(pthread_spin_trylock): Export.
	(pthread_spin_unlock): Export.
	* posix.sgml (std-susv4): Add pthread_spin_destroy, pthread_spin_init,
	pthread_spin_lock, pthread_spin_trylock, pthread_spin_unlock.
	(std-notimpl): Remove pthread_spin_[...].
	* pthread.cc (pthread_spin_init): New function.
	* thread.cc (pthread_spinlock::is_good_object): New function.
	(pthread_mutex::pthread_mutex): Rearrange initializers to accommodate
	protected data in pthread_mutex.
	(pthread_spinlock::pthread_spinlock): New constructor.
	(pthread_spinlock::lock): New method.
	(pthread_spinlock::unlock): New method.
	(pthread_spinlock::init): New method.
	(pthread_spin_lock): New function.
	(pthread_spin_trylock): New function.
	(pthread_spin_unlock): New function.
	(pthread_spin_destroy): New function.
	* thread.h (PTHREAD_SPINLOCK_MAGIC): Define.
	(class pthread_mutex): Change access level of members shared with
	derived classes to protected.
	(pthread_mutex::set_shared): New protected method.
	(class pthread_spinlock): New class, derived class of pthread_mutex.
	* include/pthread.h (pthread_spin_destroy): Declare.
	(pthread_spin_init): Declare.
	(pthread_spin_lock): Declare.
	(pthread_spin_trylock): Declare.
	(pthread_spin_unlock): Declare.
	* include/cygwin/types.h (pthread_spinlock_t): New typedef.
	* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
2011-03-29 10:32:40 +00:00
a011f95216 * net.cc (SIO_BASE_HANDLE): Define.
(fdsock): If we got an LSP handle, try to create a copy of the base
	handle instead.  Change comment to explain.
2011-03-29 10:25:20 +00:00
b8fe0ec799 * include/cygwin/version.h: Bump CYGWIN_VERSION_DLL_MINOR to 10. 2011-03-29 10:24:19 +00:00
cd50649255 * autoload.cc (winmm): Remove time functions. Don't treat
unloadable wave functions as fatal.
	* hires.h (hires_ms::timeGetTime_ns): New private method.
	(hires_ms::dmsecs): Call timeGetTime_ns here.
	* ntdll.h (struct _KSYSTEM_TIME): Define.
	(KUSER_SHARED_DATA): Redefine to allow access to InterruptTime.
	(SharedUserData): Define here.
	(NtQueryTimerResolution): Declare.
	(NtSetTimerResolution): Declare.
	* path.cc (SharedUserData): Move to ntdll.h.
	* times.cc (hires_ms::timeGetTime_ns): New private method.
	Use throughout instead of timeGetTime.  Document entire functionality
	of timeGetTime in case we need it.
	(hires_ms::resolution): Try a call to NtQueryTimerResolution
	to fetch current period.  Fall back to heuristic if that fails.
	Cast to DWORD in assignments to minperiod.
	(clock_setres): Align period to possible values per a call to
	NtQueryTimerResolution.  Explain why.  Replace calls to timeBeginPeriod
	and timeEndPeriod with underlying call to NtSetTimerResolution.  Use
	status code from NtSetTimerResolution to compute errno.
	Convert period to ULONGLONG and store 100ns value to simplify code.
2011-03-29 10:21:30 +00:00
700c641dfa * include/userenv.h: Add functions and definitions added with Windows
2000 and Vista.
2011-03-29 08:43:17 +00:00
c9c50e7aa4 * include/sys/xattr.h: New file. 2011-03-29 08:03:35 +00:00
056b8e60cd * thread.cc (semaphore::init, destroy, close): Standards conformance
fix.  On a failure, return -1 and set errno.
	* thread.h (semaphore::terminate): Save errno since semaphore::close()
	may now modify it.
2011-03-29 07:49:25 +00:00
471bbbe240 * setfacl.c (strchrnul): Drop local implementation. 2011-03-28 21:21:03 +00:00
75526ad530 * new-features.sgml (ov-new1.7.9): Add "new API" paragraph. 2011-03-28 15:01:19 +00:00
ec0f7c31f3 * cygwin.din (strchrnul): Export.
* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
	* posix.sgml (std-gnu): Add strchrnul.
2011-03-28 14:55:20 +00:00
f3e3e0e7eb * dll_init.cc (dll::init): Accommodate ill-behaved dlls who don't fill out
p.envptr.
2011-03-27 19:14:02 +00:00
d42e1efcf9 2011-03-25 Chris Sutcliffe <ir0nh34d@users.sf.net>
* Makefile.in: Increment CYGRELEASE to 2.
2011-03-26 03:47:54 +00:00
2642251d66 2011-03-25 Chris Sutcliffe <ir0nh34d@users.sf.net>
* lib/Makefile.in: Include GDIPLUS_HEADERS in dist target.
2011-03-26 03:41:23 +00:00
57abff16c3 * mmap.cc (mmap64): Add a cheat to let a certain autoconf test succeed
on 64 bit systems.  Explain why.
2011-03-25 20:39:26 +00:00
50160412b0 * wincap.cc (wincap_2003): Set use_dont_resolve_hack to true. 2011-03-23 21:33:36 +00:00
bb991481c5 * autoload.cc (dll_load): Change error message to make it clear if a newer DLL
is being run.
2011-03-23 05:30:49 +00:00
654fee7ac5 * libltp/lib/get_high_address.c: Align copyright with upstream. 2011-03-21 15:42:54 +00:00
cb8c63e08d Fix typo. 2011-03-20 15:36:13 +00:00
33150e7f40 * fenv.cc (_feinitialise); Don't use SSE instructions on systems not
supporting them.
	* wincap.h (wincaps::supports_sse): New element.
	* wincap.cc: Implement above element throughout.
2011-03-20 15:34:29 +00:00
b8bdc60019 * cygwin.sc: Raise default cygheap size to 2 Megs. 2011-03-18 18:16:37 +00:00
3c40dbce73 Fix typo. 2011-03-18 14:42:30 +00:00
41045fb74d * fhandler.h (DEFAULT_PIPEBUFSIZE): Reset to 64K. 2011-03-18 14:25:33 +00:00
ccbc7fca21 * mmap.cc (mmap_record::alloc_fh): Initialize nmae strings in fdev to
empty strings or suffer a SEGV.  Drop second parameter in call to
	build_fh_dev.
2011-03-18 13:56:56 +00:00
bf69faeb0d * mmap.cc (class mmap_record): Pack 4 byte-aligned. Convert member dev
to plain int.
	(mmap_record::alloc_fh): Create temporary device from dev and use in
	call to build_fh_dev.
2011-03-18 13:42:03 +00:00
ac706ac123 * mmap.cc (mmap_record::page_map): Define as variable array rather than
as pointer.
	(mmap_record::alloc_page_map): Remove.
	(mmap_record::free_page_map): Remove.
	(mmap_record::init_page_map): New method.
	(mmap_record::add_record): Take mmap_record parameter by reference
	rather than by value.
	(mmap_record::map_pages): Fix comment.
	(mmap_list::add_record): Allocate space for mmap_record including the
	page_map in a single ccalloc call.  Call init_page_map afterwards.
	(mmap_list::del_record): Remove call to mmap_record::free_page_map.
2011-03-18 13:38:34 +00:00
b532ee08bc * crt0.c (mainCRTStartup): Move call to _feinitialise from here...
* dcrt0.cc (_dll_crt0): ...to here.
2011-03-17 08:40:25 +00:00
d2948a681d * winver.rc: Fix copyright dates. 2011-03-16 21:10:51 +00:00
91b3d1ed7a * fhandler_disk_file.cc (fhandler_base::fstat_by_handle): Only use
file id as inode number if it masters the isgood_inode check.
2011-03-14 09:14:17 +00:00
9636c4262e * fhandler.cc (fhandler_base_overlapped::wait_overlapped): Remove special
treatment for ERROR_NO_SYSTEM_RESOURCES.  Cancel I/O and reset the overlapped
handle on error.
(fhandler_base_overlapped::write_overlapped): Limit writes to max_atomic_write
bytes in blocking case.  Incorporate code from now-defunct
write_overlapped_fallback.  Fix serious oversight where ptr was not advanced as
buffer was written.
(fhandler_base_overlapped::write_overlapped_fallback): Eliminate.
* fhandler.h (fhandler_base_overlapped::write_overlapped_fallback): Ditto for
declaration.
(DEFAULT_PIPEBUFSIZE): Lower size to slightly less than documented worst-case
atomic write size.
(fhandler_overlapped::wait_return): Remove unused element.
2011-03-13 20:20:58 +00:00
7a9064faa5 2011-03-11 Chris Sutcliffe <ir0nh34d@users.sf.net>
* include/w32api.h: Increment version to 3.17.
        * Makefile.in: Ditto.
2011-03-12 04:33:16 +00:00
904e3e2004 * fhandler.cc (fhandler_base_overlapped::wait_overlapped): Handle
overlapped_fallback error condition like other error conditions.  Set res
carefully and specifically for each condition rather than resorting to a
default.
(fhandler_base_overlapped::write_overlapped): Preserve errno in
overlapped_fallback condition.  Correct write_overlapped_fallback to avoid
inappropriate looping.
(fhandler_base_overlapped::write_overlapped_fallback): Add some more comments.
2011-03-09 22:48:05 +00:00
ed6b66c88d * fhandler.cc (fhandler_base_overlapped::write_overlapp): Oops! Accommodate
change in arguments to wait_overlapped.
2011-03-09 16:55:54 +00:00
779ece3ce0 * errno.cc (errmap): Change mapping of NO_SYSTEM_RESOURCES to EFBIG.
* fhandler.cc (MAX_OVERLAPPED_WRITE_LEN): New constant.
(MIN_OVERLAPPED_WRITE_LEN): Ditto.
(fhandler_base_overlapped::close): Accommodate change in arguments to
wait_overlapped.
(fhandler_base_overlapped::setup_overlapped): Add __stdcall and regparm
modifiers.
(fhandler_base_overlapped::destroy_overlapped): Ditto.
(fhandler_base_overlapped::has_ongoing_io): Ditto.
(fhandler_base_overlapped::wait_overlapped): Modify to return an enum returning
various states.  Accept nonblocking parameter.
(fhandler_base_overlapped::read_overlapped): Add __stdcall and regparm
modifiers.  Rework to attempt to be smarter about reacting to states returned
by wait_overlapped.
(fhandler_base_overlapped::write_overlapped): Ditto.  Add fallback option for
when wait_overlapped detects that smaller chunks must be written.
(fhandler_base_overlapped::write_overlapped_fallback): Ditto.
* fhandler.h (DEFAULT_PIPEBUFSIZE): Move definition here from pipe.cc.
(fhandler_base::has_ongoing_io): Define with __stdcall and regparm modifiers.
(fhandler_base_overlapped::wait_return): New enum.
(fhandler_base_overlapped::max_atomic_write): New variable.
(fhandler_base_overlapped:: wait_overlapped): Accommodate changes mentioned
above to arguments and modifiers.
(fhandler_base_overlapped::setup_overlapped): Ditto for modifiers.
(fhandler_base_overlapped::read_overlapped): Ditto.
(fhandler_base_overlapped::write_overlapped): Ditto.
(fhandler_base_overlapped::destroy_overlapped): Ditto.
(fhandler_base_overlapped::has_ongoing_io): Ditto.
(fhandler_base_overlapped::fhandler_base_overlapped): Zero max_atomic_write.
* fhandler_fifo.cc (fhandler_fifo::fhandler_fifo): Set max_atomic_write to the
size of the DEFAULT_PIPEBUFSIZE.
(fhandler_fifo::wait): Accommodate change in arguments to wait_overlapped.
* pipe.cc (fhandler_pipe::fhandler_pipe): Set max_atomic_write to the size of
the DEFAULT_PIPEBUFSIZE.
(fhandler_pipe::create_selectable): Allow minimum size of DEFAULT_PIPEBUFSIZE.
(DEFAULT_PIPEBUFSIZE): Delete here, move to fhandler.h.
2011-03-09 16:47:44 +00:00
e7b5eaaac9 * security.cc: Fix copyright dates. 2011-03-08 15:12:58 +00:00
69d7815eae * fhandler.cc (fhandler_base::open): When creating a file on a
filesystem supporting ACLs, create the file with WRITE_DAC access.
	Explain why.
	* fhandler_disk_file.cc (fhandler_disk_file::mkdir): Ditto for
	directories.
	* fhandler_socket.cc (fhandler_socket::bind): Ditto for sockets.
	* path.cc (symlink_worker): Ditto for symlinks.
	* security.cc (get_file_sd): Always call GetSecurityInfo for directories
	on XP and Server 2003.  Improve comment to explain why.
	(set_file_attribute): Explicitely cast mode_t value to bool in call to
	get_file_sd.
	* wincap.h (wincaps::use_get_sec_info_on_dirs): New element.
	* wincap.cc: Implement above element throughout.
2011-03-08 14:26:15 +00:00
6777e53972 2011-03-07 Chris Sutcliffe <ir0nh34d@users.sf.net>
* include/winbase.h (PSAPI_WORKING_SET_BLOCK,
        PSAPI_WORKING_SET_INFORMATION): Move from here...
        * include/psapi.h (PSAPI_WORKING_SET_BLOCK,
        PSAPI_WORKING_SET_INFORMATION): ... to here.
2011-03-08 01:57:46 +00:00
f47bfee595 2011-03-05 Chris Sutcliffe <ir0nh34d@users.sf.net>
* include/w32api.h: Increment version to 3.16.
        * Makefile.in: Ditto.
2011-03-05 20:55:46 +00:00
905220bf09 2011-03-05 Chris Sutcliffe <ir0nh34d@users.sourceforge.net>
* include/commctrl.h (NMTCKEYDOWN): Define.
2011-03-05 20:50:52 +00:00
8a456980d6 2011-03-05 Chris Sutcliffe <ir0nh34d@users.sourceforge.net>
* include/wtsapi32.h (WTSSendMessageA, WTSSendMessageW, WTSSendMessage):
        Define.
2011-03-05 20:43:53 +00:00
174cb44b90 2011-03-05 Chris Sutcliffe <ir0nh34d@users.sourceforge.net>
* include/winbase.h (PSAPI_WORKING_SET_BLOCK,
        PSAPI_WORKING_SET_INFORMATION): Define.
2011-03-05 20:29:08 +00:00
ad41401c69 2011-03-05 Chris Sutcliffe <ir0nh34d@users.sourceforge.net>
* include/winbase.h (__GNUC_EXTENSION): Define, replacing __MINGW_EXTENSION.
2011-03-05 19:36:28 +00:00
e8dc396d7a 2011-03-05 Chris Sutcliffe <ir0nh34d@users.sourceforge.net>
* lib/kernel32.def (FreeLibraryAndExitThread): Fix definition.
2011-03-05 05:45:42 +00:00
213bc4f215 2011-03-04 Chris Sutcliffe <ir0nh34d@users.sourceforge.net>
* include/winbase.h (FILE_ENCRYPTABLE, FILE_IS_ENCRYPTED, FILE_READ_ONLY,
        FILE_ROOT_DIR, FILE_SYSTEM_ATTR, FILE_SYSTEM_DIR, FILE_SYSTEM_NOT_SUPPORT,
        FILE_UNKNOWN, FILE_USER_DISALLOWED): Define.
2011-03-05 05:05:20 +00:00
09ba620e3f 2011-03-04 Chris Sutcliffe <ir0nh34d@users.sourceforge.net>
* include/winioctl.h (_DRIVE_LAYOUT_INFORMATION_MBR): Add
        _DRIVE_LAYOUT_INFORMATION_MBR_DEFINED guard.
        * include/ddk/winddk.h (_DRIVE_LAYOUT_INFORMATION_MBR): Ditto.
2011-03-05 04:51:01 +00:00
2af4c4de09 2011-03-04 Seth Jackson <sethj@users.sourceforge.net>
* include/winnt.h (PAGE_WRITECOMBINE): Define.
        * include/winbase.h (THREAD_MODE_BACKGROUND_BEGIN, THREAD_MODE_BACKGROUND_END): Define.
2011-03-05 04:39:15 +00:00
a4c7da048d 2011-03-04 Chris Sutcliffe <ir0nh34d@users.sourceforge.net>
* include/winbase.h (__MINGW_EXTENSION): Define.
        (OVERLAPPED): Add __MINGW_EXTENSION around nameless union /
        struct to correct issue with -std=c99.
2011-03-05 04:31:24 +00:00
d5071ad7f5 * fhandler_procsys.cc (fhandler_procsys::exists): Rewrite.
(fhandler_procsys::fill_filebuf): Fill buffer with valid string even if
	reading the symlink fails.
2011-03-04 17:51:42 +00:00
b994b83729 * posix_ipc.cc (ipc_cond_timedwait): If ipc_mutex_unlock fails, return
actual error number.
	(_mq_send): Break loop if ipc_cond_timedwait returns with error.
	(_mq_receive): Ditto.
2011-03-03 15:48:36 +00:00
b7351dcfb1 * errno.cc (__xpg_strerror_r): Add accidentally missing condition. 2011-03-03 09:50:13 +00:00