From 7b0aa745038ef3940293117fb5b4cd8a120fa263 Mon Sep 17 00:00:00 2001 From: Brian Dessent Date: Thu, 28 Jun 2007 22:19:46 +0000 Subject: Backport documentation changes from HEAD. * ansi.sgml: Delete. * misc-std.sgml: Delete. * posix.sgml: Rework entirely. --- winsup/cygwin/ChangeLog | 7 + winsup/cygwin/posix.sgml | 1248 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1255 insertions(+) create mode 100644 winsup/cygwin/posix.sgml diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 50d211c5eee..554b2cea013 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,10 @@ +2007-06-28 Brian Dessent + + Backport documentation changes from HEAD. + * ansi.sgml: Delete. + * misc-std.sgml: Delete. + * posix.sgml: Rework entirely. + 2007-01-30 Corinna Vinschen * sigproc.cc (child_info::child_info): Set msv_count to non-zero diff --git a/winsup/cygwin/posix.sgml b/winsup/cygwin/posix.sgml new file mode 100644 index 00000000000..10349d8299c --- /dev/null +++ b/winsup/cygwin/posix.sgml @@ -0,0 +1,1248 @@ +System interfaces compatible with the Single Unix Specification, Version 3: + +Note that the core of the Single Unix Specification, Version 3 is +also ISO/IEC 9945:2003 and IEEE Std 1003.1-2001 (POSIX.1-2001). + + + FD_CLR + FD_ISSET + FD_SET + FD_ZERO + _exit + _longjmp + _setjmp + _tolower + _toupper + a64l + abort + abs + accept + access + acos + acosf + acosh + acoshf + alarm + asctime + asctime_r + asin + asinf + asinh + asinhf + atan + atan2 + atan2f + atanf + atanh + atanhf + atexit + atof + atoff + atoi + atol + atoll + basename + bcmp + bcopy + bind + bsearch + btowc + bzero + cabs + cabsf + calloc + catclose (available in external "catgets" library) + catgets (available in external "catgets" library) + catopen (available in external "catgets" library) + cbrt + cbrtf + ceil + ceilf + cfgetispeed + cfgetospeed + cfsetispeed + cfsetospeed + chdir + chmod + chown + chroot (see chapter "Implementation Notes") + clearerr + clock + clock_getres (see chapter "Implementation Notes") + clock_gettime (see chapter "Implementation Notes") + clock_setres (see chapter "Implementation Notes") + close + closedir + closelog + connect + copysign + copysignf + cos + cosf + cosh + coshf + creat + crypt (available in external "crypt" library) + ctermid + ctime + ctime_r + daylight + dbm_clearerr (available in external "libgdbm" library) + dbm_close (available in external "libgdbm" library) + dbm_delete (available in external "libgdbm" library) + dbm_error (available in external "libgdbm" library) + dbm_fetch (available in external "libgdbm" library) + dbm_firstkey (available in external "libgdbm" library) + dbm_nextkey (available in external "libgdbm" library) + dbm_open (available in external "libgdbm" library) + dbm_store (available in external "libgdbm" library) + difftime + dirname + div + dlclose + dlerror + dlopen + dlsym + drand48 + dup + dup2 + ecvt + encrypt (available in external "crypt" library) + endgrent + endhostent + endprotoent + endpwent + endservent + endutxent + environ + erand48 + erf + erfc + erfcf + erff + errno + execl + execle + execlp + execv + execve + execvp + exit + exp + exp2 + exp2f + expf + expm1 + expm1f + fabs + fabsf + fchdir + fchmod + fchown + fclose + fcntl + fcvt + fdatasync + fdim + fdimf + fdopen + feof + ferror + fflush + ffs + fgetc + fgetpos + fgets + fileno + flockfile + floor + floorf + fma + fmaf + fmax + fmaxf + fmin + fminf + fmod + fmodf + fnmatch + fopen + fork + fpathconf + fpclassify (see chapter "Implementation Notes") + fprintf + fputc + fputs + fread + free + freopen + frexp + frexpf + fscanf + fseek + fseeko + fsetpos + fstat + fstatvfs + fsync + ftell + ftello + ftime + ftok + ftruncate + ftrylockfile + ftw + funlockfile + futimes + fwrite + gcvt + getc + getc_unlocked + getchar + getchar_unlocked + getcwd + getdelim + getdomainname + getegid + getenv + geteuid + getgid + getgrent + getgrgid + getgrgid_r + getgrnam + getgrnam_r + getgroups + gethostbyaddr + gethostbyname + gethostid + gethostname + getitimer (see chapter "Implementation Notes") + getlogin + getlogin_r + getopt + getpeername + getpgid + getpgrp + getpid + getppid + getpriority + getprotobyname + getprotobynumber + getprotoent + getpwent + getpwnam + getpwnam_r + getpwuid + getpwuid_r + getrlimit + getrusage + gets + getservbyname + getservbyport + getservent + getsid + getsockname + getsockopt + getsubopt + gettimeofday + getuid + getutxent + getutxid + getutxline + getwd + glob + globfree + gmtime + gmtime_r + grantpt + h_errno + hcreate + hdestroy + hsearch + hstrerror + htonl + htons + hypot + hypotf + iconv (available in external "libiconv" library) + iconv_close (available in external "libiconv" library) + iconv_open (available in external "libiconv" library) + ilogb + ilogbf + imaxabs + imaxdiv + index + inet_addr + inet_ntoa + inet_ntop + inet_pton + initstate + ioctl + isalnum + isalpha + isascii + isatty + isblank + iscntrl + isdigit + isfinite (see chapter "Implementation Notes") + isgraph + isgreater (see chapter "Implementation Notes") + isgreaterequal (see chapter "Implementation Notes") + isinf (see chapter "Implementation Notes") + isless + islessequal (see chapter "Implementation Notes") + islessgreater (see chapter "Implementation Notes") + islower + isnan (see chapter "Implementation Notes") + isnormal (see chapter "Implementation Notes") + isprint + ispunct + isspace + isunordered (see chapter "Implementation Notes") + isupper + iswalnum + iswalpha + iswblank + iswcntrl + iswctype + iswdigit + iswgraph + iswlower + iswprint + iswpunct + iswspace + iswupper + iswxdigit + isxdigit + j0 + j1 + jn + jrand48 + kill + killpg + l64a + labs + lchown + lcong48 + ldexp + ldexpf + ldiv + lfind + lgamma + lgammaf + link + listen + llabs + lldiv + localeconv + localtime + localtime_r + log + log10 + log10f + log1p + log1pf + logb + logbf + logf + longjmp + lrand48 + lrint + lrintf + lround + lroundf + lsearch + lseek + lstat + malloc + mblen + mbrlen + mbrtowc + mbsinit + mbsrtowcs + mbstowcs + mbtowc + memccpy + memchr + memcmp + memcpy + memmove + memset + mkdir + mkfifo + mknod + mkstemp + mktemp + mktime + mlock + mmap + modf + modff + mprotect + mrand48 + msgctl (see chapter "Implementation Notes") + msgget (see chapter "Implementation Notes") + msgrcv (see chapter "Implementation Notes") + msgsnd (see chapter "Implementation Notes") + msync + munlock + munmap + nan + nanf + nanosleep + nearbyint + nearbyintf + nextafter + nextafterf + nftw + nice + nl_langinfo + nrand48 + ntohl + ntohs + open + opendir + openlog + optarg + opterr + optind + optopt + pathconf + pause + pclose + perror + pipe + poll + popen + pow + powf + pread + printf + pselect + pthread_atfork + pthread_attr_destroy + pthread_attr_getdetachstate + pthread_attr_getinheritsched + pthread_attr_getschedparam + pthread_attr_getschedpolicy + pthread_attr_getscope + pthread_attr_getstacksize + pthread_attr_init + pthread_attr_setdetachstate + pthread_attr_setinheritsched + pthread_attr_setschedparam + pthread_attr_setschedpolicy + pthread_attr_setscope + pthread_attr_setstacksize + pthread_cancel + pthread_cond_broadcast + pthread_cond_destroy + pthread_cond_init + pthread_cond_signal + pthread_cond_timedwait + pthread_cond_wait + pthread_condattr_destroy + pthread_condattr_getpshared + pthread_condattr_init + pthread_condattr_setpshared + pthread_create + pthread_detach + pthread_equal + pthread_exit + pthread_getconcurrency + pthread_getschedparam + pthread_getspecific + pthread_join + pthread_key_create + pthread_key_delete + pthread_kill + pthread_mutex_destroy + pthread_mutex_getprioceiling + pthread_mutex_init + pthread_mutex_lock + pthread_mutex_setprioceiling + pthread_mutex_trylock + pthread_mutex_unlock + pthread_mutexattr_destroy + pthread_mutexattr_getprioceiling + pthread_mutexattr_getprotocol + pthread_mutexattr_getpshared + pthread_mutexattr_gettype + pthread_mutexattr_init + pthread_mutexattr_setprioceiling + pthread_mutexattr_setprotocol + pthread_mutexattr_setpshared + pthread_mutexattr_settype + pthread_once + pthread_rwlock_destroy + pthread_rwlock_init + pthread_rwlock_rdlock + pthread_rwlock_tryrdlock + pthread_rwlock_trywrlock + pthread_rwlock_unlock + pthread_rwlock_wrlock + pthread_rwlockattr_destroy + pthread_rwlockattr_getpshared + pthread_rwlockattr_init + pthread_rwlockattr_setpshared + pthread_self + pthread_setcancelstate + pthread_setcanceltype + pthread_setconcurrency + pthread_setschedparam + pthread_setspecific + pthread_sigmask + pthread_testcancel + ptsname + putc + putc_unlocked + putchar + putchar_unlocked + putenv + puts + pututxline + pwrite + qsort + raise + rand + rand_r + random + read + readdir + readdir_r + readlink + readv + realloc + realpath + recv + recvfrom + recvmsg + regcomp + regerror + regexec + regfree + remainder + remainderf + remove + remquo + remquof + rename + rewind + rewinddir + rindex + rint + rintf + rmdir + round + roundf + scalb + scalbln + scalblnf + scalbn + scalbnf + scandir + scanf + sched_get_priority_max + sched_get_priority_min + sched_getparam + sched_getscheduler + sched_rr_get_interval + sched_setparam + sched_setscheduler + sched_yield + seed48 + seekdir + select + sem_close + sem_destroy + sem_getvalue + sem_init + sem_open + sem_post + sem_timedwait + sem_trywait + sem_wait + semctl (see chapter "Implementation Notes") + semget (see chapter "Implementation Notes") + semop (see chapter "Implementation Notes") + send + sendmsg + sendto + setbuf + setegid + setenv + seteuid + setgid + setgrent + sethostent + setitimer (see chapter "Implementation Notes") + setjmp + setkey (available in external "crypt" library) + setlocale + setlogmask + setpgid + setpgrp + setpriority + setprotoent + setpwent + setregid + setreuid + setrlimit + setservent + setsid + setsockopt + setstate + setuid + setutxent + setvbuf + shmat (see chapter "Implementation Notes") + shmctl (see chapter "Implementation Notes") + shmdt (see chapter "Implementation Notes") + shmget (see chapter "Implementation Notes") + shutdown + sigaction + sigaddset + sigdelset + sigemptyset + sigfillset + sighold + sigignore + siginterrupt + sigismember + siglongjmp + signal + signbit (see chapter "Implementation Notes") + signgam + sigpause + sigpending + sigprocmask + sigqueue + sigrelse + sigset + sigsetjmp + sigsuspend + sigwait + sigwaitinfo + sin + sinf + sinh + sinhf + sleep + snprintf + socket + socketpair + sprintf + sqrt + sqrtf + srand + srand48 + srandom + sscanf + stat + statvfs + stderr + stdin + stdout + strcasecmp + strcat + strchr + strcmp + strcoll + strcpy + strcspn + strdup + strerror + strerror_r + strftime + strlen + strncasecmp + strncat + strncmp + strncpy + strpbrk + strptime + strrchr + strspn + strstr + strtod + strtof + strtoimax + strtok + strtok_r + strtol + strtoll + strtoul + strtoull + strtoumax + strxfrm + swab + symlink + sync + sysconf + syslog + system + tan + tanf + tanh + tanhf + tcdrain + tcflow + tcflush + tcgetattr + tcgetpgrp + tcsendbreak + tcsetattr + tcsetpgrp + tdelete + telldir + tempnam + tfind + tgamma + tgammaf + time + timer_create + timer_delete + timer_gettime + timer_settime + times + timezone + tmpfile + tmpnam + toascii + tolower + toupper + towctrans + towlower + towupper + trunc + truncate + truncf + tsearch + ttyname + ttyname_r + twalk + tzname + tzset + ualarm + umask + uname + ungetc + unlink + unlockpt + unsetenv + usleep + utime + utimes + va_arg + va_copy + va_end + va_start + vfork (see chapter "Implementation Notes") + vfprintf + vfscanf + vprintf + vscanf + vsnprintf + vsprintf + vsscanf + wait + waitpid + wcrtomb + wcscat + wcschr + wcscmp + wcscoll + wcscpy + wcscspn + wcslen + wcsncat + wcsncmp + wcsncpy + wcspbrk + wcsrchr + wcsrtombs + wcsspn + wcsstr + wcstombs + wcswidth + wctob + wctomb + wctrans + wctype + wcwidth + wmemchr + wmemcmp + wmemcpy + wmemmove + wmemset + wprintf + write + writev + y0 + y1 + yn + + + + +System interfaces compatible with BSD functions: + + + alphasort + daemon + drem + endusershell + err + errx + finite + finitef + fiprintf + flock + forkpty + fstatfs + fts_children + fts_close + fts_get_clientptr + fts_get_stream + fts_open + fts_read + fts_set + fts_set_clientptr + gamma + gamma_r + gammaf + gammaf_r + getdtablesize + getpagesize + getpeereid + getprogname + getusershell + herror + inet_aton + inet_makeaddr + inet_netof + inet_network + initgroups + iruserok + login + login_tty + logout + logwtmp + mkdtemp + openpty + rcmd + revoke + rexec + rresvport + ruserok + sbrk + setbuffer + setgroups + setlinebuf + setpassent + setprogname + settimeofday + setusershell + statfs + strlcat + strlcpy + strsep + strsignal + updwtmp + valloc + verr + verrx + vhangup (see chapter "Implementation Notes") + vsyslog + vwarn + vwarnx + wait3 + wait4 + warn + warnx + wcslcat + wcslcpy + + + + +System interfaces compatible with GNU extensions: + + + argz_add + argz_add_sep + argz_append + argz_count + argz_create + argz_create_sep + argz_delete + argz_extract + argz_insert + argz_next + argz_replace + argz_stringify + asprintf + asprintf_r + dremf + envz_add + envz_entry + envz_get + envz_merge + envz_remove + envz_strip + fcloseall + fcloseall_r + getline + getopt_long + getopt_long_only + memmem + mempcpy + strndup + strnlen + tdestroy + timegm + timelocal + updwtmpx + utmpxname + vasprintf + vasprintf_r + + + + +System interfaces compatible with Solaris or SunOS functions: + + + acl + aclcheck + aclfrommode + aclfrompbits + aclfromtext + aclsort + acltomode + acltopbits + acltotext + endmntent + facl + getmntent + memalign + setmntent + + + + +Other UNIX system interfaces, deprecated or not in POSIX.1-2001: + + + cuserid (POSIX.1-1988, SUSv2) + endutent (XPG2) + getpass (SUSv2) + getutent (XPG2) + getutid (XPG2) + getutline (XPG2) + getw (SVID) + mallinfo (SVID) + mallopt (SVID) + on_exit (SunOS) + pthread_continue (XPG2) + pthread_getsequence_np (Tru64) + pthread_suspend (XPG2) + pututline (XPG2) + putw (SVID) + setutent (XPG2) + sys_errlist (BSD) + sys_nerr (BSD) + ttyslot (SUSv2) + utmpname (XPG2) + + + + +NOT implemented system interfaces from the Single Unix Specification, Volume 3: + + + acoshl + acosl + aio_cancel + aio_error + aio_fsync + aio_read + aio_return + aio_suspend + aio_write + asinhl + asinl + atan2l + atanhl + atanl + bsd_signal + cabsl + cacos + cacosf + cacosh + cacoshf + cacoshl + cacosl + carg + cargf + cargl + casin + casinf + casinh + casinhf + casinhl + casinl + catan + catanf + catanh + catanhf + catanhl + catanl + cbrtl + ccos + ccosf + ccosh + ccoshf + ccoshl + ccosl + ceill + cexp + cexpf + cexpl + cimag + cimagf + cimagl + clock_getcpuclockid + clog + clogf + clogl + conj + conjf + conjl + copysignl + coshl + cosl + cpow + cpowf + cpowl + cproj + cprojf + cprojl + creal + crealf + creall + csin + csinf + csinh + csinhf + csinhl + csinl + csqrt + csqrtf + csqrtl + ctan + ctanf + ctanh + ctanhf + ctanhl + ctanl + endnetent + erfcl + erfl + exp2l + expl + expm1l + fabsl + fattach + fdiml + feclearexcept + fegetenv + fegetexceptflag + fegetround + feholdexcept + feraiseexcept + fesetenv + fesetexceptflag + fesetround + fetestexcept + feupdateenv + fgetwc + fgetws + floorl + fmal + fmaxl + fminl + fmodl + fmtmsg + fputwc + fputws + frexpl + fwide + fwprintf + fwscanf + getcontext + getdate + getdate_err + gethostent + getmsg + getnetbyaddr + getnetbyname + getnetent + getpmsg + getwc + getwchar + hypotl + ilogbl + initstate + isastream + ldexpl + lgammal + lio_listio + llrint + llrintf + llrintl + llround + llroundf + llroundl + lockf + log10l + log1pl + log2l + logbl + logl + lrintl + lroundl + makecontext + mlockall + modfl + munlockall + nanl + nearbyintl + nextafterl + nexttowardl + posix_mem_offset + posix_spawn[...] + posix_trace[...] + posix_typed_[...] + powl + pthread_attr_getguardsize + pthread_attr_getstack + pthread_attr_getstackaddr + pthread_attr_setguardsize + pthread_attr_setstack + pthread_attr_setstackaddr + pthread_barrier[...] + pthread_condattr_getclock + pthread_condattr_setclock + pthread_getcpuclockid + pthread_mutex_timedlock + pthread_rwlock_timedrdlock + pthread_rwlock_timedwrlock + pthread_setschedprio + pthread_spin_[...] + putmsg + reminderl + remquol + rintl + roundl + scalblnl + scalbnl + setcontext + setnetent + sigaltstack + sigtimedwait + sinhl + sinl + sockatmark + sqrtl + strfmon + strtold + swabcontext + swprintf + swscanf + tanhl + tanl + tcgetsid + tgammal + timer_getoverrun + truncl + ulimit + vfwprintf + vfwscanf + vswprintf + vswscanf + vwprintf + vwscanf + waitid + wcsftime + wcstod + wcstof + wcstoimax + wcstok + wcstol + wcstold + wcstoll + wcstoul + wcstoull + wcstoumax + wcswcs + wcsxfrm + wordexp + wordfree + wscanf + + + + +Implementation Notes + +chroot only emulates a chroot function call +by keeping track of the current root and accomodating this in the file +related function calls. A real chroot functionality is not supported by +Windows however. + +clock_getres, clock_gettime +and clock_setres only support CLOCK_REALTIME for +now. + +fpclassify, isfinite, +isgreater, isgreaterequal, +isinf, isless, +islessequal, islessgreater, +isnan, isnormal, +isunordered, and signbit +only support float and double arguments, not long double arguments. + +getitimer and setitimer +only support ITIMER_REAL for now. + +link will copy the file if it can't implement +a true hardlink. This is true at least for FAT and FAT32 filesystems. +NTFS supports hardlinks. + +lseek only works properly on binary +files. + +setuid is only safe against reverting the user +switch after a call to one of the exec(2) functions took place. Windows +doesn't support a non-revertable user switch within the context of Win32 +processes. + +vfork just calls fork. + +vhangup always returns -1 and sets errno to +ENOSYS. + +The XSI IPC functions semctl, +semget, semop, +shmat, shmctl, +shmdt, shmget, +msgctl, msgget, +msgrcv and msgsnd are only +available when cygserver is running and the CYGWIN +environment variable is set so that it contains the string +server. + + -- cgit v1.2.1