Yaakov Selkowitz
8a7b0a00df
* cygwin.din (pthread_condattr_getclock): Export.
...
(pthread_condattr_setclock): Export.
* posix.sgml (std-notimpl): Move pthread_condattr_getclock and
pthread_condattr_setclock from here...
(std-susv4): ... to here.
* sysconf.cc (sca): Set _SC_CLOCK_SELECTION to _POSIX_CLOCK_SELECTION.
* thread.cc: (pthread_condattr::pthread_condattr): Initialize clock_id.
(pthread_cond::pthread_cond): Initialize clock_id.
(pthread_cond_timedwait): Use clock_gettime() instead of gettimeofday()
in order to support all allowed clocks.
(pthread_condattr_getclock): New function.
(pthread_condattr_setclock): New function.
* thread.h (class pthread_condattr): Add clock_id member.
(class pthread_cond): Ditto.
* include/pthread.h: Remove obsolete comment.
(pthread_condattr_getclock): Declare.
(pthread_condattr_setclock): Declare.
* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
2011-07-21 09:39:22 +00:00
Corinna Vinschen
c57b66f6c3
* posix.sgml (std-notes): Add missing <para>.
2011-05-25 06:10:24 +00:00
Yaakov Selkowitz
ed516f97a6
* cygwin.din (__fpurge): Export.
...
* posix.sgml (std-solaris): Add __fpurge.
* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
2011-05-19 07:23:29 +00:00
Yaakov Selkowitz
a5ffa9b80e
* posix.sgml (std-susv4): Remove chroot, futimes, hstrerror.
...
(std-deprec): Add chroot.
(std-bsd): Add futimes, hstrerror.
(std-notimpl): Add clock_nanosleep, nexttoward, nexttowardf.
Remove initstate, which is implemented and listed in std-susv4.
2011-05-18 21:46:54 +00:00
Yaakov Selkowitz
d470b53c98
* cygwin.din (error): Export.
...
(error_at_line): Export.
(error_message_count): Export.
(error_one_per_line): Export.
(error_print_progname): Export.
* errno.cc (error_message_count): Define.
(error_one_per_line): Define.
(error_print_progname): Define.
(_verror): New static function.
(error): New function.
(error_at_line): New function.
* posix.sgml (std-gnu): Add error, error_at_line.
* include/error.h: New header.
* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
2011-05-18 01:25:41 +00:00
Yaakov Selkowitz
c8ce54290d
* cygwin.din (clock_getcpuclockid): Export.
...
(pthread_getcpuclockid): Export.
* hires.h (PID_TO_CLOCKID): New macro.
(CLOCKID_TO_PID): New macro.
(CLOCKID_IS_PROCESS): New macro.
(THREADID_TO_CLOCKID): New macro.
(CLOCKID_TO_THREADID): New macro.
(CLOCKID_IS_THREAD): New macro.
* ntdll.h (enum _THREAD_INFORMATION_CLASS): Add ThreadTimes.
* posix.sgml (std-notimpl): Add clock_getcpuclockid and
pthread_getcpuclockid from here...
(std-susv4): ... to here.
(std-notes): Remove limitations of clock_getres and clock_gettime.
Note limitation of timer_create to CLOCK_REALTIME.
* sysconf.cc (sca): Set _SC_CPUTIME to _POSIX_CPUTIME, and
_SC_THREAD_CPUTIME to _POSIX_THREAD_CPUTIME.
* thread.cc (pthread_getcpuclockid): New function.
* timer.cc (timer_create): Set errno to ENOTSUP for CPU-time clocks.
* times.cc (clock_gettime): Handle CLOCK_PROCESS_CPUTIME_ID and
CLOCK_THREAD_CPUTIME_ID.
(clock_getres): Ditto.
(clock_settime): Set errno to EPERM for CPU-time clocks.
(clock_getcpuclockid): New function.
* include/pthread.h (pthread_getcpuclockid): Declare.
* include/cygwin/version.h (CYGWIN_VERSION_API_MINOR): Bump.
2011-05-17 17:08:10 +00:00
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