remove annex K from c11 api tables
authornsz <nsz@port70.net>
Wed, 5 Sep 2012 06:35:19 +0000 (08:35 +0200)
committernsz <nsz@port70.net>
Wed, 5 Sep 2012 06:35:19 +0000 (08:35 +0200)
data/c11
tab_c11.html
tab_c11.sh

index d639e99..a19dc02 100644 (file)
--- a/data/c11
+++ b/data/c11
@@ -92,7 +92,6 @@ EDOM          errno.h B.4 Errors
 EILSEQ         errno.h B.4 Errors
 ERANGE         errno.h B.4 Errors
 errno          errno.h B.4 Errors
-errno_t                errno.h B.4 Errors
 fenv_t         fenv.h  B.5 Floating-point environment
 FE_OVERFLOW            fenv.h  B.5 Floating-point environment
 FE_TOWARDZERO          fenv.h  B.5 Floating-point environment
@@ -671,7 +670,6 @@ NULL                stddef.h        B.18 Common definitions
 size_t         stddef.h        B.18 Common definitions
 wchar_t                stddef.h        B.18 Common definitions
 offsetof       offsetof(type, member-designator)       stddef.h        B.18 Common definitions
-rsize_t                stddef.h        B.18 Common definitions
 int8_t         stdint.h        B.19 Integer types
 int16_t                stdint.h        B.19 Integer types
 int32_t                stdint.h        B.19 Integer types
@@ -761,7 +759,6 @@ UINT16_MAX          stdint.h        B.19 Integer types
 UINT32_MAX             stdint.h        B.19 Integer types
 UINT64_MAX             stdint.h        B.19 Integer types
 PTRDIFF_MIN            stdint.h        B.19 Integer types
-RSIZE_MAX              stdint.h        B.19 Integer types
 size_t         stdio.h B.20 Input/output
 _IOLBF         stdio.h B.20 Input/output
 FILENAME_MAX           stdio.h B.20 Input/output
@@ -826,29 +823,6 @@ clearerr   void clearerr(FILE *stream);    stdio.h B.20 Input/output
 feof   int feof(FILE *stream); stdio.h B.20 Input/output
 ferror int ferror(FILE *stream);       stdio.h B.20 Input/output
 perror void perror(const char *s);     stdio.h B.20 Input/output
-L_tmpnam_s             stdio.h B.20 Input/output
-TMP_MAX_S              stdio.h B.20 Input/output
-errno_t                stdio.h B.20 Input/output
-rsize_t                stdio.h B.20 Input/output
-tmpfile_s      errno_t tmpfile_s(FILE * restrict * restrict streamptr);        stdio.h B.20 Input/output
-tmpnam_s       errno_t tmpnam_s(char *s, rsize_t maxsize);     stdio.h B.20 Input/output
-fopen_s        errno_t fopen_s(FILE * restrict * restrict streamptr, const char * restrict filename, const char * restrict mode);      stdio.h B.20 Input/output
-freopen_s      errno_t freopen_s(FILE * restrict * restrict newstreamptr, const char * restrict filename, const char * restrict mode, FILE * restrict stream); stdio.h B.20 Input/output
-fprintf_s      int fprintf_s(FILE * restrict stream, const char * restrict format, ...);       stdio.h B.20 Input/output
-fscanf_s       int fscanf_s(FILE * restrict stream, const char * restrict format, ...);        stdio.h B.20 Input/output
-printf_s       int printf_s(const char * restrict format, ...);        stdio.h B.20 Input/output
-scanf_s        int scanf_s(const char * restrict format, ...); stdio.h B.20 Input/output
-snprintf_s     int snprintf_s(char * restrict s, rsize_t n, const char * restrict format, ...);        stdio.h B.20 Input/output
-sprintf_s      int sprintf_s(char * restrict s, rsize_t n, const char * restrict format, ...); stdio.h B.20 Input/output
-sscanf_s       int sscanf_s(const char * restrict s, const char * restrict format, ...);       stdio.h B.20 Input/output
-vfprintf_s     int vfprintf_s(FILE * restrict stream, const char * restrict format, va_list arg);      stdio.h B.20 Input/output
-vfscanf_s      int vfscanf_s(FILE * restrict stream, const char * restrict format, va_list arg);       stdio.h B.20 Input/output
-vprintf_s      int vprintf_s(const char * restrict format, va_list arg);       stdio.h B.20 Input/output
-vscanf_s       int vscanf_s(const char * restrict format, va_list arg);        stdio.h B.20 Input/output
-vsnprintf_s    int vsnprintf_s(char * restrict s, rsize_t n, const char * restrict format, va_list arg);       stdio.h B.20 Input/output
-vsprintf_s     int vsprintf_s(char * restrict s, rsize_t n, const char * restrict format, va_list arg);        stdio.h B.20 Input/output
-vsscanf_s      int vsscanf_s(const char * restrict s, const char * restrict format, va_list arg);      stdio.h B.20 Input/output
-gets_s char *gets_s(char *s, rsize_t n);       stdio.h B.20 Input/output
 size_t         stdlib.h        B.21 General utilities
 ldiv_t         stdlib.h        B.21 General utilities
 EXIT_FAILURE           stdlib.h        B.21 General utilities
@@ -898,18 +872,6 @@ mbtowc     int mbtowc(wchar_t * restrict pwc, const char * restrict s, size_t n);  st
 wctomb int wctomb(char *s, wchar_t wchar);     stdlib.h        B.21 General utilities
 mbstowcs       size_t mbstowcs(wchar_t * restrict pwcs, const char * restrict s, size_t n);    stdlib.h        B.21 General utilities
 wcstombs       size_t wcstombs(char * restrict s, const wchar_t * restrict pwcs, size_t n);    stdlib.h        B.21 General utilities
