Corinna Vinschen
cdb4231369
* cygwin.din (pthread_attr_getguardsize): Export.
...
(pthread_attr_setguardsize): Export.
(pthread_attr_setstack): Export.
(pthread_attr_setstackaddr): Export.
* init.cc (dll_entry): Remove wow64_test_stack_marker. Check for
unusual stack address by testing stack addresses from current TEB.
Check validity of _my_tls by testing if it's within the stack as
given in current TEB.
* miscfuncs.cc (struct thread_wrapper_arg): New structure used to
push all required information to thread_wrapper function.
(thread_wrapper): Wrapper function for actual thread function.
If an application stack has been given, change %ebp and %esp so that
the thread function runs on that stack. If the thread has been created
by CygwinCreateThread, set up the POSIX guard pages if necessary.
(CygwinCreateThread): New function.
* miscfuncs.h (CygwinCreateThread): Declare.
* ntdll.h (struct _TEB): Define all members up to Peb.
* posix.sgml (std-susv4): Move pthread_attr_getguardsize,
pthread_attr_setguardsize and pthread_attr_setstack here.
(std-deprec): Add pthread_attr_setstackaddr.
* sysconf.cc (sca): Set _SC_THREAD_ATTR_STACKADDR to
_POSIX_THREAD_ATTR_STACKADDR.
* thread.cc (pthread::precreate): Copy pthread_attr stackaddr and
guardsize members.
(pthread::create): Call CygwinCreateThread.
(pthread_attr::pthread_attr): Initialize guardsize.
(pthread_attr_setstack): New function.
(pthread_attr_setstackaddr): New function.
(pthread_attr_setguardsize): New function.
(pthread_attr_getguardsize): New function.
(pthread_getattr_np): Copy attr.guardsize.
* thread.h (pthread_attr): Add member guardsize.
* include/pthread.h (pthread_attr_getguardsize): Declare.
(pthread_attr_setguardsize): Declare.
* include/cygwin/version.h: Bump API minor number.
2011-05-15 18:49:40 +00:00
Yaakov Selkowitz
6758d2a3aa
* times.cc (settimeofday): Add EFAULT handler.
...
Set errno to EINVAL if tv.tv_nsec is invalid, and to EPERM if
SetSystemTime fails. Return -1 in case of failure, all for
compatibility with BSD and Linux.
(clock_settime): New function.
* cygwin.din (clock_settime): Export.
* posix.sgml (std-susv4): Add clock_settime.
Move clock_setres from here...
(std-deprec): ... to here.
(std-notes): Correct limitation of clock_setres to only CLOCK_REALTIME.
Add limitation of clock_settime to only CLOCK_REALTIME.
* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
2011-05-09 08:57:46 +00:00
Yaakov Selkowitz
2f52cad971
* sysconf.cc (sysinfo): New function.
...
* cygwin.din (sysinfo): Export.
* posix.sgml (std-gnu): Add sysinfo.
* include/sys/sysinfo.h (struct sysinfo): Define.
(sysinfo): Declare.
* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
2011-05-06 18:53:21 +00:00
Corinna Vinschen
192737978e
* posix.sgml (std-notimpl): Remove bsd_signal, setcontext, and
...
swapcontext, marked obsolete in SUSv3 and not present in SUSv4.
2011-05-05 06:48:51 +00:00
Yaakov Selkowitz
2f7a5c89cc
* cygwin.din (psiginfo): Export.
...
(psignal): Export.
(sys_siglist): Export.
* posix.sgml (std-notimpl): Move psiginfo and psignal from here...
(std-susv4): ... to here.
(std-deprec): Add sys_siglist.
* strsig.cc (sys_siglist): New array.
(psiginfo): New function.
* include/cygwin/signal.h (sys_siglist): Declare.
(psiginfo): Declare.
* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
2011-05-04 22:12:15 +00:00
Yaakov Selkowitz
705a187ee9
* cygwin.din (pthread_attr_getstack): Export.
...
(pthread_attr_getstackaddr): Export.
(pthread_getattr_np): Export.
* ntdll.h (enum _THREAD_INFORMATION_CLASS): Add ThreadBasicInformation.
(struct _THREAD_BASIC_INFORMATION): Define.
(NtQueryInformationThread): Declare.
* posix.sgml (std-susv4): Add pthread_attr_getstack.
(std-gnu): Add pthread_getattr_np.
(std-deprec): Add pthread_attr_getstackaddr.
(std-notimpl): Remove pthread_attr_[gs]etstackaddr, as they were
removed from SUSv4.
* thread.cc (pthread_attr::pthread_attr): Initialize stackaddr.
(pthread_attr_getstack): New function.
(pthread_attr_getstackaddr): New function.
(pthread_attr_setstacksize): Return EINVAL if passed size less than
PTHREAD_STACK_MIN, as required by POSIX.
(pthread_getattr_np): New function.
* thread.h (class pthread_attr): Add stackaddr member.
* include/pthread.h (pthread_attr_getstack): Declare.
(pthread_attr_getstackaddr): Declare unconditionally.
(pthread_attr_setstack): Declare inside false conditional for reference.
(pthread_getattr_np): Declare.
* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
2011-05-03 01:13:37 +00:00
Corinna Vinschen
20a0b8c8e6
* cygwin.din (ppoll): Export.
...
* poll.cc (ppoll): Implement.
* posix.sgml (std-gnu): Add ppoll.
* include/cygwin/version.h: Bump API minor number.
* include/sys/poll.h (ppoll): Declare.
2011-04-18 12:00:05 +00:00
Yaakov Selkowitz
162deed595
* thread.cc (pthread_setschedprio): New function.
...
* include/pthread.h (pthread_setschedprio): Declare.
* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
* cygwin.din (pthread_setschedprio): Export.
* posix.sgml (std-notimpl) Move pthread_setschedprio from here...
(std-susv4) ...to here.
2011-04-15 09:22:14 +00:00
Corinna Vinschen
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
Corinna Vinschen
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
Yaakov Selkowitz
3696acf497
* cygwin.din (pthread_yield): Export as alias to sched_yield.
...
* include/pthread.h (pthread_yield): Declare.
* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
* posix.sgml (std-deprec): Add pthread_yield.
2011-02-10 10:51:14 +00:00
Corinna Vinschen
c049f0f6ff
* posix.sgml: Add madvise to BSD list.
2011-01-12 13:09:31 +00:00
Corinna Vinschen
8506523421
* posix.sgml: Move llround and llroundf to implemented SUSv4 functions.
...
* include/cygwin/version.h: Add llround and llroundf to the comment for
the 233 CYGWIN_VERSION_API_MINOR bump.
2010-11-15 12:44:57 +00:00
Corinna Vinschen
9810eef4bf
* cygwin.din: Export new complex math functions from newlib.
...
* posix.sgml: Move newly exported complex functions to implemented
SUSv4 functions.
* include/cygwin/version.h: Bump API minor version.
2010-10-08 10:51:17 +00:00
Dave Korn
0f81b5d4bc
winsup/cygwin/ChangeLog:
...
* Makefile.in (DLL_OFILES): Add new fenv.o module.
(fenv_CFLAGS): New flags definition for fenv.o compile.
* autoload.cc (std_dll_init): Use fenv.h functions instead of direct
manipulation of x87 FPU registers.
* crt0.c (mainCRTStartup): Likewise.
* cygwin.din (feclearexcept, fegetexceptflag, feraiseexcept,
fesetexceptflag, fetestexcept, fegetround, fesetround, fegetenv,
feholdexcept, fesetenv, feupdateenv, fegetprec, fesetprec,
feenableexcept, fedisableexcept, fegetexcept, _feinitialise,
_fe_dfl_env, _fe_nomask_env): Export new functions and data items.
* fenv.cc: New file.
* posix.sgml: Update status of newly-implemented APIs.
* include/fenv.h: Likewise related header.
* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
2010-09-11 06:53:28 +00:00
Corinna Vinschen
45bc8c1f50
* posix.sgml (std-notes): Fix typos and incorrectnesses.
2010-08-30 14:16:01 +00:00
Eric Blake
3083fa9447
Add mkostemp and mkostemps.
...
* mktemp.cc (_gettemp): Add flags argument. All callers updated.
(mkostemp, mkostemps): New functions.
* cygwin.din (mkostemp, mkostemps): Export.
* posix.sgml: Document them.
* include/cygwin/version.h: Bump version.
2010-07-19 18:22:40 +00:00
Corinna Vinschen
6b1c332f28
* posix.sgml (std-notes): Improve lseek description.
2010-04-12 15:36:48 +00:00
Corinna Vinschen
a9fd742428
* cygwin.din: Export __xdr functions.
...
* include/cygwin/version.h: Bump version.
* posix.sgml: Add a few more XDR functions to list
of implemented Solaris functions.
2010-03-04 09:37:52 +00:00
Corinna Vinschen
53c24915c4
Add XDR support.
...
* cygwin.din: Export xdr functions.
* include/cygwin/version.h: Bump version.
* cygxdr.cc: New.
* cygxdr.h: New.
* dcrt0.cc (dll_crt0_1): Print the (rare) xdr-related
error messages to stderr.
* Makefile.in: Add cygxdr.
* posix.sgml: Add new XDR functions to list of implemented Solaris
functions.
2010-03-03 15:05:19 +00:00
Corinna Vinschen
bc9fcc287d
* posix.sgml (strfmon): Move to implemented SUSv4 API.
2010-01-22 22:33:22 +00:00
Corinna Vinschen
0d6531551b
* cygwin.din (accept4): Export.
...
* fhandler.h (fhandler_socket::accept4): Rename from accept. Take
additional flag parameter.
* fhandler_socket.cc (fhandler_socket::accept4): Ditto. Handle
SOCK_NONBLOCK and SOCK_CLOEXEC flags.
* net.cc (cygwin_socket): Handle SOCK_NONBLOCK and SOCK_CLOEXEC flags
in type. Check for invalid flag values.
(socketpair): Ditto.
(cygwin_accept): Accommodate renaming of fhandler_socket::accept
function to accept4.
(accept4): New function.
* posix.sgml: Mention accept4 as GNU extensions.
* include/cygwin/socket.h (SOCK_NONBLOCK): Define.
(SOCK_CLOEXEC): Define.
(_SOCK_FLAG_MASK): Define when building Cygwin.
* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
* include/sys/socket.h (accept4): Declare.
2010-01-15 15:40:05 +00:00
Corinna Vinschen
14c800a5ba
* posix.sgml: Mention dup3 and pipe2 as GNU extensions.
2010-01-15 14:22:42 +00:00
Corinna Vinschen
339682e6de
* sysconf.cc (get_nprocs): New function.
...
(get_nprocs_conf): Ditto.
(get_avphys_pages): Ditto.
(get_phys_pages): Ditto.
* cygwin.din: Export them.
* include/sys/sysinfo.h: New header, decalre above new functions.
* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
* posix.sgml: Mention them as GNU extensions.
2009-11-12 14:40:48 +00:00
Eric Blake
15e9ecd14a
Add fexecve, execvpe.
...
* exec.cc (fexecve): New function.
* cygwin.din (execvpe, fexecve): Export new fexecve and existing
execvpe.
* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
* posix.sgml: Mention them.
2009-09-26 21:01:10 +00:00
Eric Blake
2bf78f0928
Provide euidaccess, canonicalize_file_name; fix fchmodat.
...
* syscalls.cc (fchmodat): lchmod is not yet implemented.
(euidaccess): New function.
* path.cc (realpath): Update comment.
(canonicalize_file_name): New function.
* include/cygwin/stdlib.h (canonicalize_file_name): Declare it.
* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
* cygwin.din: Export canonicalize_file_name, eaccess, euidaccess.
* posix.sgml: Mention them.
2009-09-25 23:55:00 +00:00
Corinna Vinschen
8171ddb73f
* posix.sgml (std-notes): Remove obsolete reference to CYGWIN=server.
2009-07-27 08:05:47 +00:00
Corinna Vinschen
4d670aabf6
* posix.sgml (std-notes): Add flock restriction.
2009-07-26 09:34:35 +00:00
Corinna Vinschen
8d7471ab44
* posix.sgml: Add fpurge and mkstemps to BSD list.
2009-07-03 13:04:01 +00:00
Corinna Vinschen
9a1109002a
* cygwin.din: Export wordexp, wordfree.
...
* posix.sgml: Move them to SUSv4 list.
* include/cygwin/version.h: Bump API minor number.
2009-03-23 09:46:38 +00:00
Corinna Vinschen
a9a520b62b
* cygwin.din: Export log2, log2f as functions.
...
* posix.sgml: Add them to SUSv4 list.
* include/cygwin/version.h: Bump API minor number.
2009-03-19 09:22:01 +00:00
Corinna Vinschen
19b3c04bb0
* cygwin.din: Export wcsdup.
...
* posix.sgml: Add wcsdup to SUSv4 list.
* include/cygwin/version.h: Bump API minor number.
2009-03-15 13:45:02 +00:00
Corinna Vinschen
cab0758eb2
* cygwin.din: Export wcscasecmp, wcsncasecmp.
...
* posix.sgml: Move wcscasecmp, wcsncasecmp to SUSv4 list.
* include/cygwin/version.h: Bump API minor number.
2009-03-11 13:00:28 +00:00
Corinna Vinschen
32382e935a
* cygwin.din: Export wscanf, fwscanf, swscanf, vwscanf, vfwscanf,
...
vswscanf.
* posix.sgml: Move fwscanf, swscanf, vwscanf, vfwscanf, vswscanf
to SUSv4 list.
* include/cygwin/version.h: Bump API minor number.
2009-03-11 12:03:44 +00:00
Corinna Vinschen
c47426aedb
* cygwin.din: Export wcsftime.
...
* posix.sgml: Move wcsftime to SUSv4 list.
* include/cygwin/version.h: Bump API minor number.
2009-03-09 13:22:37 +00:00
Corinna Vinschen
6f57cb4a52
* cygwin.din: Export gethostbyname2.
...
* net.cc: define _CYGWIN_IN_H and include resolv.h.
(realloc_ent): New function.
(dup_ent): Call realloc_ent.
(memcpy4to6): New function.
(dn_length1): New function.
(gethostby_helper): New function.
(gethostbyname2): New function.
* posix.sgml: Add gethostbyname2.
* include/cygwin/version.h: Bump API minor number.
* libc/minires.c (get_options): Look for "inet6" and apply bounds
to "retry" and "retrans".
(res_ninit): Set the default options at the beginning.
(dn_expand): Fix "off by one".
2009-03-06 16:31:26 +00:00
Corinna Vinschen
45e20e47ba
* cygwin.din: Export wprintf, fwprintf, swprintf, vwprintf, vfwprintf,
...
vswprintf. Sort.
* posix.sgml: Move fwprintf, swprintf, vwprintf, vfwprintf, vswprintf
to SUSv4 list. Sort SUSv4 list.
* include/cygwin/version.h: Bump API minor number.
2009-03-06 10:09:55 +00:00
Corinna Vinschen
89b5579d3b
* cygwin.din: Export mbsnrtowcs and wcsnrtombs.
...
* posix.sgml: Move mbsnrtowcs and wcsnrtombs to SUSv4 section.
* include/cygwin/version.h: Bump API minor number.
2009-02-19 09:22:51 +00:00
Corinna Vinschen
15fc34ac5a
* cygwin.din: Export open_wmemstream.
...
* posix.sgml: Move open_wmemstream to SUSv4 section.
* include/cygwin/version.h: Bump API minor number.
2009-02-18 17:38:16 +00:00
Corinna Vinschen
c6b9747e04
* cygwin.din: Export reallocf.
...
* malloc_wrapper.cc( reallocf): New function.
* posix.sgml: Add reallocf to BSD section.
* include/cygwin/version.h: Bump API minor number.
* libc/fts.c: Remove erroneous reallocf definition.
2009-02-16 20:22:38 +00:00
Corinna Vinschen
de5c20c2de
* cygwin.din: Export wcstoimax, wcstoumax.
...
* posix.sgml: Move wcstoimax and wcstoumax to SUSv4 section.
* include/inttypes.h: Declare wcstoimax and wcstoumax.
* include/cygwin/version.h: Bump API minor number.
2009-02-16 15:36:01 +00:00
Corinna Vinschen
c6d3735106
* cygwin.din: Export wcsnlen.
...
* posix.sgml: Move wcsnlen to SUSv4 section.
* include/cygwin/version.h: Bump API minor number.
2009-02-13 18:39:37 +00:00
Corinna Vinschen
22e138ad6b
* posix.sgml: Move dirfd to SUSv4 section.
2009-02-13 12:45:02 +00:00
Corinna Vinschen
b0e662b8d6
* posix.sgml: Move interfaces deprecated in SUSv4 to deprecated
...
interfaces section. Move interfaces added in SUSv4 to SUSv4
section or, if unimplemented, add them to the unimplemented interfaces
section.
2009-02-13 12:19:25 +00:00
Corinna Vinschen
f2ba21b1a4
* posix.sgml: Merge SUSv3 and SUSv4 section into a single SUSv4 section.
...
Move Solaris calls now in SUSv4 to SUSv4 section. Rename unimplemented
section to refer to SUSv4. Add note about missing interfaces.
Move wcstod and wcstof from unimplemented to SUSv4 section.
2009-02-13 11:33:32 +00:00
Corinna Vinschen
11acb173d9
* cygwin.din: Export wcstok.
...
* posix.sgml: Move wcstok from unimplemented to susv3.
* include/cygwin/version.h: Bump API minor number.
2009-02-05 17:30:17 +00:00
Corinna Vinschen
f8a41da921
* cygwin.din: Export fgetwc, fgetws, fputwc, fputws, fwide, getwc,
...
getwchar, putwc, putwchar, ungetwc.
* posix.sgml: Move above functions (add missing) into "implemented
SUSv3" section.
* include/cygwin/version.h: Bump api minor number.
2008-12-15 12:40:29 +00:00
Corinna Vinschen
e7afe579f5
* flock.cc (inode_t::get_all_locks_list): Fix typo.
...
* posix.sgml: Add cfmakeraw to list of implemented BSD functions.
2008-09-29 17:03:49 +00:00
Corinna Vinschen
eba32ec829
* cygwin.din (futimens): Export.
...
(utimensat): Export.
* fhandler.cc (fhandler_base::utimens): Replace fhandler_base::utimes.
Call utimens_fs.
* fhandler.h (class fhandler_base): Declare utimens_fs instead of
utimes_fs, utimens instead of utimes.
(class fhandler_disk_file): Declare utimens instead of utimes.
* fhandler_disk_file.cc (fhandler_disk_file::utimens): Replace
fhandler_disk_file::utimes.
(fhandler_base::utimens_fs): Replace fhandler_base::utimes_fs.
Implement tv_nsec handling according to SUSv4.
* syscalls.cc (utimensat): New function.
* times.cc (timespec_to_filetime): New function.
(timeval_to_timespec): New function.
(utimens_worker): Replace utimes_worker.
(utimes): Convert timeval to timespec and call utimens_worker.
(lutimes): Ditto.
(futimens): Take over implementation from futimes.
(futimes): Convert timeval to timespec and call futimens.
* winsup.h (timespec_to_filetime): Declare.
* include/cygwin/version.h: Bump API minor number.
* posix.sgml: Add SUSv4 section. Add futimens and utimensat to it.
2008-04-24 09:59:54 +00:00
Corinna Vinschen
4056e97a45
* posix.sgml: Add openat, faccessat, fchmodat, fchownat, fstatat,
...
futimesat, linkat, mkdirat, mkfifoat, mknodat, readlinkat, renameat,
symlinkat, unlinkat to list of implemented Solaris functions.
2008-04-23 11:19:57 +00:00