-errno_t                stdlib.h        B.21 General utilities
-rsize_t                stdlib.h        B.21 General utilities
-constraint_handler_t           stdlib.h        B.21 General utilities
-set_constraint_handler_s       constraint_handler_t set_constraint_handler_s(constraint_handler_t handler);    stdlib.h        B.21 General utilities
-abort_handler_s        void abort_handler_s(const char * restrict msg, void * restrict ptr, errno_t error);    stdlib.h        B.21 General utilities
-ignore_handler_s       void ignore_handler_s(const char * restrict msg, void * restrict ptr, errno_t error);   stdlib.h        B.21 General utilities
-getenv_s       errno_t getenv_s(size_t * restrict len, char * restrict value, rsize_t maxsize, const char * restrict name);    stdlib.h        B.21 General utilities
-bsearch_s      void *bsearch_s(const void *key, const void *base, rsize_t nmemb, rsize_t size, int (*compar)(const void *k, const void *y, void *context), void *context);     stdlib.h        B.21 General utilities
-qsort_s        errno_t qsort_s(void *base, rsize_t nmemb, rsize_t size, int (*compar)(const void *x, const void *y, void *context), void *context);    stdlib.h        B.21 General utilities
-wctomb_s       errno_t wctomb_s(int * restrict status, char * restrict s, rsize_t smax, wchar_t wc);   stdlib.h        B.21 General utilities
-mbstowcs_s     errno_t mbstowcs_s(size_t * restrict retval, wchar_t * restrict dst, rsize_t dstmax, const char * restrict src, rsize_t len);   stdlib.h        B.21 General utilities
-wcstombs_s     errno_t wcstombs_s(size_t * restrict retval, char * restrict dst, rsize_t dstmax, const wchar_t * restrict src, rsize_t len);   stdlib.h        B.21 General utilities
 noreturn               stdnoreturn.h   B.22 _Noreturn
 size_t         string.h        B.23 String handling
 NULL           string.h        B.23 String handling
@@ -935,19 +897,6 @@ strtok     char *strtok(char * restrict s1, const char * restrict s2);     string.h        B.23
 memset void *memset(void *s, int c, size_t n); string.h        B.23 String handling
 strerror       char *strerror(int errnum);     string.h        B.23 String handling
 strlen size_t strlen(const char *s);   string.h        B.23 String handling
-errno_t                string.h        B.23 String handling
-rsize_t                string.h        B.23 String handling
-memcpy_s       errno_t memcpy_s(void * restrict s1, rsize_t s1max, const void * restrict s2, rsize_t n);       string.h        B.23 String handling
-memmove_s      errno_t memmove_s(void *s1, rsize_t s1max, const void *s2, rsize_t n);  string.h        B.23 String handling
-strcpy_s       errno_t strcpy_s(char * restrict s1, rsize_t s1max, const char * restrict s2);  string.h        B.23 String handling
-strncpy_s      errno_t strncpy_s(char * restrict s1, rsize_t s1max, const char * restrict s2, rsize_t n);      string.h        B.23 String handling
-strcat_s       errno_t strcat_s(char * restrict s1, rsize_t s1max, const char * restrict s2);  string.h        B.23 String handling
-strncat_s      errno_t strncat_s(char * restrict s1, rsize_t s1max, const char * restrict s2, rsize_t n);      string.h        B.23 String handling
-strtok_s       char *strtok_s(char * restrict s1, rsize_t * restrict s1max, const char * restrict s2, char ** restrict ptr);   string.h        B.23 String handling
-memset_s       errno_t memset_s(void *s, rsize_t smax, int c, rsize_t n)       string.h        B.23 String handling
-strerror_s     errno_t strerror_s(char *s, rsize_t maxsize, errno_t errnum);   string.h        B.23 String handling
-strerrorlen_s  size_t strerrorlen_s(errno_t errnum);   string.h        B.23 String handling
-strnlen_s      size_t strnlen_s(const char *s, size_t maxsize);        string.h        B.23 String handling
 acos           tgmath.h        B.24 Type-generic math
 sqrt           tgmath.h        B.24 Type-generic math
 fmod           tgmath.h        B.24 Type-generic math
@@ -1069,12 +1018,6 @@ ctime    char *ctime(const time_t *timer);       time.h  B.26 Date and time
 gmtime struct tm *gmtime(const time_t *timer); time.h  B.26 Date and time
 localtime      struct tm *localtime(const time_t *timer);      time.h  B.26 Date and time
 strftime       size_t strftime(char * restrict s, size_t maxsize, const char * restrict format, const struct tm * restrict timeptr);   time.h  B.26 Date and time
-errno_t                time.h  B.26 Date and time
-rsize_t                time.h  B.26 Date and time
-asctime_s      errno_t asctime_s(char *s, rsize_t maxsize, const struct tm *timeptr);  time.h  B.26 Date and time
-ctime_s        errno_t ctime_s(char *s, rsize_t maxsize, const time_t *timer); time.h  B.26 Date and time
-gmtime_s       struct tm *gmtime_s(const time_t * restrict timer, struct tm * restrict result);        time.h  B.26 Date and time
-localtime_s    struct tm *localtime_s(const time_t * restrict timer, struct tm * restrict result);     time.h  B.26 Date and time
 mbstate_t              uchar.h B.27 Unicode utilities
 size_t         uchar.h B.27 Unicode utilities
 char16_t               uchar.h B.27 Unicode utilities
@@ -1151,33 +1094,6 @@ mbrtowc  size_t mbrtowc(wchar_t * restrict pwc, const char * restrict s, size_t n
 wcrtomb        size_t wcrtomb(char * restrict s, wchar_t wc, mbstate_t * restrict ps); wchar.h B.28 Extended multibyte/wide character utilities
 mbsrtowcs      size_t mbsrtowcs(wchar_t * restrict dst, const char ** restrict src, size_t len, mbstate_t * restrict ps);      wchar.h B.28 Extended multibyte/wide character utilities
 wcsrtombs      size_t wcsrtombs(char * restrict dst, const wchar_t ** restrict src, size_t len, mbstate_t * restrict ps);      wchar.h B.28 Extended multibyte/wide character utilities
-errno_t                wchar.h B.28 Extended multibyte/wide character utilities
-rsize_t                wchar.h B.28 Extended multibyte/wide character utilities
-fwprintf_s     int fwprintf_s(FILE * restrict stream, const wchar_t * restrict format, ...);   wchar.h B.28 Extended multibyte/wide character utilities
-fwscanf_s      int fwscanf_s(FILE * restrict stream, const wchar_t * restrict format, ...);    wchar.h B.28 Extended multibyte/wide character utilities
-snwprintf_s    int snwprintf_s(wchar_t * restrict s, rsize_t n, const wchar_t * restrict format, ...); wchar.h B.28 Extended multibyte/wide character utilities
-swprintf_s     int swprintf_s(wchar_t * restrict s, rsize_t n, const wchar_t * restrict format, ...);  wchar.h B.28 Extended multibyte/wide character utilities
-swscanf_s      int swscanf_s(const wchar_t * restrict s, const wchar_t * restrict format, ...);        wchar.h B.28 Extended multibyte/wide character utilities
-vfwprintf_s    int vfwprintf_s(FILE * restrict stream, const wchar_t * restrict format, va_list arg);  wchar.h B.28 Extended multibyte/wide character utilities
-vfwscanf_s     int vfwscanf_s(FILE * restrict stream, const wchar_t * restrict format, va_list arg);   wchar.h B.28 Extended multibyte/wide character utilities
-vsnwprintf_s   int vsnwprintf_s(wchar_t * restrict s, rsize_t n, const wchar_t * restrict format, va_list arg);        wchar.h B.28 Extended multibyte/wide character utilities
-vswprintf_s    int vswprintf_s(wchar_t * restrict s, rsize_t n, const wchar_t * restrict format, va_list arg); wchar.h B.28 Extended multibyte/wide character utilities
-vswscanf_s     int vswscanf_s(const wchar_t * restrict s, const wchar_t * restrict format, va_list arg);       wchar.h B.28 Extended multibyte/wide character utilities
-vwprintf_s     int vwprintf_s(const wchar_t * restrict format, va_list arg);   wchar.h B.28 Extended multibyte/wide character utilities
-vwscanf_s      int vwscanf_s(const wchar_t * restrict format, va_list arg);    wchar.h B.28 Extended multibyte/wide character utilities
-wprintf_s      int wprintf_s(const wchar_t * restrict format, ...);    wchar.h B.28 Extended multibyte/wide character utilities
-wscanf_s       int wscanf_s(const wchar_t * restrict format, ...);     wchar.h B.28 Extended multibyte/wide character utilities
-wcscpy_s       errno_t wcscpy_s(wchar_t * restrict s1, rsize_t s1max, const wchar_t * restrict s2);    wchar.h B.28 Extended multibyte/wide character utilities
-wcsncpy_s      errno_t wcsncpy_s(wchar_t * restrict s1, rsize_t s1max, const wchar_t * restrict s2, rsize_t n);        wchar.h B.28 Extended multibyte/wide character utilities
-wmemcpy_s      errno_t wmemcpy_s(wchar_t * restrict s1, rsize_t s1max, const wchar_t * restrict s2, rsize_t n);        wchar.h B.28 Extended multibyte/wide character utilities
-wmemmove_s     errno_t wmemmove_s(wchar_t *s1, rsize_t s1max, const wchar_t *s2, rsize_t n);   wchar.h B.28 Extended multibyte/wide character utilities
-wcscat_s       errno_t wcscat_s(wchar_t * restrict s1, rsize_t s1max, const wchar_t * restrict s2);    wchar.h B.28 Extended multibyte/wide character utilities
-wcsncat_s      errno_t wcsncat_s(wchar_t * restrict s1, rsize_t s1max, const wchar_t * restrict s2, rsize_t n);        wchar.h B.28 Extended multibyte/wide character utilities
-wcstok_s       wchar_t *wcstok_s(wchar_t * restrict s1, rsize_t * restrict s1max, const wchar_t * restrict s2, wchar_t ** restrict ptr);       wchar.h B.28 Extended multibyte/wide character utilities
-wcsnlen_s      size_t wcsnlen_s(const wchar_t *s, size_t maxsize);     wchar.h B.28 Extended multibyte/wide character utilities
-wcrtomb_s      errno_t wcrtomb_s(size_t * restrict retval, char * restrict s, rsize_t smax, wchar_t wc, mbstate_t * restrict ps);      wchar.h B.28 Extended multibyte/wide character utilities
-mbsrtowcs_s    errno_t mbsrtowcs_s(size_t * restrict retval, wchar_t * restrict dst, rsize_t dstmax, const char ** restrict src, rsize_t len, mbstate_t * restrict ps);        wchar.h B.28 Extended multibyte/wide character utilities
-wcsrtombs_s    errno_t wcsrtombs_s(size_t * restrict retval, char * restrict dst, rsize_t dstmax, const wchar_t ** restrict src, rsize_t len, mbstate_t * restrict ps);        wchar.h B.28 Extended multibyte/wide character utilities
 wint_t         wctype.h        B.29 Wide character classification and mapping utilities
 wctrans_t              wctype.h        B.29 Wide character classification and mapping utilities
 wctype_t               wctype.h        B.29 Wide character classification and mapping utilities
index bf36feb..9ca5650 100644 (file)
@@ -1,6 +1,6 @@
 <h3>musl vs c11 api</h3>
 <h4>commit</h4><p>commit <a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/commit/&amp;h=fb247fafa04ee52dda816355ab0461132297b9a4">fb247fafa04ee52dda816355ab0461132297b9a4</a><br>Date:   Sun Sep 2 12:46:06 2012 -0400<br><br>    avoid "inline" in public headers for strict c89 compatibility<br>    <br>    while musl itself requires a c99 compiler, some applications insist on<br>    being compiled with c89 compilers, and use of "inline" in the headers<br>    was breaking them. much of this had been avoided already by just<br>    skipping the inline keyword in pre-c99 compilers or modes, but this<br>    new unified solution is cleaner and may/should result in better code<br>    generation in the default gcc configuration.
-<h4>legend</h4><ul><li>status: musl implementation status summary<ul><li>(empty) - implemented<li>nosym - prototype found in include files (see decl) but not in libc.a (see sym)<li>nodecl - symbol is in libc.a but not declared in a public header<li>missing - neither in include files (see decl) nor in libc.a (see sym)</ul><li>sym: external symbol kind as found by `nm libc.a` (symbol kind only reported once)<ul><li>C - symbol is common (uninitialized data)<li>D - symbol is in the initialized data section<li>R - symbol is in the read only data section<li>T - symbol is in the text section<li>V - weak object<li>W - weak symbol</ul><li>decl: kind of declaration as found by `ctags -R include` (every occurance is reported, arch specific definitions are not linked)<ul><li>d - macro definition<li>t - typedef<li>s - struct declaration<li>u - union declaration<li>p - function prototype<li>x - external and forward variable declaration</ul></ul>
+<h4>legend</h4><ul><li>status: musl implementation status summary<ul><li>(empty) - implemented<li>nosym - prototype found in include files (see decl) but not in libc.a (see sym)<li>nodecl - symbol is in libc.a but not declared in a public header<li>missing - neither in include files (see decl) nor in libc.a (see sym)</ul><li>sym: external symbol kind as found by `nm libc.a` (symbol kind only reported once)<ul><li>C - symbol is common (uninitialized data)<li>D - symbol is in the initialized data section<li>R - symbol is in the read only data section<li>T - symbol is in the text section<li>V - weak object<li>W - weak symbol</ul><li>decl: kind of declaration as found by `ctags -R include` (every occurance is reported, arch specific definitions are not linked)<ul><li>d - macro definition<li>t - typedef<li>s - struct declaration<li>u - union declaration<li>p - function prototype<li>x - external and forward variable declaration</ul></ul><p>(Annex K apis are excluded: -D__STDC_WANT_LIB_EXT1__=0 is assumed)
 <h4>table</h4><table border=1><tr><th colspan=3>musl<th colspan=4>c11<tr><th>status<th>sym<th>decl<th>name<th>header<th>proto<th>section
 <tr><td>missing<td>&#160;<td>&#160;<td>static_assert<td>assert.h<td>&#160;<td>B.1 Diagnostics
 <tr><td>&#160;<td>&#160;<td><a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/assert.h#n1">d</a> <a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/assert.h#n4">d</a> <a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/assert.h#n6">d</a> <td>assert<td>assert.h<td>void assert(scalar expression);<td>B.1 Diagnostics
@@ -96,7 +96,6 @@
 <tr><td>&#160;<td>&#160;<td>d <td>EILSEQ<td>errno.h<td>&#160;<td>B.4 Errors
 <tr><td>&#160;<td>&#160;<td>d <td>ERANGE<td>errno.h<td>&#160;<td>B.4 Errors
 <tr><td>&#160;<td>&#160;<td><a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/errno.h#n14">d</a> <td>errno<td>errno.h<td>&#160;<td>B.4 Errors
-<tr><td>missing<td>&#160;<td>&#160;<td>errno_t<td>errno.h<td>&#160;<td>B.4 Errors
 <tr><td>&#160;<td>&#160;<td>t <td>fenv_t<td>fenv.h<td>&#160;<td>B.5 Floating-point environment
 <tr><td>&#160;<td>&#160;<td>d <td>FE_OVERFLOW<td>fenv.h<td>&#160;<td>B.5 Floating-point environment
 <tr><td>&#160;<td>&#160;<td>d <td>FE_TOWARDZERO<td>fenv.h<td>&#160;<td>B.5 Floating-point environment
 <tr><td>&#160;<td>&#160;<td>t <td>size_t<td>stddef.h<td>&#160;<td>B.18 Common definitions
 <tr><td>&#160;<td>&#160;<td>t t <td>wchar_t<td>stddef.h<td>&#160;<td>B.18 Common definitions
 <tr><td>&#160;<td>&#160;<td><a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/stddef.h#n17">d</a> <td>offsetof<td>stddef.h<td>offsetof(type, member-designator)<td>B.18 Common definitions
-<tr><td>missing<td>&#160;<td>&#160;<td>rsize_t<td>stddef.h<td>&#160;<td>B.18 Common definitions
 <tr><td>&#160;<td>&#160;<td>t <td>int8_t<td>stdint.h<td>&#160;<td>B.19 Integer types
 <tr><td>&#160;<td>&#160;<td>t <td>int16_t<td>stdint.h<td>&#160;<td>B.19 Integer types
 <tr><td>&#160;<td>&#160;<td>t <td>int32_t<td>stdint.h<td>&#160;<td>B.19 Integer types
 <tr><td>&#160;<td>&#160;<td><a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/stdint.h#n56">d</a> <td>UINT32_MAX<td>stdint.h<td>&#160;<td>B.19 Integer types
 <tr><td>&#160;<td>&#160;<td><a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/stdint.h#n57">d</a> <td>UINT64_MAX<td>stdint.h<td>&#160;<td>B.19 Integer types
 <tr><td>&#160;<td>&#160;<td>d <td>PTRDIFF_MIN<td>stdint.h<td>&#160;<td>B.19 Integer types
-<tr><td>missing<td>&#160;<td>&#160;<td>RSIZE_MAX<td>stdint.h<td>&#160;<td>B.19 Integer types
 <tr><td>&#160;<td>&#160;<td>t <td>size_t<td>stdio.h<td>&#160;<td>B.20 Input/output
 <tr><td>&#160;<td>&#160;<td><a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/stdio.h#n39">d</a> <td>_IOLBF<td>stdio.h<td>&#160;<td>B.20 Input/output
 <tr><td>&#160;<td>&#160;<td><a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/stdio.h#n43">d</a> <td>FILENAME_MAX<td>stdio.h<td>&#160;<td>B.20 Input/output
 <tr><td>&#160;<td>T<td><a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/stdio.h#n68">p</a> <td>feof<td>stdio.h<td>int feof(FILE *stream);<td>B.20 Input/output
 <tr><td>&#160;<td>T<td><a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/stdio.h#n69">p</a> <td>ferror<td>stdio.h<td>int ferror(FILE *stream);<td>B.20 Input/output
 <tr><td>&#160;<td>T<td><a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/stdio.h#n117">p</a> <td>perror<td>stdio.h<td>void perror(const char *s);<td>B.20 Input/output
-<tr><td>missing<td>&#160;<td>&#160;<td>L_tmpnam_s<td>stdio.h<td>&#160;<td>B.20 Input/output
-<tr><td>missing<td>&#160;<td>&#160;<td>TMP_MAX_S<td>stdio.h<td>&#160;<td>B.20 Input/output
-<tr><td>missing<td>&#160;<td>&#160;<td>errno_t<td>stdio.h<td>&#160;<td>B.20 Input/output
-<tr><td>missing<td>&#160;<td>&#160;<td>rsize_t<td>stdio.h<td>&#160;<td>B.20 Input/output
-<tr><td>missing<td>&#160;<td>&#160;<td>tmpfile_s<td>stdio.h<td>errno_t tmpfile_s(FILE * restrict * restrict streamptr);<td>B.20 Input/output
-<tr><td>missing<td>&#160;<td>&#160;<td>tmpnam_s<td>stdio.h<td>errno_t tmpnam_s(char *s, rsize_t maxsize);<td>B.20 Input/output
-<tr><td>missing<td>&#160;<td>&#160;<td>fopen_s<td>stdio.h<td>errno_t fopen_s(FILE * restrict * restrict streamptr, const char * restrict filename, const char * restrict mode);<td>B.20 Input/output
-<tr><td>missing<td>&#160;<td>&#160;<td>freopen_s<td>stdio.h<td>errno_t freopen_s(FILE * restrict * restrict newstreamptr, const char * restrict filename, const char * restrict mode, FILE * restrict stream);<td>B.20 Input/output
-<tr><td>missing<td>&#160;<td>&#160;<td>fprintf_s<td>stdio.h<td>int fprintf_s(FILE * restrict stream, const char * restrict format, ...);<td>B.20 Input/output
-<tr><td>missing<td>&#160;<td>&#160;<td>fscanf_s<td>stdio.h<td>int fscanf_s(FILE * restrict stream, const char * restrict format, ...);<td>B.20 Input/output
-<tr><td>missing<td>&#160;<td>&#160;<td>printf_s<td>stdio.h<td>int printf_s(const char * restrict format, ...);<td>B.20 Input/output
-<tr><td>missing<td>&#160;<td>&#160;<td>scanf_s<td>stdio.h<td>int scanf_s(const char * restrict format, ...);<td>B.20 Input/output
-<tr><td>missing<td>&#160;<td>&#160;<td>snprintf_s<td>stdio.h<td>int snprintf_s(char * restrict s, rsize_t n, const char * restrict format, ...);<td>B.20 Input/output
-<tr><td>missing<td>&#160;<td>&#160;<td>sprintf_s<td>stdio.h<td>int sprintf_s(char * restrict s, rsize_t n, const char * restrict format, ...);<td>B.20 Input/output
-<tr><td>missing<td>&#160;<td>&#160;<td>sscanf_s<td>stdio.h<td>int sscanf_s(const char * restrict s, const char * restrict format, ...);<td>B.20 Input/output
-<tr><td>missing<td>&#160;<td>&#160;<td>vfprintf_s<td>stdio.h<td>int vfprintf_s(FILE * restrict stream, const char * restrict format, va_list arg);<td>B.20 Input/output
-<tr><td>missing<td>&#160;<td>&#160;<td>vfscanf_s<td>stdio.h<td>int vfscanf_s(FILE * restrict stream, const char * restrict format, va_list arg);<td>B.20 Input/output
-<tr><td>missing<td>&#160;<td>&#160;<td>vprintf_s<td>stdio.h<td>int vprintf_s(const char * restrict format, va_list arg);<td>B.20 Input/output
-<tr><td>missing<td>&#160;<td>&#160;<td>vscanf_s<td>stdio.h<td>int vscanf_s(const char * restrict format, va_list arg);<td>B.20 Input/output
-<tr><td>missing<td>&#160;<td>&#160;<td>vsnprintf_s<td>stdio.h<td>int vsnprintf_s(char * restrict s, rsize_t n, const char * restrict format, va_list arg);<td>B.20 Input/output
-<tr><td>missing<td>&#160;<td>&#160;<td>vsprintf_s<td>stdio.h<td>int vsprintf_s(char * restrict s, rsize_t n, const char * restrict format, va_list arg);<td>B.20 Input/output
-<tr><td>missing<td>&#160;<td>&#160;<td>vsscanf_s<td>stdio.h<td>int vsscanf_s(const char * restrict s, const char * restrict format, va_list arg);<td>B.20 Input/output
-<tr><td>missing<td>&#160;<td>&#160;<td>gets_s<td>stdio.h<td>char *gets_s(char *s, rsize_t n);<td>B.20 Input/output
 <tr><td>&#160;<td>&#160;<td>t <td>size_t<td>stdlib.h<td>&#160;<td>B.21 General utilities
 <tr><td>&#160;<td>&#160;<td><a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/stdlib.h#n62">t</a> <td>ldiv_t<td>stdlib.h<td>&#160;<td>B.21 General utilities
 <tr><td>&#160;<td>&#160;<td><a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/stdlib.h#n75">d</a> <td>EXIT_FAILURE<td>stdlib.h<td>&#160;<td>B.21 General utilities
 <tr><td>&#160;<td>T<td><a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/stdlib.h#n71">p</a> <td>wctomb<td>stdlib.h<td>int wctomb(char *s, wchar_t wchar);<td>B.21 General utilities
 <tr><td>&#160;<td>T<td><a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/stdlib.h#n72">p</a> <td>mbstowcs<td>stdlib.h<td>size_t mbstowcs(wchar_t * restrict pwcs, const char * restrict s, size_t n);<td>B.21 General utilities
 <tr><td>&#160;<td>T<td><a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/stdlib.h#n73">p</a> <td>wcstombs<td>stdlib.h<td>size_t wcstombs(char * restrict s, const wchar_t * restrict pwcs, size_t n);<td>B.21 General utilities
-<tr><td>missing<td>&#160;<td>&#160;<td>errno_t<td>stdlib.h<td>&#160;<td>B.21 General utilities
-<tr><td>missing<td>&#160;<td>&#160;<td>rsize_t<td>stdlib.h<td>&#160;<td>B.21 General utilities
-<tr><td>missing<td>&#160;<td>&#160;<td>constraint_handler_t<td>stdlib.h<td>&#160;<td>B.21 General utilities
-<tr><td>missing<td>&#160;<td>&#160;<td>set_constraint_handler_s<td>stdlib.h<td>constraint_handler_t set_constraint_handler_s(constraint_handler_t handler);<td>B.21 General utilities
-<tr><td>missing<td>&#160;<td>&#160;<td>abort_handler_s<td>stdlib.h<td>void abort_handler_s(const char * restrict msg, void * restrict ptr, errno_t error);<td>B.21 General utilities
-<tr><td>missing<td>&#160;<td>&#160;<td>ignore_handler_s<td>stdlib.h<td>void ignore_handler_s(const char * restrict msg, void * restrict ptr, errno_t error);<td>B.21 General utilities
-<tr><td>missing<td>&#160;<td>&#160;<td>getenv_s<td>stdlib.h<td>errno_t getenv_s(size_t * restrict len, char * restrict value, rsize_t maxsize, const char * restrict name);<td>B.21 General utilities
-<tr><td>missing<td>&#160;<td>&#160;<td>bsearch_s<td>stdlib.h<td>void *bsearch_s(const void *key, const void *base, rsize_t nmemb, rsize_t size, int (*compar)(const void *k, const void *y, void *context), void *context);<td>B.21 General utilities
-<tr><td>missing<td>&#160;<td>&#160;<td>qsort_s<td>stdlib.h<td>errno_t qsort_s(void *base, rsize_t nmemb, rsize_t size, int (*compar)(const void *x, const void *y, void *context), void *context);<td>B.21 General utilities
-<tr><td>missing<td>&#160;<td>&#160;<td>wctomb_s<td>stdlib.h<td>errno_t wctomb_s(int * restrict status, char * restrict s, rsize_t smax, wchar_t wc);<td>B.21 General utilities
-<tr><td>missing<td>&#160;<td>&#160;<td>mbstowcs_s<td>stdlib.h<td>errno_t mbstowcs_s(size_t * restrict retval, wchar_t * restrict dst, rsize_t dstmax, const char * restrict src, rsize_t len);<td>B.21 General utilities
-<tr><td>missing<td>&#160;<td>&#160;<td>wcstombs_s<td>stdlib.h<td>errno_t wcstombs_s(size_t * restrict retval, char * restrict dst, rsize_t dstmax, const wchar_t * restrict src, rsize_t len);<td>B.21 General utilities
 <tr><td>missing<td>&#160;<td>&#160;<td>noreturn<td>stdnoreturn.h<td>&#160;<td>B.22 _Noreturn
 <tr><td>&#160;<td>&#160;<td>t <td>size_t<td>string.h<td>&#160;<td>B.23 String handling
 <tr><td>&#160;<td>&#160;<td><a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/locale.h#n10">d</a> <a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/locale.h#n12">d</a> <a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/locale.h#n8">d</a> <a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/stddef.h#n4">d</a> <a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/stddef.h#n6">d</a> <a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/stddef.h#n8">d</a> <a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/stdio.h#n21">d</a> <a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/stdio.h#n23">d</a> <a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/stdio.h#n25">d</a> <a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/stdlib.h#n10">d</a> <a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/stdlib.h#n12">d</a> <a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/stdlib.h#n8">d</a> <a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/string.h#n10">d</a> <a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/string.h#n12">d</a> <a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/string.h#n8">d</a> <a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/time.h#n10">d</a> <a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/time.h#n12">d</a> <a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/time.h#n8">d</a> <a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/unistd.h#n16">d</a> <a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/unistd.h#n18">d</a> <a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/unistd.h#n20">d</a> <a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/wchar.h#n27">d</a> <a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/wchar.h#n29">d</a> <a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/wchar.h#n31">d</a> <td>NULL<td>string.h<td>&#160;<td>B.23 String handling
 <tr><td>&#160;<td>T<td><a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/string.h#n26">p</a> <td>memset<td>string.h<td>void *memset(void *s, int c, size_t n);<td>B.23 String handling
 <tr><td>&#160;<td>T<td><a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/string.h#n53">p</a> <td>strerror<td>string.h<td>char *strerror(int errnum);<td>B.23 String handling
 <tr><td>&#160;<td>T<td><a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/string.h#n51">p</a> <td>strlen<td>string.h<td>size_t strlen(const char *s);<td>B.23 String handling
-<tr><td>missing<td>&#160;<td>&#160;<td>errno_t<td>string.h<td>&#160;<td>B.23 String handling
-<tr><td>missing<td>&#160;<td>&#160;<td>rsize_t<td>string.h<td>&#160;<td>B.23 String handling
-<tr><td>missing<td>&#160;<td>&#160;<td>memcpy_s<td>string.h<td>errno_t memcpy_s(void * restrict s1, rsize_t s1max, const void * restrict s2, rsize_t n);<td>B.23 String handling
-<tr><td>missing<td>&#160;<td>&#160;<td>memmove_s<td>string.h<td>errno_t memmove_s(void *s1, rsize_t s1max, const void *s2, rsize_t n);<td>B.23 String handling
-<tr><td>missing<td>&#160;<td>&#160;<td>strcpy_s<td>string.h<td>errno_t strcpy_s(char * restrict s1, rsize_t s1max, const char * restrict s2);<td>B.23 String handling
-<tr><td>missing<td>&#160;<td>&#160;<td>strncpy_s<td>string.h<td>errno_t strncpy_s(char * restrict s1, rsize_t s1max, const char * restrict s2, rsize_t n);<td>B.23 String handling
-<tr><td>missing<td>&#160;<td>&#160;<td>strcat_s<td>string.h<td>errno_t strcat_s(char * restrict s1, rsize_t s1max, const char * restrict s2);<td>B.23 String handling
-<tr><td>missing<td>&#160;<td>&#160;<td>strncat_s<td>string.h<td>errno_t strncat_s(char * restrict s1, rsize_t s1max, const char * restrict s2, rsize_t n);<td>B.23 String handling
-<tr><td>missing<td>&#160;<td>&#160;<td>strtok_s<td>string.h<td>char *strtok_s(char * restrict s1, rsize_t * restrict s1max, const char * restrict s2, char ** restrict ptr);<td>B.23 String handling
-<tr><td>missing<td>&#160;<td>&#160;<td>memset_s<td>string.h<td>errno_t memset_s(void *s, rsize_t smax, int c, rsize_t n)<td>B.23 String handling
-<tr><td>missing<td>&#160;<td>&#160;<td>strerror_s<td>string.h<td>errno_t strerror_s(char *s, rsize_t maxsize, errno_t errnum);<td>B.23 String handling
-<tr><td>missing<td>&#160;<td>&#160;<td>strerrorlen_s<td>string.h<td>size_t strerrorlen_s(errno_t errnum);<td>B.23 String handling
-<tr><td>missing<td>&#160;<td>&#160;<td>strnlen_s<td>string.h<td>size_t strnlen_s(const char *s, size_t maxsize);<td>B.23 String handling
 <tr><td>&#160;<td>T<td><a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/math.h#n106">p</a> <a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/tgmath.h#n126">d</a> <a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/tgmath.h#n189">d</a> <td>acos<td>tgmath.h<td>&#160;<td>B.24 Type-generic math
 <tr><td>&#160;<td>T<td><a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/math.h#n314">p</a> <a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/tgmath.h#n181">d</a> <a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/tgmath.h#n244">d</a> <td>sqrt<td>tgmath.h<td>&#160;<td>B.24 Type-generic math
 <tr><td>&#160;<td>T<td><a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/math.h#n198">p</a> <a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/tgmath.h#n154">d</a> <a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/tgmath.h#n217">d</a> <td>fmod<td>tgmath.h<td>&#160;<td>B.24 Type-generic math
 <tr><td>&#160;<td>T<td><a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/time.h#n52">p</a> <td>gmtime<td>time.h<td>struct tm *gmtime(const time_t *timer);<td>B.26 Date and time
 <tr><td>&#160;<td>T<td><a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/time.h#n53">p</a> <td>localtime<td>time.h<td>struct tm *localtime(const time_t *timer);<td>B.26 Date and time
 <tr><td>&#160;<td>T<td><a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/time.h#n51">p</a> <td>strftime<td>time.h<td>size_t strftime(char * restrict s, size_t maxsize, const char * restrict format, const struct tm * restrict timeptr);<td>B.26 Date and time
-<tr><td>missing<td>&#160;<td>&#160;<td>errno_t<td>time.h<td>&#160;<td>B.26 Date and time
-<tr><td>missing<td>&#160;<td>&#160;<td>rsize_t<td>time.h<td>&#160;<td>B.26 Date and time
-<tr><td>missing<td>&#160;<td>&#160;<td>asctime_s<td>time.h<td>errno_t asctime_s(char *s, rsize_t maxsize, const struct tm *timeptr);<td>B.26 Date and time
-<tr><td>missing<td>&#160;<td>&#160;<td>ctime_s<td>time.h<td>errno_t ctime_s(char *s, rsize_t maxsize, const time_t *timer);<td>B.26 Date and time
-<tr><td>missing<td>&#160;<td>&#160;<td>gmtime_s<td>time.h<td>struct tm *gmtime_s(const time_t * restrict timer, struct tm * restrict result);<td>B.26 Date and time
-<tr><td>missing<td>&#160;<td>&#160;<td>localtime_s<td>time.h<td>struct tm *localtime_s(const time_t * restrict timer, struct tm * restrict result);<td>B.26 Date and time
 <tr><td>&#160;<td>&#160;<td><a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/wchar.h#n40">t</a> <td>mbstate_t<td>uchar.h<td>&#160;<td>B.27 Unicode utilities
 <tr><td>&#160;<td>&#160;<td>t <td>size_t<td>uchar.h<td>&#160;<td>B.27 Unicode utilities
 <tr><td>missing<td>&#160;<td>&#160;<td>char16_t<td>uchar.h<td>&#160;<td>B.27 Unicode utilities
 <tr><td>&#160;<td>T<td><a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/wchar.h#n79">p</a> <td>wcrtomb<td>wchar.h<td>size_t wcrtomb(char * restrict s, wchar_t wc, mbstate_t * restrict ps);<td>B.28 Extended multibyte/wide character utilities
 <tr><td>&#160;<td>T<td><a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/wchar.h#n83">p</a> <td>mbsrtowcs<td>wchar.h<td>size_t mbsrtowcs(wchar_t * restrict dst, const char ** restrict src, size_t len, mbstate_t * restrict ps);<td>B.28 Extended multibyte/wide character utilities
 <tr><td>&#160;<td>T<td><a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/wchar.h#n84">p</a> <td>wcsrtombs<td>wchar.h<td>size_t wcsrtombs(char * restrict dst, const wchar_t ** restrict src, size_t len, mbstate_t * restrict ps);<td>B.28 Extended multibyte/wide character utilities
-<tr><td>missing<td>&#160;<td>&#160;<td>errno_t<td>wchar.h<td>&#160;<td>B.28 Extended multibyte/wide character utilities
-<tr><td>missing<td>&#160;<td>&#160;<td>rsize_t<td>wchar.h<td>&#160;<td>B.28 Extended multibyte/wide character utilities
-<tr><td>missing<td>&#160;<td>&#160;<td>fwprintf_s<td>wchar.h<td>int fwprintf_s(FILE * restrict stream, const wchar_t * restrict format, ...);<td>B.28 Extended multibyte/wide character utilities
-<tr><td>missing<td>&#160;<td>&#160;<td>fwscanf_s<td>wchar.h<td>int fwscanf_s(FILE * restrict stream, const wchar_t * restrict format, ...);<td>B.28 Extended multibyte/wide character utilities
-<tr><td>missing<td>&#160;<td>&#160;<td>snwprintf_s<td>wchar.h<td>int snwprintf_s(wchar_t * restrict s, rsize_t n, const wchar_t * restrict format, ...);<td>B.28 Extended multibyte/wide character utilities
-<tr><td>missing<td>&#160;<td>&#160;<td>swprintf_s<td>wchar.h<td>int swprintf_s(wchar_t * restrict s, rsize_t n, const wchar_t * restrict format, ...);<td>B.28 Extended multibyte/wide character utilities
-<tr><td>missing<td>&#160;<td>&#160;<td>swscanf_s<td>wchar.h<td>int swscanf_s(const wchar_t * restrict s, const wchar_t * restrict format, ...);<td>B.28 Extended multibyte/wide character utilities
-<tr><td>missing<td>&#160;<td>&#160;<td>vfwprintf_s<td>wchar.h<td>int vfwprintf_s(FILE * restrict stream, const wchar_t * restrict format, va_list arg);<td>B.28 Extended multibyte/wide character utilities
-<tr><td>missing<td>&#160;<td>&#160;<td>vfwscanf_s<td>wchar.h<td>int vfwscanf_s(FILE * restrict stream, const wchar_t * restrict format, va_list arg);<td>B.28 Extended multibyte/wide character utilities
-<tr><td>missing<td>&#160;<td>&#160;<td>vsnwprintf_s<td>wchar.h<td>int vsnwprintf_s(wchar_t * restrict s, rsize_t n, const wchar_t * restrict format, va_list arg);<td>B.28 Extended multibyte/wide character utilities
-<tr><td>missing<td>&#160;<td>&#160;<td>vswprintf_s<td>wchar.h<td>int vswprintf_s(wchar_t * restrict s, rsize_t n, const wchar_t * restrict format, va_list arg);<td>B.28 Extended multibyte/wide character utilities
-<tr><td>missing<td>&#160;<td>&#160;<td>vswscanf_s<td>wchar.h<td>int vswscanf_s(const wchar_t * restrict s, const wchar_t * restrict format, va_list arg);<td>B.28 Extended multibyte/wide character utilities
-<tr><td>missing<td>&#160;<td>&#160;<td>vwprintf_s<td>wchar.h<td>int vwprintf_s(const wchar_t * restrict format, va_list arg);<td>B.28 Extended multibyte/wide character utilities
-<tr><td>missing<td>&#160;<td>&#160;<td>vwscanf_s<td>wchar.h<td>int vwscanf_s(const wchar_t * restrict format, va_list arg);<td>B.28 Extended multibyte/wide character utilities
-<tr><td>missing<td>&#160;<td>&#160;<td>wprintf_s<td>wchar.h<td>int wprintf_s(const wchar_t * restrict format, ...);<td>B.28 Extended multibyte/wide character utilities
-<tr><td>missing<td>&#160;<td>&#160;<td>wscanf_s<td>wchar.h<td>int wscanf_s(const wchar_t * restrict format, ...);<td>B.28 Extended multibyte/wide character utilities
-<tr><td>missing<td>&#160;<td>&#160;<td>wcscpy_s<td>wchar.h<td>errno_t wcscpy_s(wchar_t * restrict s1, rsize_t s1max, const wchar_t * restrict s2);<td>B.28 Extended multibyte/wide character utilities
-<tr><td>missing<td>&#160;<td>&#160;<td>wcsncpy_s<td>wchar.h<td>errno_t wcsncpy_s(wchar_t * restrict s1, rsize_t s1max, const wchar_t * restrict s2, rsize_t n);<td>B.28 Extended multibyte/wide character utilities
-<tr><td>missing<td>&#160;<td>&#160;<td>wmemcpy_s<td>wchar.h<td>errno_t wmemcpy_s(wchar_t * restrict s1, rsize_t s1max, const wchar_t * restrict s2, rsize_t n);<td>B.28 Extended multibyte/wide character utilities
-<tr><td>missing<td>&#160;<td>&#160;<td>wmemmove_s<td>wchar.h<td>errno_t wmemmove_s(wchar_t *s1, rsize_t s1max, const wchar_t *s2, rsize_t n);<td>B.28 Extended multibyte/wide character utilities
-<tr><td>missing<td>&#160;<td>&#160;<td>wcscat_s<td>wchar.h<td>errno_t wcscat_s(wchar_t * restrict s1, rsize_t s1max, const wchar_t * restrict s2);<td>B.28 Extended multibyte/wide character utilities
-<tr><td>missing<td>&#160;<td>&#160;<td>wcsncat_s<td>wchar.h<td>errno_t wcsncat_s(wchar_t * restrict s1, rsize_t s1max, const wchar_t * restrict s2, rsize_t n);<td>B.28 Extended multibyte/wide character utilities
-<tr><td>missing<td>&#160;<td>&#160;<td>wcstok_s<td>wchar.h<td>wchar_t *wcstok_s(wchar_t * restrict s1, rsize_t * restrict s1max, const wchar_t * restrict s2, wchar_t ** restrict ptr);<td>B.28 Extended multibyte/wide character utilities
-<tr><td>missing<td>&#160;<td>&#160;<td>wcsnlen_s<td>wchar.h<td>size_t wcsnlen_s(const wchar_t *s, size_t maxsize);<td>B.28 Extended multibyte/wide character utilities
-<tr><td>missing<td>&#160;<td>&#160;<td>wcrtomb_s<td>wchar.h<td>errno_t wcrtomb_s(size_t * restrict retval, char * restrict s, rsize_t smax, wchar_t wc, mbstate_t * restrict ps);<td>B.28 Extended multibyte/wide character utilities
-<tr><td>missing<td>&#160;<td>&#160;<td>mbsrtowcs_s<td>wchar.h<td>errno_t mbsrtowcs_s(size_t * restrict retval, wchar_t * restrict dst, rsize_t dstmax, const char ** restrict src, rsize_t len, mbstate_t * restrict ps);<td>B.28 Extended multibyte/wide character utilities
-<tr><td>missing<td>&#160;<td>&#160;<td>wcsrtombs_s<td>wchar.h<td>errno_t wcsrtombs_s(size_t * restrict retval, char * restrict dst, rsize_t dstmax, const wchar_t ** restrict src, rsize_t len, mbstate_t * restrict ps);<td>B.28 Extended multibyte/wide character utilities
 <tr><td>&#160;<td>&#160;<td>t <td>wint_t<td>wctype.h<td>&#160;<td>B.29 Wide character classification and mapping utilities
 <tr><td>&#160;<td>&#160;<td>t <td>wctrans_t<td>wctype.h<td>&#160;<td>B.29 Wide character classification and mapping utilities
 <tr><td>&#160;<td>&#160;<td>t <td>wctype_t<td>wctype.h<td>&#160;<td>B.29 Wide character classification and mapping utilities
 <tr><td>&#160;<td>T<td><a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/wctype.h#n37">p</a> <td>towctrans<td>wctype.h<td>wint_t towctrans(wint_t wc, wctrans_t desc);<td>B.29 Wide character classification and mapping utilities
 <tr><td>&#160;<td>T<td><a href="http://git.etalabs.net/cgi-bin/cgit.cgi?url=musl/tree/include/wctype.h#n40">p</a> <td>wctrans<td>wctype.h<td>wctrans_t wctrans(const char *property);<td>B.29 Wide character classification and mapping utilities
 </table>
-<h4>stats</h4><ul><li>missing: 233<li>nosym: 0<li>nodecl: 0</ul>
+<h4>stats</h4><ul><li>missing: 149<li>nosym: 0<li>nodecl: 0</ul>
index c5e7159..d2929dd 100755 (executable)
@@ -50,6 +50,7 @@ BEGIN {
        legend = legend "<li>p - function prototype"
        legend = legend "<li>x - external and forward variable declaration"
        legend = legend "</ul></ul>"
+       legend = legend "<p>(Annex K apis are excluded: -D__STDC_WANT_LIB_EXT1__=0 is assumed)"
 
        print "<h3>musl vs c11 api</h3>"
        print commit