summaryrefslogtreecommitdiff
path: root/libc/include
diff options
context:
space:
mode:
Diffstat (limited to 'libc/include')
-rw-r--r--libc/include/CMakeLists.txt168
-rw-r--r--libc/include/__llvm-libc-common.h19
-rw-r--r--libc/include/arpa/inet.yaml31
-rw-r--r--libc/include/assert.yaml16
-rw-r--r--libc/include/complex.yaml138
-rw-r--r--libc/include/ctype.yaml202
-rw-r--r--libc/include/dirent.yaml47
-rw-r--r--libc/include/dlfcn.yaml40
-rw-r--r--libc/include/elf.yaml9
-rw-r--r--libc/include/errno.yaml11
-rw-r--r--libc/include/fcntl.yaml41
-rw-r--r--libc/include/features.yaml9
-rw-r--r--libc/include/fenv.yaml108
-rw-r--r--libc/include/float.yaml9
-rw-r--r--libc/include/inttypes.yaml37
-rw-r--r--libc/include/limits.yaml9
-rw-r--r--libc/include/link.yaml9
-rw-r--r--libc/include/locale.yaml42
-rw-r--r--libc/include/malloc.yaml14
-rw-r--r--libc/include/math.yaml2630
-rw-r--r--libc/include/pthread.yaml434
-rw-r--r--libc/include/sched.yaml89
-rw-r--r--libc/include/search.yaml71
-rw-r--r--libc/include/setjmp.yaml21
-rw-r--r--libc/include/signal.yaml83
-rw-r--r--libc/include/spawn.yaml59
-rw-r--r--libc/include/stdbit.yaml397
-rw-r--r--libc/include/stdckdint.yaml9
-rw-r--r--libc/include/stdfix.yaml308
-rw-r--r--libc/include/stdint.yaml9
-rw-r--r--libc/include/stdio.yaml398
-rw-r--r--libc/include/stdlib.yaml342
-rw-r--r--libc/include/string.yaml320
-rw-r--r--libc/include/strings.yaml59
-rw-r--r--libc/include/sys/auxv.yaml13
-rw-r--r--libc/include/sys/epoll.yaml61
-rw-r--r--libc/include/sys/ioctl.yaml8
-rw-r--r--libc/include/sys/mman.yaml135
-rw-r--r--libc/include/sys/prctl.yaml17
-rw-r--r--libc/include/sys/random.yaml17
-rw-r--r--libc/include/sys/resource.yaml21
-rw-r--r--libc/include/sys/select.yaml23
-rw-r--r--libc/include/sys/sendfile.yaml19
-rw-r--r--libc/include/sys/socket.yaml119
-rw-r--r--libc/include/sys/stat.yaml78
-rw-r--r--libc/include/sys/statvfs.yaml24
-rw-r--r--libc/include/sys/syscall.yaml8
-rw-r--r--libc/include/sys/time.yaml8
-rw-r--r--libc/include/sys/types.yaml32
-rw-r--r--libc/include/sys/utsname.yaml14
-rw-r--r--libc/include/sys/wait.yaml34
-rw-r--r--libc/include/termios.yaml86
-rw-r--r--libc/include/threads.yaml162
-rw-r--r--libc/include/time.yaml106
-rw-r--r--libc/include/uchar.yaml14
-rw-r--r--libc/include/unistd.yaml323
-rw-r--r--libc/include/wchar.yaml17
57 files changed, 7414 insertions, 113 deletions
diff --git a/libc/include/CMakeLists.txt b/libc/include/CMakeLists.txt
index 3a05c01abba5..568bb05d9230 100644
--- a/libc/include/CMakeLists.txt
+++ b/libc/include/CMakeLists.txt
@@ -19,11 +19,10 @@ add_header(
# TODO: Can we simplify this macro expansion?
# https://github.com/llvm/llvm-project/issues/117254
-macro(add_header_macro TARGET_NAME YAML_FILE DEF_FILE GEN_HDR DEPENDS)
+macro(add_header_macro TARGET_NAME YAML_FILE GEN_HDR DEPENDS)
add_gen_header(
${TARGET_NAME}
YAML_FILE ${YAML_FILE}
- DEF_FILE ${DEF_FILE}
GEN_HDR ${GEN_HDR}
${DEPENDS}
${ARGN}
@@ -32,8 +31,7 @@ endmacro()
add_header_macro(
ctype
- ../libc/hdrgen/yaml/ctype.yaml
- ctype.h.def
+ ../libc/include/ctype.yaml
ctype.h
DEPENDS
.llvm_libc_common_h
@@ -42,8 +40,7 @@ add_header_macro(
add_header_macro(
dirent
- ../libc/hdrgen/yaml/dirent.yaml
- dirent.h.def
+ ../libc/include/dirent.yaml
dirent.h
DEPENDS
.llvm_libc_common_h
@@ -54,8 +51,7 @@ add_header_macro(
add_header_macro(
fcntl
- ../libc/hdrgen/yaml/fcntl.yaml
- fcntl.h.def
+ ../libc/include/fcntl.yaml
fcntl.h
DEPENDS
.llvm-libc-macros.fcntl_macros
@@ -70,8 +66,7 @@ add_header_macro(
add_header_macro(
dlfcn
- ../libc/hdrgen/yaml/dlfcn.yaml
- dlfcn.h.def
+ ../libc/include/dlfcn.yaml
dlfcn.h
DEPENDS
.llvm-libc-macros.dlfcn_macros
@@ -80,8 +75,7 @@ add_header_macro(
add_header_macro(
features
- ../libc/hdrgen/yaml/features.yaml
- features.h.def
+ ../libc/include/features.yaml
features.h
DEPENDS
.llvm_libc_common_h
@@ -90,8 +84,7 @@ add_header_macro(
add_header_macro(
fenv
- ../libc/hdrgen/yaml/fenv.yaml
- fenv.h.def
+ ../libc/include/fenv.yaml
fenv.h
DEPENDS
.llvm_libc_common_h
@@ -102,8 +95,7 @@ add_header_macro(
add_header_macro(
inttypes
- ../libc/hdrgen/yaml/inttypes.yaml
- inttypes.h.def
+ ../libc/include/inttypes.yaml
inttypes.h
DEPENDS
.llvm_libc_common_h
@@ -113,8 +105,7 @@ add_header_macro(
add_header_macro(
float
- ../libc/hdrgen/yaml/float.yaml
- float.h.def
+ ../libc/include/float.yaml
float.h
DEPENDS
.llvm-libc-macros.float_macros
@@ -122,8 +113,7 @@ add_header_macro(
add_header_macro(
stdint
- ../libc/hdrgen/yaml/stdint.yaml
- stdint.h.def
+ ../libc/include/stdint.yaml
stdint.h
DEPENDS
.llvm-libc-macros.stdint_macros
@@ -131,8 +121,7 @@ add_header_macro(
add_header_macro(
limits
- ../libc/hdrgen/yaml/limits.yaml
- limits.h.def
+ ../libc/include/limits.yaml
limits.h
DEPENDS
.llvm-libc-macros.limits_macros
@@ -140,8 +129,7 @@ add_header_macro(
add_header_macro(
malloc
- ../libc/hdrgen/yaml/malloc.yaml
- malloc.h.def
+ ../libc/include/malloc.yaml
malloc.h
DEPENDS
.llvm_libc_common_h
@@ -150,8 +138,7 @@ add_header_macro(
add_header_macro(
math
- ../libc/hdrgen/yaml/math.yaml
- math.h.def
+ ../libc/include/math.yaml
math.h
DEPENDS
.llvm_libc_common_h
@@ -165,8 +152,7 @@ add_header_macro(
add_header_macro(
stdfix
- ../libc/hdrgen/yaml/stdfix.yaml
- stdfix.h.def
+ ../libc/include/stdfix.yaml
stdfix.h
DEPENDS
.llvm-libc-macros.stdfix_macros
@@ -178,8 +164,7 @@ file(MAKE_DIRECTORY ${LIBC_INCLUDE_DIR}/arpa)
add_header_macro(
arpa_inet
- ../libc/hdrgen/yaml/arpa/inet.yaml
- arpa/inet.h.def
+ ../libc/include/arpa/inet.yaml
arpa/inet.h
DEPENDS
.llvm_libc_common_h
@@ -187,8 +172,7 @@ add_header_macro(
add_header_macro(
assert
- ../libc/hdrgen/yaml/assert.yaml
- assert.h.def
+ ../libc/include/assert.yaml
assert.h
DEPENDS
.llvm_libc_common_h
@@ -197,8 +181,7 @@ add_header_macro(
add_header_macro(
complex
- ../libc/hdrgen/yaml/complex.yaml
- complex.h.def
+ ../libc/include/complex.yaml
complex.h
DEPENDS
.llvm_libc_common_h
@@ -207,8 +190,7 @@ add_header_macro(
add_header_macro(
setjmp
- ../libc/hdrgen/yaml/setjmp.yaml
- setjmp.h.def
+ ../libc/include/setjmp.yaml
setjmp.h
DEPENDS
.llvm_libc_common_h
@@ -217,8 +199,7 @@ add_header_macro(
add_header_macro(
string
- ../libc/hdrgen/yaml/string.yaml
- string.h.def
+ ../libc/include/string.yaml
string.h
DEPENDS
.llvm_libc_common_h
@@ -228,8 +209,7 @@ add_header_macro(
add_header_macro(
strings
- ../libc/hdrgen/yaml/strings.yaml
- strings.h.def
+ ../libc/include/strings.yaml
strings.h
DEPENDS
.llvm_libc_common_h
@@ -238,8 +218,7 @@ add_header_macro(
add_header_macro(
search
- ../libc/hdrgen/yaml/search.yaml
- search.h.def
+ ../libc/include/search.yaml
search.h
DEPENDS
.llvm_libc_common_h
@@ -252,8 +231,7 @@ add_header_macro(
add_header_macro(
time
- ../libc/hdrgen/yaml/time.yaml
- time.h.def
+ ../libc/include/time.yaml
time.h
DEPENDS
.llvm_libc_common_h
@@ -268,8 +246,7 @@ add_header_macro(
add_header_macro(
threads
- ../libc/hdrgen/yaml/threads.yaml
- threads.h.def
+ ../libc/include/threads.yaml
threads.h
DEPENDS
.llvm_libc_common_h
@@ -285,8 +262,7 @@ add_header_macro(
add_header_macro(
errno
- ../libc/hdrgen/yaml/errno.yaml
- errno.h.def
+ ../libc/include/errno.yaml
errno.h
DEPENDS
.llvm-libc-macros.generic_error_number_macros
@@ -295,8 +271,7 @@ add_header_macro(
add_header_macro(
signal
- ../libc/hdrgen/yaml/signal.yaml
- signal.h.def
+ ../libc/include/signal.yaml
signal.h
DEPENDS
.llvm-libc-macros.signal_macros
@@ -311,8 +286,7 @@ add_header_macro(
add_header_macro(
stdbit
- ../libc/hdrgen/yaml/stdbit.yaml
- stdbit.h.def
+ ../libc/include/stdbit.yaml
stdbit.h
DEPENDS
.llvm_libc_common_h
@@ -321,8 +295,7 @@ add_header_macro(
add_header_macro(
stdckdint
- ../libc/hdrgen/yaml/stdckdint.yaml
- stdckdint.h.def
+ ../libc/include/stdckdint.yaml
stdckdint.h
DEPENDS
.llvm_libc_common_h
@@ -331,8 +304,7 @@ add_header_macro(
add_header_macro(
stdio
- ../libc/hdrgen/yaml/stdio.yaml
- stdio.h.def
+ ../libc/include/stdio.yaml
stdio.h
DEPENDS
.llvm-libc-macros.file_seek_macros
@@ -347,8 +319,7 @@ add_header_macro(
add_header_macro(
stdlib
- ../libc/hdrgen/yaml/stdlib.yaml
- stdlib.h.def
+ ../libc/include/stdlib.yaml
stdlib.h
DEPENDS
.llvm_libc_common_h
@@ -366,8 +337,7 @@ add_header_macro(
add_header_macro(
unistd
- ../libc/hdrgen/yaml/unistd.yaml
- unistd.h.def
+ ../libc/include/unistd.yaml
unistd.h
DEPENDS
.llvm_libc_common_h
@@ -385,8 +355,7 @@ add_header_macro(
add_header_macro(
pthread
- ../libc/hdrgen/yaml/pthread.yaml
- pthread.h.def
+ ../libc/include/pthread.yaml
pthread.h
DEPENDS
.llvm-libc-macros.pthread_macros
@@ -409,8 +378,7 @@ add_header_macro(
add_header_macro(
sched
- ../libc/hdrgen/yaml/sched.yaml
- sched.h.def
+ ../libc/include/sched.yaml
sched.h
DEPENDS
.llvm_libc_common_h
@@ -426,8 +394,7 @@ add_header_macro(
add_header_macro(
spawn
- ../libc/hdrgen/yaml/spawn.yaml
- spawn.h.def
+ ../libc/include/spawn.yaml
spawn.h
DEPENDS
.llvm_libc_common_h
@@ -439,8 +406,7 @@ add_header_macro(
add_header_macro(
link
- ../libc/hdrgen/yaml/link.yaml
- link.h.def
+ ../libc/include/link.yaml
link.h
DEPENDS
.llvm_libc_common_h
@@ -449,8 +415,7 @@ add_header_macro(
add_header_macro(
elf
- ../libc/hdrgen/yaml/elf.yaml
- elf.h.def
+ ../libc/include/elf.yaml
elf.h
DEPENDS
.llvm-libc-macros.elf_macros
@@ -463,8 +428,7 @@ file(MAKE_DIRECTORY ${LIBC_INCLUDE_DIR}/sys)
add_header_macro(
sys_auxv
- ../libc/hdrgen/yaml/sys/auxv.yaml
- sys/auxv.h.def
+ ../libc/include/sys/auxv.yaml
sys/auxv.h
DEPENDS
.llvm_libc_common_h
@@ -473,8 +437,7 @@ add_header_macro(
add_header_macro(
sys_epoll
- ../libc/hdrgen/yaml/sys/epoll.yaml
- sys/epoll.h.def
+ ../libc/include/sys/epoll.yaml
sys/epoll.h
DEPENDS
.llvm_libc_common_h
@@ -486,8 +449,7 @@ add_header_macro(
add_header_macro(
sys_ioctl
- ../libc/hdrgen/yaml/sys/ioctl.yaml
- sys/ioctl.h.def
+ ../libc/include/sys/ioctl.yaml
sys/ioctl.h
DEPENDS
.llvm_libc_common_h
@@ -496,8 +458,7 @@ add_header_macro(
add_header_macro(
sys_mman
- ../libc/hdrgen/yaml/sys/mman.yaml
- sys/mman.h.def
+ ../libc/include/sys/mman.yaml
sys/mman.h
DEPENDS
.llvm_libc_common_h
@@ -509,8 +470,7 @@ add_header_macro(
add_header_macro(
sys_prctl
- ../libc/hdrgen/yaml/sys/prctl.yaml
- sys/prctl.h.def
+ ../libc/include/sys/prctl.yaml
sys/prctl.h
DEPENDS
.llvm_libc_common_h
@@ -526,8 +486,7 @@ add_header(
add_header_macro(
sys_random
- ../libc/hdrgen/yaml/sys/random.yaml
- sys/random.h.def
+ ../libc/include/sys/random.yaml
sys/random.h
DEPENDS
.llvm_libc_common_h
@@ -538,8 +497,7 @@ add_header_macro(
add_header_macro(
sys_resource
- ../libc/hdrgen/yaml/sys/resource.yaml
- sys/resource.h.def
+ ../libc/include/sys/resource.yaml
sys/resource.h
DEPENDS
.llvm_libc_common_h
@@ -550,8 +508,7 @@ add_header_macro(
add_header_macro(
sys_stat
- ../libc/hdrgen/yaml/sys/stat.yaml
- sys/stat.h.def
+ ../libc/include/sys/stat.yaml
sys/stat.h
DEPENDS
.llvm_libc_common_h
@@ -572,8 +529,7 @@ add_header_macro(
add_header_macro(
sys_select
- ../libc/hdrgen/yaml/sys/select.yaml
- sys/select.h.def
+ ../libc/include/sys/select.yaml
sys/select.h
DEPENDS
.llvm_libc_common_h
@@ -588,8 +544,7 @@ add_header_macro(
add_header_macro(
sys_sendfile
- ../libc/hdrgen/yaml/sys/sendfile.yaml
- sys/sendfile.h.def
+ ../libc/include/sys/sendfile.yaml
sys/sendfile.h
DEPENDS
.llvm_libc_common_h
@@ -600,8 +555,7 @@ add_header_macro(
add_header_macro(
sys_socket
- ../libc/hdrgen/yaml/sys/socket.yaml
- sys/socket.h.def
+ ../libc/include/sys/socket.yaml
sys/socket.h
DEPENDS
.llvm_libc_common_h
@@ -616,8 +570,7 @@ add_header_macro(
add_header_macro(
sys_statvfs
- ../libc/hdrgen/yaml/sys/statvfs.yaml
- sys/statvfs.h.def
+ ../libc/include/sys/statvfs.yaml
sys/statvfs.h
DEPENDS
.llvm_libc_common_h
@@ -626,16 +579,14 @@ add_header_macro(
add_header_macro(
sys_syscall
- ../libc/hdrgen/yaml/sys/syscall.yaml
- sys/syscall.h.def
+ ../libc/include/sys/syscall.yaml
sys/syscall.h
DEPENDS
)
add_header_macro(
sys_time
- ../libc/hdrgen/yaml/sys/time.yaml
- sys/time.h.def
+ ../libc/include/sys/time.yaml
sys/time.h
DEPENDS
.llvm_libc_common_h
@@ -645,8 +596,7 @@ add_header_macro(
add_header_macro(
sys_types
- ../libc/hdrgen/yaml/sys/types.yaml
- sys/types.h.def
+ ../libc/include/sys/types.yaml
sys/types.h
DEPENDS
.llvm_libc_common_h
@@ -675,8 +625,7 @@ add_header_macro(
add_header_macro(
sys_utsname
- ../libc/hdrgen/yaml/sys/utsname.yaml
- sys/utsname.h.def
+ ../libc/include/sys/utsname.yaml
sys/utsname.h
DEPENDS
.llvm_libc_common_h
@@ -685,8 +634,7 @@ add_header_macro(
add_header_macro(
sys_wait
- ../libc/hdrgen/yaml/sys/wait.yaml
- sys/wait.h.def
+ ../libc/include/sys/wait.yaml
sys/wait.h
DEPENDS
.llvm_libc_common_h
@@ -698,8 +646,7 @@ add_header_macro(
add_header_macro(
termios
- ../libc/hdrgen/yaml/termios.yaml
- termios.h.def
+ ../libc/include/termios.yaml
termios.h
DEPENDS
.llvm_libc_common_h
@@ -713,8 +660,7 @@ add_header_macro(
add_header_macro(
uchar
- ../libc/hdrgen/yaml/uchar.yaml
- uchar.h.def
+ ../libc/include/uchar.yaml
uchar.h
DEPENDS
.llvm_libc_common_h
@@ -726,8 +672,7 @@ add_header_macro(
add_header_macro(
wchar
- ../libc/hdrgen/yaml/wchar.yaml
- wchar.h.def
+ ../libc/include/wchar.yaml
wchar.h
DEPENDS
.llvm_libc_common_h
@@ -740,8 +685,7 @@ add_header_macro(
add_header_macro(
locale
- ../libc/hdrgen/yaml/locale.yaml
- locale.h.def
+ ../libc/include/locale.yaml
locale.h
DEPENDS
.llvm_libc_common_h
diff --git a/libc/include/__llvm-libc-common.h b/libc/include/__llvm-libc-common.h
index d54ee7b9f91f..c63eb134a5e5 100644
--- a/libc/include/__llvm-libc-common.h
+++ b/libc/include/__llvm-libc-common.h
@@ -50,7 +50,24 @@
#define __END_C_DECLS
#undef __restrict
-#define __restrict restrict // C99 and above support the restrict keyword.
+#if __STDC_VERSION__ >= 199901L
+// C99 and above support the restrict keyword.
+#define __restrict restrict
+#elif !defined(__GNUC__)
+// GNU-compatible compilers accept the __ spelling in all modes.
+// Otherwise, omit the qualifier for pure C89 compatibility.
+#define __restrict
+#endif
+
+#undef _Noreturn
+#if __STDC_VERSION__ >= 201112L
+// In C11 and later, _Noreturn is a keyword.
+#elif defined(__GNUC__)
+// GNU-compatible compilers have an equivalent attribute.
+#define _Noreturn __attribute__((__noreturn__))
+#else
+#define _Noreturn
+#endif
#undef __NOEXCEPT
#ifdef __GNUC__
diff --git a/libc/include/arpa/inet.yaml b/libc/include/arpa/inet.yaml
new file mode 100644
index 000000000000..10cd56d6ce78
--- /dev/null
+++ b/libc/include/arpa/inet.yaml
@@ -0,0 +1,31 @@
+header: arpa/inet.h
+header_template: inet.h.def
+macros: []
+types: []
+enums: []
+objects: []
+functions:
+ - name: htonl
+ standards:
+ - POSIX
+ return_type: uint32_t
+ arguments:
+ - type: uint32_t
+ - name: htons
+ standards:
+ - POSIX
+ return_type: uint16_t
+ arguments:
+ - type: uint16_t
+ - name: ntohl
+ standards:
+ - POSIX
+ return_type: uint32_t
+ arguments:
+ - type: uint32_t
+ - name: ntohs
+ standards:
+ - POSIX
+ return_type: uint16_t
+ arguments:
+ - type: uint16_t
diff --git a/libc/include/assert.yaml b/libc/include/assert.yaml
new file mode 100644
index 000000000000..1a3bdeda7e54
--- /dev/null
+++ b/libc/include/assert.yaml
@@ -0,0 +1,16 @@
+header: assert.h
+header_template: assert.h.def
+macros: []
+types: []
+enums: []
+objects: []
+functions:
+ - name: __assert_fail
+ standards:
+ - llvm_libc_ext
+ return_type: _Noreturn void
+ arguments:
+ - type: const char *
+ - type: const char *
+ - type: unsigned
+ - type: const char *
diff --git a/libc/include/complex.yaml b/libc/include/complex.yaml
new file mode 100644
index 000000000000..05318480a02f
--- /dev/null
+++ b/libc/include/complex.yaml
@@ -0,0 +1,138 @@
+header: complex.h
+header_template: complex.h.def
+macros: []
+types:
+ - type_name: cfloat16
+ - type_name: cfloat128
+ - type_name: float128
+enums: []
+objects: []
+functions:
+ - name: cimag
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: _Complex double
+ - name: cimagf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: _Complex float
+ - name: cimagl
+ standards:
+ - stdc
+ return_type: long double
+ arguments:
+ - type: _Complex long double
+ - name: cimagf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: cfloat16
+ guard: LIBC_TYPES_HAS_CFLOAT16
+ - name: cimagf128
+ standards:
+ - stdc
+ return_type: float128
+ arguments:
+ - type: cfloat128
+ guard: LIBC_TYPES_HAS_CFLOAT128
+ - name: creal
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: _Complex double
+ - name: crealf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: _Complex float
+ - name: creall
+ standards:
+ - stdc
+ return_type: long double
+ arguments:
+ - type: _Complex long double
+ - name: crealf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: cfloat16
+ guard: LIBC_TYPES_HAS_CFLOAT16
+ - name: crealf128
+ standards:
+ - stdc
+ return_type: float128
+ arguments:
+ - type: cfloat128
+ guard: LIBC_TYPES_HAS_CFLOAT128
+ - name: conj
+ standards:
+ - stdc
+ return_type: _Complex double
+ arguments:
+ - type: _Complex double
+ - name: conjf
+ standards:
+ - stdc
+ return_type: _Complex float
+ arguments:
+ - type: _Complex float
+ - name: conjl
+ standards:
+ - stdc
+ return_type: _Complex long double
+ arguments:
+ - type: _Complex long double
+ - name: conjf16
+ standards:
+ - stdc
+ return_type: cfloat16
+ arguments:
+ - type: cfloat16
+ guard: LIBC_TYPES_HAS_CFLOAT16
+ - name: conjf128
+ standards:
+ - stdc
+ return_type: cfloat128
+ arguments:
+ - type: cfloat128
+ guard: LIBC_TYPES_HAS_CFLOAT128
+ - name: cproj
+ standards:
+ - stdc
+ return_type: _Complex double
+ arguments:
+ - type: _Complex double
+ - name: cprojf
+ standards:
+ - stdc
+ return_type: _Complex float
+ arguments:
+ - type: _Complex float
+ - name: cprojl
+ standards:
+ - stdc
+ return_type: _Complex long double
+ arguments:
+ - type: _Complex long double
+ - name: cprojf16
+ standards:
+ - stdc
+ return_type: cfloat16
+ arguments:
+ - type: cfloat16
+ guard: LIBC_TYPES_HAS_CFLOAT16
+ - name: cprojf128
+ standards:
+ - stdc
+ return_type: cfloat128
+ arguments:
+ - type: cfloat128
+ guard: LIBC_TYPES_HAS_CFLOAT128
diff --git a/libc/include/ctype.yaml b/libc/include/ctype.yaml
new file mode 100644
index 000000000000..6238f1b88998
--- /dev/null
+++ b/libc/include/ctype.yaml
@@ -0,0 +1,202 @@
+header: ctype.h
+header_template: ctype.h.def
+macros: []
+types:
+ - type_name: locale_t
+enums: []
+objects: []
+functions:
+ - name: isalnum
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: int
+ - name: isalpha
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: int
+ - name: isascii
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: int
+ - name: isblank
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: int
+ - name: iscntrl
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: int
+ - name: isdigit
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: int
+ - name: isgraph
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: int
+ - name: islower
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: int
+ - name: isprint
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: int
+ - name: ispunct
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: int
+ - name: isspace
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: int
+ - name: isupper
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: int
+ - name: isxdigit
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: int
+ - name: toascii
+ standards:
+ - GNUExtensions
+ return_type: int
+ arguments:
+ - type: int
+ - name: tolower
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: int
+ - name: toupper
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: int
+ - name: isalnum_l
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: int
+ - type: locale_t
+ - name: isalpha_l
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: int
+ - type: locale_t
+ - name: isblank_l
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: int
+ - type: locale_t
+ - name: iscntrl_l
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: int
+ - type: locale_t
+ - name: isdigit_l
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: int
+ - type: locale_t
+ - name: isgraph_l
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: int
+ - type: locale_t
+ - name: islower_l
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: int
+ - type: locale_t
+ - name: isprint_l
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: int
+ - type: locale_t
+ - name: ispunct_l
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: int
+ - type: locale_t
+ - name: isspace_l
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: int
+ - type: locale_t
+ - name: isupper_l
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: int
+ - type: locale_t
+ - name: isxdigit_l
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: int
+ - type: locale_t
+ - name: tolower_l
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: int
+ - type: locale_t
+ - name: toupper_l
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: int
+ - type: locale_t
diff --git a/libc/include/dirent.yaml b/libc/include/dirent.yaml
new file mode 100644
index 000000000000..3fc522fda80e
--- /dev/null
+++ b/libc/include/dirent.yaml
@@ -0,0 +1,47 @@
+header: dirent.h
+header_template: dirent.h.def
+macros: []
+types:
+ - type_name: struct_dirent
+ - type_name: DIR
+ - type_name: ino_t
+enums: []
+objects: []
+functions:
+ - name: alphasort
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: const struct dirent **
+ - type: const struct dirent **
+ - name: closedir
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: DIR *
+ - name: dirfd
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: DIR *
+ - name: fdopendir
+ standards:
+ - POSIX
+ return_type: DIR *
+ arguments:
+ - type: int
+ - name: opendir
+ standards:
+ - POSIX
+ return_type: DIR *
+ arguments:
+ - type: const char *
+ - name: readdir
+ standards:
+ - POSIX
+ return_type: struct dirent *
+ arguments:
+ - type: DIR *
diff --git a/libc/include/dlfcn.yaml b/libc/include/dlfcn.yaml
new file mode 100644
index 000000000000..9e8803cb5fa7
--- /dev/null
+++ b/libc/include/dlfcn.yaml
@@ -0,0 +1,40 @@
+header: dlfcn.h
+header_template: dlfcn.h.def
+macros:
+ - macro_name: RTLD_LAZY
+ macro_value: null
+ - macro_name: RTLD_NOW
+ macro_value: null
+ - macro_name: RTLD_GLOBAL
+ macro_value: null
+ - macro_name: RTLD_LOCAL
+ macro_value: null
+types: []
+enums: []
+objects: []
+functions:
+ - name: dlclose
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: void *
+ - name: dlerror
+ standards:
+ - POSIX
+ return_type: char *
+ arguments: []
+ - name: dlopen
+ standards:
+ - POSIX
+ return_type: void *
+ arguments:
+ - type: const char *
+ - type: int
+ - name: dlsym
+ standards:
+ - POSIX
+ return_type: void *
+ arguments:
+ - type: void *__restrict
+ - type: const char *__restrict
diff --git a/libc/include/elf.yaml b/libc/include/elf.yaml
new file mode 100644
index 000000000000..f78ae82c7785
--- /dev/null
+++ b/libc/include/elf.yaml
@@ -0,0 +1,9 @@
+header: elf.h
+header_template: elf.h.def
+standards:
+ - Linux
+macros: []
+types: []
+enums: []
+objects: []
+functions: []
diff --git a/libc/include/errno.yaml b/libc/include/errno.yaml
new file mode 100644
index 000000000000..188a9fa1211a
--- /dev/null
+++ b/libc/include/errno.yaml
@@ -0,0 +1,11 @@
+header: errno.h
+header_template: errno.h.def
+standards:
+ - stdc
+ - Linux
+ - POSIX
+macros: []
+types: []
+enums: []
+objects: []
+functions: []
diff --git a/libc/include/fcntl.yaml b/libc/include/fcntl.yaml
new file mode 100644
index 000000000000..78f93533b84d
--- /dev/null
+++ b/libc/include/fcntl.yaml
@@ -0,0 +1,41 @@
+header: fcntl.h
+header_template: fcntl.h.def
+macros: []
+types:
+ - type_name: off_t
+ - type_name: mode_t
+enums: []
+objects: []
+functions:
+ - name: creat
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: const char *
+ - type: mode_t
+ - name: fcntl
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: int
+ - type: int
+ - type: '...'
+ - name: open
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: const char *
+ - type: int
+ - type: '...'
+ - name: openat
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: int
+ - type: const char *
+ - type: int
+ - type: '...'
diff --git a/libc/include/features.yaml b/libc/include/features.yaml
new file mode 100644
index 000000000000..726320a40881
--- /dev/null
+++ b/libc/include/features.yaml
@@ -0,0 +1,9 @@
+header: features.h
+header_template: features.h.def
+standards:
+ - stdc
+macros: []
+types: []
+enums: []
+objects: []
+functions: []
diff --git a/libc/include/fenv.yaml b/libc/include/fenv.yaml
new file mode 100644
index 000000000000..1ecaf6308550
--- /dev/null
+++ b/libc/include/fenv.yaml
@@ -0,0 +1,108 @@
+header: fenv.h
+header_template: fenv.h.def
+macros: []
+types:
+ - type_name: fenv_t
+ - type_name: fexcept_t
+enums: []
+objects: []
+functions:
+ - name: feclearexcept
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: int
+ - name: fedisableexcept
+ standards:
+ - GNUExtensions
+ return_type: int
+ arguments:
+ - type: int
+ guard: null
+ - name: feenableexcept
+ standards:
+ - GNUExtensions
+ return_type: int
+ arguments:
+ - type: int
+ attributes: []
+ - name: fegetenv
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: fenv_t *
+ - name: fegetexcept
+ standards:
+ - GNUExtensions
+ return_type: int
+ arguments: []
+ - name: fegetexceptflag
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: fexcept_t *
+ - type: int
+ - name: fegetround
+ standards:
+ - stdc
+ return_type: int
+ arguments: []
+ - name: feholdexcept
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: fenv_t *
+ - name: feraiseexcept
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: int
+ - name: fesetenv
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: const fenv_t *
+ - name: fesetexcept
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: int
+ - name: fesetexceptflag
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: const fexcept_t *
+ - type: int
+ - name: fesetround
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: int
+ - name: fetestexcept
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: int
+ - name: fetestexceptflag
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: const fexcept_t *
+ - type: int
+ - name: feupdateenv
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: const fenv_t *
diff --git a/libc/include/float.yaml b/libc/include/float.yaml
new file mode 100644
index 000000000000..21df6513e77e
--- /dev/null
+++ b/libc/include/float.yaml
@@ -0,0 +1,9 @@
+header: float.h
+header_template: float.h.def
+standards:
+ - stdc
+macros: []
+types: []
+enums: []
+objects: []
+functions: []
diff --git a/libc/include/inttypes.yaml b/libc/include/inttypes.yaml
new file mode 100644
index 000000000000..d5dec5b465ba
--- /dev/null
+++ b/libc/include/inttypes.yaml
@@ -0,0 +1,37 @@
+header: inttypes.h
+header_template: inttypes.h.def
+macros: []
+types:
+ - type_name: imaxdiv_t
+enums: []
+objects: []
+functions:
+ - name: imaxabs
+ standards:
+ - stdc
+ return_type: intmax_t
+ arguments:
+ - type: intmax_t
+ - name: imaxdiv
+ standards:
+ - stdc
+ return_type: imaxdiv_t
+ arguments:
+ - type: intmax_t
+ - type: intmax_t
+ - name: strtoimax
+ standards:
+ - stdc
+ return_type: intmax_t
+ arguments:
+ - type: const char *__restrict
+ - type: char * *__restrict
+ - type: int
+ - name: strtoumax
+ standards:
+ - stdc
+ return_type: uintmax_t
+ arguments:
+ - type: const char *__restrict
+ - type: char * *__restrict
+ - type: int
diff --git a/libc/include/limits.yaml b/libc/include/limits.yaml
new file mode 100644
index 000000000000..b664041bb56c
--- /dev/null
+++ b/libc/include/limits.yaml
@@ -0,0 +1,9 @@
+header: limits.h
+header_template: limits.h.def
+standards:
+ - stdc
+macros: []
+types: []
+enums: []
+objects: []
+functions: []
diff --git a/libc/include/link.yaml b/libc/include/link.yaml
new file mode 100644
index 000000000000..1cd609e292b5
--- /dev/null
+++ b/libc/include/link.yaml
@@ -0,0 +1,9 @@
+header: link.h
+header_template: link.h.def
+standards:
+ - Linux
+macros: []
+types: []
+enums: []
+objects: []
+functions: []
diff --git a/libc/include/locale.yaml b/libc/include/locale.yaml
new file mode 100644
index 000000000000..9ff53c16398a
--- /dev/null
+++ b/libc/include/locale.yaml
@@ -0,0 +1,42 @@
+header: locale.h
+header_template: locale.h.def
+functions:
+ - name: localeconv
+ standards:
+ - stdc
+ return_type: struct lconv *
+ arguments:
+ - type: void
+ - name: duplocale
+ standards:
+ - stdc
+ return_type: locale_t
+ arguments:
+ - type: locale_t
+ - name: freelocale
+ standards:
+ - stdc
+ return_type: void
+ arguments:
+ - type: locale_t
+ - name: newlocale
+ standards:
+ - stdc
+ return_type: locale_t
+ arguments:
+ - type: int
+ - type: const char *
+ - type: locale_t
+ - name: setlocale
+ standards:
+ - stdc
+ return_type: char *
+ arguments:
+ - type: int
+ - type: const char *
+ - name: uselocale
+ standards:
+ - stdc
+ return_type: locale_t
+ arguments:
+ - type: locale_t
diff --git a/libc/include/malloc.yaml b/libc/include/malloc.yaml
new file mode 100644
index 000000000000..ec73c9090f72
--- /dev/null
+++ b/libc/include/malloc.yaml
@@ -0,0 +1,14 @@
+header: malloc.h
+header_template: malloc.h.def
+macros: []
+types: []
+enums: []
+objects: []
+functions:
+ - name: mallopt
+ standards:
+ - GNUExtensions
+ return_type: int
+ arguments:
+ - type: int
+ - type: int
diff --git a/libc/include/math.yaml b/libc/include/math.yaml
new file mode 100644
index 000000000000..831d04574567
--- /dev/null
+++ b/libc/include/math.yaml
@@ -0,0 +1,2630 @@
+header: math.h
+header_template: math.h.def
+macros: []
+types:
+ - type_name: float_t
+ - type_name: double_t
+ - type_name: float128
+enums: []
+objects: []
+functions:
+ - name: acosf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - name: acoshf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - name: asin
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - name: asinf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - name: asinhf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - name: atan2
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - type: double
+ - name: atan2f
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - type: float
+ - name: atan2l
+ standards:
+ - stdc
+ return_type: long double
+ arguments:
+ - type: long double
+ - type: long double
+ - name: atanf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - name: atanhf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - name: canonicalize
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: double
+ - type: double
+ - name: canonicalizef
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: float
+ - type: float
+ - name: canonicalizef128
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: float128
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: canonicalizef16
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: _Float16
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: canonicalizel
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: long double
+ - type: long double
+ - name: cbrt
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - name: cbrtf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - name: ceil
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - name: ceilf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - name: ceilf128
+ standards:
+ - stdc
+ return_type: float128
+ arguments:
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: ceilf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: ceill
+ standards:
+ - stdc
+ return_type: long double
+ arguments:
+ - type: long double
+ - name: copysign
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - type: double
+ - name: copysignf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - type: float
+ - name: copysignf128
+ standards:
+ - stdc
+ return_type: float128
+ arguments:
+ - type: float128
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: copysignf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: copysignl
+ standards:
+ - stdc
+ return_type: long double
+ arguments:
+ - type: long double
+ - type: long double
+ - name: cos
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - name: cosf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - name: cosf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: coshf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - name: cospif16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: coshf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: ddivl
+ standards:
+ - stdc
+ return_type: long double
+ arguments:
+ - type: long double
+ - type: long double
+ - name: dmulf128
+ standards:
+ - llvm_libc_ext
+ return_type: double
+ arguments:
+ - type: float128
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: dmull
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: long double
+ - type: long double
+ - name: dsqrtl
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: long double
+ - name: dsqrtf128
+ standards:
+ - llvm_libc_ext
+ return_type: double
+ arguments:
+ - type: float128
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: erff
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - name: exp
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - name: exp10
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - name: exp10f
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - name: exp10m1f
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - name: exp10m1f16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: exp2
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - name: exp2f
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - name: exp2m1f
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - name: exp2m1f16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: expf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - name: expm1
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - name: expm1f
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - name: f16add
+ standards:
+ - llvm_libc_ext
+ return_type: _Float16
+ arguments:
+ - type: double
+ - type: double
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: f16addf
+ standards:
+ - llvm_libc_ext
+ return_type: _Float16
+ arguments:
+ - type: float
+ - type: float
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: f16addf128
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: float128
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT16_AND_FLOAT128
+ - name: f16addl
+ standards:
+ - llvm_libc_ext
+ return_type: _Float16
+ arguments:
+ - type: long double
+ - type: long double
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: f16div
+ standards:
+ - llvm_libc_ext
+ return_type: _Float16
+ arguments:
+ - type: double
+ - type: double
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: f16divf
+ standards:
+ - llvm_libc_ext
+ return_type: _Float16
+ arguments:
+ - type: float
+ - type: float
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: f16divf128
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: float128
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT16_AND_FLOAT128
+ - name: f16divl
+ standards:
+ - llvm_libc_ext
+ return_type: _Float16
+ arguments:
+ - type: long double
+ - type: long double
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: f16fma
+ standards:
+ - llvm_libc_ext
+ return_type: _Float16
+ arguments:
+ - type: double
+ - type: double
+ - type: double
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: f16fmaf
+ standards:
+ - llvm_libc_ext
+ return_type: _Float16
+ arguments:
+ - type: float
+ - type: float
+ - type: float
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: f16fmaf128
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: float128
+ - type: float128
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT16_AND_FLOAT128
+ - name: f16fmal
+ standards:
+ - llvm_libc_ext
+ return_type: _Float16
+ arguments:
+ - type: long double
+ - type: long double
+ - type: long double
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: f16mul
+ standards:
+ - llvm_libc_ext
+ return_type: _Float16
+ arguments:
+ - type: double
+ - type: double
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: f16mulf
+ standards:
+ - llvm_libc_ext
+ return_type: _Float16
+ arguments:
+ - type: float
+ - type: float
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: f16mulf128
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: float128
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT16_AND_FLOAT128
+ - name: f16mull
+ standards:
+ - llvm_libc_ext
+ return_type: _Float16
+ arguments:
+ - type: long double
+ - type: long double
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: f16sqrt
+ standards:
+ - llvm_libc_ext
+ return_type: _Float16
+ arguments:
+ - type: double
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: f16sqrtf
+ standards:
+ - llvm_libc_ext
+ return_type: _Float16
+ arguments:
+ - type: float
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: f16sqrtf128
+ standards:
+ - llvm_libc_ext
+ return_type: _Float16
+ arguments:
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT16_AND_FLOAT128
+ - name: f16sqrtl
+ standards:
+ - llvm_libc_ext
+ return_type: _Float16
+ arguments:
+ - type: long double
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: f16sub
+ standards:
+ - llvm_libc_ext
+ return_type: _Float16
+ arguments:
+ - type: double
+ - type: double
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: f16subf
+ standards:
+ - llvm_libc_ext
+ return_type: _Float16
+ arguments:
+ - type: float
+ - type: float
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: f16subf128
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: float128
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT16_AND_FLOAT128
+ - name: f16subl
+ standards:
+ - llvm_libc_ext
+ return_type: _Float16
+ arguments:
+ - type: long double
+ - type: long double
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: fabs
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - name: fabsf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - name: fabsf128
+ standards:
+ - stdc
+ return_type: float128
+ arguments:
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: fabsf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: fabsl
+ standards:
+ - stdc
+ return_type: long double
+ arguments:
+ - type: long double
+ - name: fadd
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: double
+ - type: double
+ - name: faddf128
+ standards:
+ - llvm_libc_ext
+ return_type: float
+ arguments:
+ - type: float128
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: faddl
+ standards:
+ - faddl
+ return_type: float
+ arguments:
+ - type: long double
+ - type: long double
+ - name: fdim
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - type: double
+ - name: fdimf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - type: float
+ - name: fdimf128
+ standards:
+ - stdc
+ return_type: float128
+ arguments:
+ - type: float128
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: fdimf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: fdiml
+ standards:
+ - stdc
+ return_type: long double
+ arguments:
+ - type: long double
+ - type: long double
+ - name: fdiv
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: double
+ - type: double
+ - name: fdivf128
+ standards:
+ - llvm_libc_ext
+ return_type: float
+ arguments:
+ - type: float128
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: fdivl
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: long double
+ - type: long double
+ - name: ffma
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: double
+ - type: double
+ - type: double
+ - name: ffmaf128
+ standards:
+ - llvm_libc_ext
+ return_type: float
+ arguments:
+ - type: float128
+ - type: float128
+ - type: float128
+ guards: LIBC_TYPES_HAS_FLOAT128
+ - name: ffmal
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: long double
+ - type: long double
+ - type: long double
+ - name: floor
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - name: floorf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - name: floorf128
+ standards:
+ - stdc
+ return_type: float128
+ arguments:
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: floorf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: floorl
+ standards:
+ - stdc
+ return_type: long double
+ arguments:
+ - type: long double
+ - name: fma
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - type: double
+ - type: double
+ - name: fmaf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - type: float
+ - type: float
+ - name: fmax
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - type: double
+ - name: fmaxf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - type: float
+ - name: fmaxf128
+ standards:
+ - stdc
+ return_type: float128
+ arguments:
+ - type: float128
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: fmaxf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: fmaximum
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - type: double
+ - name: fmaximum_mag
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - type: double
+ - name: fmaximum_mag_num
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - type: double
+ - name: fmaximum_mag_numf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - type: float
+ - name: fmaximum_mag_numf128
+ standards:
+ - stdc
+ return_type: float128
+ arguments:
+ - type: float128
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: fmaximum_mag_numf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: fmaximum_mag_numl
+ standards:
+ - stdc
+ return_type: long double
+ arguments:
+ - type: long double
+ - type: long double
+ - name: fmaximum_magf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - type: float
+ - name: fmaximum_magf128
+ standards:
+ - stdc
+ return_type: float128
+ arguments:
+ - type: float128
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: fmaximum_magf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: fmaximum_magl
+ standards:
+ - stdc
+ return_type: long double
+ arguments:
+ - type: long double
+ - type: long double
+ - name: fmaximum_num
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - type: double
+ - name: fmaximum_numf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - type: float
+ - name: fmaximum_numf128
+ standards:
+ - stdc
+ return_type: float128
+ arguments:
+ - type: float128
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: fmaximum_numf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: fmaximum_numl
+ standards:
+ - stdc
+ return_type: long double
+ arguments:
+ - type: long double
+ - type: long double
+ - name: fmaximumf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - type: float
+ - name: fmaximumf128
+ standards:
+ - stdc
+ return_type: float128
+ arguments:
+ - type: float128
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: fmaximumf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: fmaximuml
+ standards:
+ - stdc
+ return_type: long double
+ arguments:
+ - type: long double
+ - type: long double
+ - name: fmaxl
+ standards:
+ - stdc
+ return_type: long double
+ arguments:
+ - type: long double
+ - type: long double
+ - name: fmin
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - type: double
+ - name: fminf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - type: float
+ - name: fminf128
+ standards:
+ - stdc
+ return_type: float128
+ arguments:
+ - type: float128
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: fminf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: fminimum
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - type: double
+ - name: fminimum_mag
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - type: double
+ - name: fminimum_mag_num
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - type: double
+ - name: fminimum_mag_numf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - type: float
+ - name: fminimum_mag_numf128
+ standards:
+ - stdc
+ return_type: float128
+ arguments:
+ - type: float128
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: fminimum_mag_numf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: fminimum_mag_numl
+ standards:
+ - stdc
+ return_type: long double
+ arguments:
+ - type: long double
+ - type: long double
+ - name: fminimum_magf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - type: float
+ - name: fminimum_magf128
+ standards:
+ - stdc
+ return_type: float128
+ arguments:
+ - type: float128
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: fminimum_magf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: fminimum_magl
+ standards:
+ - stdc
+ return_type: long double
+ arguments:
+ - type: long double
+ - type: long double
+ - name: fminimum_num
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - type: double
+ - name: fminimum_numf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - type: float
+ - name: fminimum_numf128
+ standards:
+ - stdc
+ return_type: float128
+ arguments:
+ - type: float128
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: fminimum_numf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: fminimumf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - type: float
+ - name: fminimumf128
+ standards:
+ - stdc
+ return_type: float128
+ arguments:
+ - type: float128
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: fminimumf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: fminimuml
+ standards:
+ - stdc
+ return_type: long double
+ arguments:
+ - type: long double
+ - type: long double
+ - name: fminl
+ standards:
+ - stdc
+ return_type: long double
+ arguments:
+ - type: long double
+ - type: long double
+ - name: fmod
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - type: double
+ - name: fmodf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - type: float
+ - name: fmodf128
+ standards:
+ - stdc
+ return_type: float128
+ arguments:
+ - type: float128
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: fmodf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: fmodl
+ standards:
+ - stdc
+ return_type: long double
+ arguments:
+ - type: long double
+ - type: long double
+ - name: fmul
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: double
+ - type: double
+ - name: fmulf128
+ standards:
+ - llvm_libc_ext
+ return_type: float
+ arguments:
+ - type: float128
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: fmull
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: long double
+ - type: long double
+ - name: frexp
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - type: int *
+ - name: frexpf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - type: int *
+ - name: frexpf128
+ standards:
+ - stdc
+ return_type: float128
+ arguments:
+ - type: float128
+ - type: int *
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: frexpf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ - type: int *
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: frexpl
+ standards:
+ - stdc
+ return_type: long double
+ arguments:
+ - type: long double
+ - type: int *
+ - name: fromfp
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - type: int
+ - type: unsigned int
+ - name: fromfpf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - type: int
+ - type: unsigned int
+ - name: fromfpf128
+ standards:
+ - stdc
+ return_type: float128
+ arguments:
+ - type: float128
+ - type: int
+ - type: unsigned int
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: fromfpf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ - type: int
+ - type: unsigned int
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: fromfpl
+ standards:
+ - stdc
+ return_type: long double
+ arguments:
+ - type: long double
+ - type: int
+ - type: unsigned int
+ - name: fromfpx
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - type: int
+ - type: unsigned int
+ - name: fromfpxf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - type: int
+ - type: unsigned int
+ - name: fromfpxf128
+ standards:
+ - stdc
+ return_type: float128
+ arguments:
+ - type: float128
+ - type: int
+ - type: unsigned int
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: fromfpxf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ - type: int
+ - type: unsigned int
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: fromfpxl
+ standards:
+ - stdc
+ return_type: long double
+ arguments:
+ - type: long double
+ - type: int
+ - type: unsigned int
+ - name: fsqrt
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: double
+ - name: fsqrtl
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: long double
+ - name: fsqrtf128
+ standards:
+ - llvm_libc_ext
+ return_type: float
+ arguments:
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: fsub
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: double
+ - type: double
+ - name: fsubf128
+ standards:
+ - llvm_libc_ext
+ return_type: float
+ arguments:
+ - type: float128
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: fsubl
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: long double
+ - type: long double
+ - name: getpayload
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double *
+ - name: getpayloadf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float *
+ - name: getpayloadf128
+ standards:
+ - stdc
+ return_type: float128
+ arguments:
+ - type: float128 *
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: getpayloadf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16 *
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: getpayloadl
+ standards:
+ - stdc
+ return_type: long double
+ arguments:
+ - type: long double *
+ - name: hypot
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - type: double
+ - name: hypotf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - type: float
+ - name: ilogb
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: double
+ - name: ilogbf
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: float
+ - name: ilogbf128
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: ilogbf16
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: ilogbl
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: long double
+ - name: isnan
+ standards:
+ - BSDExtensions
+ return_type: int
+ arguments:
+ - type: double
+ - name: isnanf
+ standards:
+ - BSDExtensions
+ return_type: int
+ arguments:
+ - type: float
+ - name: isnanl
+ standards:
+ - BSDExtensions
+ return_type: int
+ arguments:
+ - type: long double
+ - name: ldexp
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - type: int
+ - name: ldexpf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - type: int
+ - name: ldexpf128
+ standards:
+ - stdc
+ return_type: float128
+ arguments:
+ - type: float128
+ - type: int
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: ldexpf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ - type: int
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: ldexpl
+ standards:
+ - stdc
+ return_type: long double
+ arguments:
+ - type: long double
+ - type: int
+ - name: lgamma
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - name: lgamma_r
+ standards:
+ - gnu
+ return_type: double
+ arguments:
+ - type: double
+ - type: int *
+ - name: lgammaf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - name: lgammaf_r
+ standards:
+ - gnu
+ return_type: float
+ arguments:
+ - type: float
+ - type: int *
+ - name: lgammal
+ standards:
+ - stdc
+ return_type: long double
+ arguments:
+ - type: long double
+ - name: lgammal_r
+ standards:
+ - gnu
+ return_type: long double
+ arguments:
+ - type: long double
+ - type: int *
+ - name: llogb
+ standards:
+ - stdc
+ return_type: long
+ arguments:
+ - type: double
+ - name: llogbf
+ standards:
+ - stdc
+ return_type: long
+ arguments:
+ - type: float
+ - name: llogbf128
+ standards:
+ - stdc
+ return_type: long
+ arguments:
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: llogbf16
+ standards:
+ - stdc
+ return_type: long
+ arguments:
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: llogbl
+ standards:
+ - stdc
+ return_type: long
+ arguments:
+ - type: long double
+ - name: llrint
+ standards:
+ - stdc
+ return_type: long long
+ arguments:
+ - type: double
+ - name: llrintf
+ standards:
+ - stdc
+ return_type: long long
+ arguments:
+ - type: float
+ - name: llrintf128
+ standards:
+ - stdc
+ return_type: long long
+ arguments:
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: llrintf16
+ standards:
+ - stdc
+ return_type: long long
+ arguments:
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: llrintl
+ standards:
+ - stdc
+ return_type: long long
+ arguments:
+ - type: long double
+ - name: llround
+ standards:
+ - stdc
+ return_type: long long
+ arguments:
+ - type: double
+ - name: llroundf
+ standards:
+ - stdc
+ return_type: long long
+ arguments:
+ - type: float
+ - name: llroundf128
+ standards:
+ - stdc
+ return_type: long long
+ arguments:
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: llroundf16
+ standards:
+ - stdc
+ return_type: long long
+ arguments:
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: llroundl
+ standards:
+ - stdc
+ return_type: long long
+ arguments:
+ - type: long double
+ - name: log
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - name: log10
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - name: log10f
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - name: log10f16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: log1p
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - name: log1pf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - name: log2
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - name: log2f
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - name: log2f16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: logb
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - name: logbf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - name: logbf128
+ standards:
+ - stdc
+ return_type: float128
+ arguments:
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: logbf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: logbl
+ standards:
+ - stdc
+ return_type: long double
+ arguments:
+ - type: long double
+ - name: logf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - name: logf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: lrint
+ standards:
+ - stdc
+ return_type: long
+ arguments:
+ - type: double
+ - name: lrintf
+ standards:
+ - stdc
+ return_type: long
+ arguments:
+ - type: float
+ - name: lrintf128
+ standards:
+ - stdc
+ return_type: long
+ arguments:
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: lrintf16
+ standards:
+ - stdc
+ return_type: long
+ arguments:
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: lrintl
+ standards:
+ - stdc
+ return_type: long
+ arguments:
+ - type: long double
+ - name: lround
+ standards:
+ - stdc
+ return_type: long
+ arguments:
+ - type: double
+ - name: lroundf
+ standards:
+ - stdc
+ return_type: long
+ arguments:
+ - type: float
+ - name: lroundf128
+ standards:
+ - stdc
+ return_type: long
+ arguments:
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: lroundf16
+ standards:
+ - stdc
+ return_type: long
+ arguments:
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: lroundl
+ standards:
+ - stdc
+ return_type: long
+ arguments:
+ - type: long double
+ - name: modf
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - type: double *
+ - name: modff
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - type: float *
+ - name: modff128
+ standards:
+ - stdc
+ return_type: float128
+ arguments:
+ - type: float128
+ - type: float128 *
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: modff16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ - type: _Float16 *
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: modfl
+ standards:
+ - stdc
+ return_type: long double
+ arguments:
+ - type: long double
+ - type: long double *
+ - name: nan
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: const char *
+ - name: nanf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: const char *
+ - name: nanf128
+ standards:
+ - stdc
+ return_type: float128
+ arguments:
+ - type: const char *
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: nanf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: const char *
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: nanl
+ standards:
+ - stdc
+ return_type: long double
+ arguments:
+ - type: const char *
+ - name: nearbyint
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - name: nearbyintf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - name: nearbyintf128
+ standards:
+ - stdc
+ return_type: float128
+ arguments:
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: nearbyintf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: nearbyintl
+ standards:
+ - stdc
+ return_type: long double
+ arguments:
+ - type: long double
+ - name: nextafter
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - type: double
+ - name: nextafterf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - type: float
+ - name: nextafterf128
+ standards:
+ - stdc
+ return_type: float128
+ arguments:
+ - type: float128
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: nextafterf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: nextafterl
+ standards:
+ - stdc
+ return_type: long double
+ arguments:
+ - type: long double
+ - type: long double
+ - name: nextdown
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - name: nextdownf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - name: nextdownf128
+ standards:
+ - stdc
+ return_type: float128
+ arguments:
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: nextdownf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: nextdownl
+ standards:
+ - stdc
+ return_type: long double
+ arguments:
+ - type: long double
+ - name: nexttoward
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - type: long double
+ - name: nexttowardf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - type: long double
+ - name: nexttowardf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: nexttowardl
+ standards:
+ - stdc
+ return_type: long double
+ arguments:
+ - type: long double
+ - type: long double
+ - name: nextup
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - name: nextupf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - name: nextupf128
+ standards:
+ - stdc
+ return_type: float128
+ arguments:
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: nextupf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: nextupl
+ standards:
+ - stdc
+ return_type: long double
+ arguments:
+ - type: long double
+ - name: pow
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - type: double
+ - name: powf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - type: float
+ - name: powi
+ standards: llvm_libc_ext
+ return_type: double
+ arguments:
+ - type: double
+ - type: int
+ - name: powif
+ standards: llvm_libc_ext
+ return_type: float
+ arguments:
+ - type: float
+ - type: int
+ - name: remainder
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - type: double
+ - name: remainderf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - type: float
+ - name: remainderf128
+ standards:
+ - stdc
+ return_type: float128
+ arguments:
+ - type: float128
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: remainderf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: remainderl
+ standards:
+ - stdc
+ return_type: long double
+ arguments:
+ - type: long double
+ - type: long double
+ - name: remquo
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - type: double
+ - type: int *
+ - name: remquof
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - type: float
+ - type: int *
+ - name: remquof128
+ standards:
+ - stdc
+ return_type: float128
+ arguments:
+ - type: float128
+ - type: float128
+ - type: int *
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: remquof16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ - type: _Float16
+ - type: int *
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: remquol
+ standards:
+ - stdc
+ return_type: long double
+ arguments:
+ - type: long double
+ - type: long double
+ - type: int *
+ - name: rint
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - name: rintf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - name: rintf128
+ standards:
+ - stdc
+ return_type: float128
+ arguments:
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: rintf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: rintl
+ standards:
+ - stdc
+ return_type: long double
+ arguments:
+ - type: long double
+ - name: round
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - name: roundeven
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - name: roundevenf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - name: roundevenf128
+ standards:
+ - stdc
+ return_type: float128
+ arguments:
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: roundevenf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: roundevenl
+ standards:
+ - stdc
+ return_type: long double
+ arguments:
+ - type: long double
+ - name: roundf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - name: roundf128
+ standards:
+ - stdc
+ return_type: float128
+ arguments:
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: roundf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: roundl
+ standards:
+ - stdc
+ return_type: long double
+ arguments:
+ - type: long double
+ - name: scalbln
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - type: long
+ - name: scalblnf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - type: long
+ - name: scalblnf128
+ standards:
+ - stdc
+ return_type: float128
+ arguments:
+ - type: float128
+ - type: long
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: scalblnf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ - type: long
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: scalblnf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ - type: long
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: scalblnl
+ standards:
+ - stdc
+ return_type: long double
+ arguments:
+ - type: long double
+ - type: long
+ - name: scalbn
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - type: int
+ - name: scalbnf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - type: int
+ - name: scalbnf128
+ standards:
+ - stdc
+ return_type: float128
+ arguments:
+ - type: float128
+ - type: int
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: scalbnf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ - type: int
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: scalbnl
+ standards:
+ - stdc
+ return_type: long double
+ arguments:
+ - type: long double
+ - type: int
+ - name: setpayload
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: double *
+ - type: double
+ - name: setpayloadf
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: float *
+ - type: float
+ - name: setpayloadf128
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: float128 *
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: setpayloadf16
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: _Float16 *
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: setpayloadl
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: long double *
+ - type: long double
+ - name: setpayloadsig
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double *
+ - type: double
+ - name: setpayloadsigf
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: float *
+ - type: float
+ - name: setpayloadsigf128
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: float128 *
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: setpayloadsigf16
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: _Float16 *
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: setpayloadsigl
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: long double *
+ - type: long double
+ - name: sin
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - name: sincosf
+ standards:
+ - gnu
+ return_type: void
+ arguments:
+ - type: float
+ - type: float *
+ - type: float *
+ - name: sinf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - name: sinf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: sinhf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - name: sinhf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: sinpif16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: sqrt
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - name: sqrtf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - name: sqrtf128
+ standards:
+ - stdc
+ return_type: float128
+ arguments:
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: sqrtf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: sqrtl
+ standards:
+ - stdc
+ return_type: long double
+ arguments:
+ - type: long double
+ - name: tan
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - name: tanf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - name: tanhf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - name: tanhf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: tanpif16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: totalorder
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: const double *
+ - type: const double *
+ - name: totalorderf
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: const float *
+ - type: const float *
+ - name: totalorderf128
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: const float128 *
+ - type: const float128 *
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: totalorderf16
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: const _Float16 *
+ - type: const _Float16 *
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: totalorderl
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: const long double *
+ - type: const long double *
+ - name: totalordermag
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: const double *
+ - type: const double *
+ - name: totalordermagf
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: const float *
+ - type: const float *
+ - name: totalordermagl
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: const long double *
+ - type: const long double *
+ - name: totalordermagf128
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: const float128 *
+ - type: const float128 *
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: totalordermagf16
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: const _Float16 *
+ - type: const _Float16 *
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: trunc
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - name: truncf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - name: truncf128
+ standards:
+ - stdc
+ return_type: float128
+ arguments:
+ - type: float128
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: truncf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: truncl
+ standards:
+ - stdc
+ return_type: long double
+ arguments:
+ - type: long double
+ - name: ufromfp
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - type: int
+ - type: unsigned int
+ - name: ufromfpf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - type: int
+ - type: unsigned int
+ - name: ufromfpf128
+ standards:
+ - stdc
+ return_type: float128
+ arguments:
+ - type: float128
+ - type: int
+ - type: unsigned int
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: ufromfpf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ - type: int
+ - type: unsigned int
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: ufromfpl
+ standards:
+ - stdc
+ return_type: long double
+ arguments:
+ - type: long double
+ - type: int
+ - type: unsigned int
+ - name: ufromfpx
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: double
+ - type: int
+ - type: unsigned int
+ - name: ufromfpxf
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: float
+ - type: int
+ - type: unsigned int
+ - name: ufromfpxf128
+ standards:
+ - stdc
+ return_type: float128
+ arguments:
+ - type: float128
+ - type: int
+ - type: unsigned int
+ guard: LIBC_TYPES_HAS_FLOAT128
+ - name: ufromfpxf16
+ standards:
+ - stdc
+ return_type: _Float16
+ arguments:
+ - type: _Float16
+ - type: int
+ - type: unsigned int
+ guard: LIBC_TYPES_HAS_FLOAT16
+ - name: ufromfpxl
+ standards:
+ - stdc
+ return_type: long double
+ arguments:
+ - type: long double
+ - type: int
+ - type: unsigned int
diff --git a/libc/include/pthread.yaml b/libc/include/pthread.yaml
new file mode 100644
index 000000000000..4f386bdd11cf
--- /dev/null
+++ b/libc/include/pthread.yaml
@@ -0,0 +1,434 @@
+header: pthread.h
+header_template: pthread.h.def
+macros: []
+types:
+ - type_name: pthread_t
+ - type_name: pthread_once_t
+ - type_name: pthread_mutex_t
+ - type_name: pthread_mutexattr_t
+ - type_name: pthread_key_t
+ - type_name: pthread_condattr_t
+ - type_name: __pthread_tss_dtor_t
+ - type_name: pthread_rwlock_t
+ - type_name: pthread_rwlockattr_t
+ - type_name: pthread_attr_t
+ - type_name: __pthread_start_t
+ - type_name: __pthread_once_func_t
+ - type_name: __atfork_callback_t
+ - type_name: pthread_spinlock_t
+enums: []
+functions:
+ - name: pthread_atfork
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: __atfork_callback_t
+ - type: __atfork_callback_t
+ - type: __atfork_callback_t
+ - name: pthread_attr_destroy
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: pthread_attr_t *
+ - name: pthread_attr_getdetachstate
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: const pthread_attr_t *
+ - type: int *
+ - name: pthread_attr_getguardsize
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: const pthread_attr_t *__restrict
+ - type: size_t *__restrict
+ - name: pthread_attr_getstack
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: const pthread_attr_t *__restrict
+ - type: void **__restrict
+ - type: size_t *__restrict
+ - name: pthread_attr_getstacksize
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: const pthread_attr_t *__restrict
+ - type: size_t *__restrict
+ - name: pthread_attr_init
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: pthread_attr_t *
+ - name: pthread_attr_setdetachstate
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: pthread_attr_t *
+ - type: int
+ - name: pthread_attr_setguardsize
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: pthread_attr_t *
+ - type: size_t
+ - name: pthread_attr_setstack
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: pthread_attr_t *
+ - type: void *
+ - type: size_t
+ - name: pthread_attr_setstacksize
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: pthread_attr_t *
+ - type: size_t
+ - name: pthread_condattr_destroy
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: pthread_condattr_t *
+ - name: pthread_condattr_getclock
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: const pthread_condattr_t *__restrict
+ - type: clockid_t *__restrict
+ - name: pthread_condattr_getpshared
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: const pthread_condattr_t *__restrict
+ - type: int *__restrict
+ - name: pthread_condattr_init
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: pthread_condattr_t *
+ - name: pthread_condattr_setclock
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: pthread_condattr_t *
+ - type: clockid_t
+ - name: pthread_condattr_setpshared
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: pthread_condattr_t *
+ - type: int
+ - name: pthread_create
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: pthread_t *__restrict
+ - type: const pthread_attr_t *__restrict
+ - type: __pthread_start_t
+ - type: void *
+ - name: pthread_detach
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: pthread_t
+ - name: pthread_equal
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: pthread_t
+ - type: pthread_t
+ - name: pthread_exit
+ standards:
+ - POSIX
+ return_type: _Noreturn void
+ arguments:
+ - type: void *
+ - name: pthread_getname_np
+ standards:
+ - GNUExtensions
+ return_type: int
+ arguments:
+ - type: pthread_t
+ - type: char *
+ - type: size_t
+ - name: pthread_getspecific
+ standards:
+ - POSIX
+ return_type: void *
+ arguments:
+ - type: pthread_key_t
+ - name: pthread_join
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: pthread_t
+ - type: void **
+ - name: pthread_key_create
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: pthread_key_t *
+ - type: __pthread_tss_dtor_t
+ - name: pthread_key_delete
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: pthread_key_t
+ - name: pthread_mutex_destroy
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: pthread_mutex_t *
+ - name: pthread_mutex_init
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: pthread_mutex_t *__restrict
+ - type: const pthread_mutexattr_t *__restrict
+ - name: pthread_mutex_lock
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: pthread_mutex_t *
+ - name: pthread_mutex_unlock
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: pthread_mutex_t *
+ - name: pthread_mutexattr_destroy
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: pthread_mutexattr_t *
+ - name: pthread_mutexattr_getpshared
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: const pthread_mutexattr_t *__restrict
+ - type: int *__restrict
+ - name: pthread_mutexattr_getrobust
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: const pthread_mutexattr_t *__restrict
+ - type: int *__restrict
+ - name: pthread_mutexattr_gettype
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: const pthread_mutexattr_t *__restrict
+ - type: int *__restrict
+ - name: pthread_mutexattr_init
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: pthread_mutexattr_t *
+ - name: pthread_mutexattr_setpshared
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: pthread_mutexattr_t *__restrict
+ - type: int
+ - name: pthread_mutexattr_setrobust
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: pthread_mutexattr_t *__restrict
+ - type: int
+ - name: pthread_mutexattr_settype
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: pthread_mutexattr_t *__restrict
+ - type: int
+ - name: pthread_once
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: pthread_once_t *
+ - type: __pthread_once_func_t
+ - name: pthread_rwlock_clockrdlock
+ standards: POSIX
+ return_type: int
+ arguments:
+ - type: pthread_rwlock_t *__restrict
+ - type: clockid_t
+ - type: const struct timespec *__restrict
+ - name: pthread_rwlock_clockwrlock
+ standards: POSIX
+ return_type: int
+ arguments:
+ - type: pthread_rwlock_t *__restrict
+ - type: clockid_t
+ - type: const struct timespec *__restrict
+ - name: pthread_rwlock_destroy
+ standards: POSIX
+ return_type: int
+ arguments:
+ - type: pthread_rwlock_t *
+ - name: pthread_rwlock_init
+ standards: POSIX
+ return_type: int
+ arguments:
+ - type: pthread_rwlock_t *
+ - type: const pthread_rwlockattr_t *__restrict
+ - name: pthread_rwlock_rdlock
+ standards: POSIX
+ return_type: int
+ arguments:
+ - type: pthread_rwlock_t *
+ - name: pthread_rwlock_timedrdlock
+ standards: POSIX
+ return_type: int
+ arguments:
+ - type: pthread_rwlock_t *__restrict
+ - type: const struct timespec *__restrict
+ - name: pthread_rwlock_timedwrlock
+ standards: POSIX
+ return_type: int
+ arguments:
+ - type: pthread_rwlock_t *__restrict
+ - type: const struct timespec *__restrict
+ - name: pthread_rwlock_tryrdlock
+ standards: POSIX
+ return_type: int
+ arguments:
+ - type: pthread_rwlock_t *
+ - name: pthread_rwlock_trywrlock
+ standards: POSIX
+ return_type: int
+ arguments:
+ - type: pthread_rwlock_t *
+ - name: pthread_rwlock_unlock
+ standards: POSIX
+ return_type: int
+ arguments:
+ - type: pthread_rwlock_t *
+ - name: pthread_rwlock_wrlock
+ standards: POSIX
+ return_type: int
+ arguments:
+ - type: pthread_rwlock_t *
+ - name: pthread_rwlockattr_destroy
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: pthread_rwlockattr_t *
+ - name: pthread_rwlockattr_getkind_np
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: pthread_rwlockattr_t *
+ - type: int *
+ - name: pthread_rwlockattr_getpshared
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: const pthread_rwlockattr_t *
+ - type: int *
+ - name: pthread_rwlockattr_init
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: pthread_rwlockattr_t *
+ - name: pthread_rwlockattr_setkind_np
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: pthread_rwlockattr_t *
+ - type: int
+ - name: pthread_rwlockattr_setpshared
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: pthread_rwlockattr_t *
+ - type: int
+ - name: pthread_self
+ standards:
+ - POSIX
+ return_type: pthread_t
+ arguments:
+ - type: void
+ - name: pthread_setname_np
+ standards:
+ - GNUExtensions
+ return_type: int
+ arguments:
+ - type: pthread_t
+ - type: const char *
+ - name: pthread_setspecific
+ standards:
+ - POSIX
+ return_type: void *
+ arguments:
+ - type: pthread_key_t
+ - type: const void *
+ - name: pthread_spin_destroy
+ standards: POSIX
+ return_type: int
+ arguments:
+ - type: pthread_spinlock_t *
+ - name: pthread_spin_init
+ standards: POSIX
+ return_type: int
+ arguments:
+ - type: pthread_spinlock_t *
+ - type: int
+ - name: pthread_spin_lock
+ standards: POSIX
+ return_type: int
+ arguments:
+ - type: pthread_spinlock_t *
+ - name: pthread_spin_trylock
+ standards: POSIX
+ return_type: int
+ arguments:
+ - type: pthread_spinlock_t *
+ - name: pthread_spin_unlock
+ standards: POSIX
+ return_type: int
+ arguments:
+ - type: pthread_spinlock_t *
diff --git a/libc/include/sched.yaml b/libc/include/sched.yaml
new file mode 100644
index 000000000000..57871f524bf1
--- /dev/null
+++ b/libc/include/sched.yaml
@@ -0,0 +1,89 @@
+header: sched.h
+header_template: sched.h.def
+macros: []
+types:
+ - type_name: struct_timespec
+ - type_name: time_t
+ - type_name: struct_sched_param
+ - type_name: size_t
+ - type_name: cpu_set_t
+ - type_name: pid_t
+enums: []
+objects: []
+functions:
+ - name: __sched_getcpucount
+ standards:
+ - llvm_libc_ext
+ return_type: int
+ arguments:
+ - type: size_t
+ - type: const cpu_set_t *
+ - name: sched_get_priority_max
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: int
+ - name: sched_get_priority_min
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: int
+ - name: sched_getaffinity
+ standards:
+ - GNUExtensions
+ return_type: int
+ arguments:
+ - type: pid_t
+ - type: size_t
+ - type: cpu_set_t *
+ - name: sched_getparam
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: pid_t
+ - type: struct sched_param *
+ - name: sched_getscheduler
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: pid_t
+ - type: int
+ - type: const struct sched_param *
+ - name: sched_rr_get_interval
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: pid_t
+ - type: struct timespec *
+ - name: sched_setaffinity
+ standards:
+ - GNUExtensions
+ return_type: int
+ arguments:
+ - type: pid_t
+ - type: size_t
+ - type: const cpu_set_t *
+ - name: sched_setparam
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: pid_t
+ - type: const struct sched_param *
+ - name: sched_setscheduler
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: pid_t
+ - name: sched_yield
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: void
diff --git a/libc/include/search.yaml b/libc/include/search.yaml
new file mode 100644
index 000000000000..b7ce06d48e70
--- /dev/null
+++ b/libc/include/search.yaml
@@ -0,0 +1,71 @@
+header: search.h
+header_template: search.h.def
+macros: []
+types:
+ - type_name: struct_hsearch_data
+ - type_name: ENTRY
+ - type_name: ACTION
+ - type_name: __lsearchcompare_t
+enums: []
+objects: []
+functions:
+ - name: hcreate
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: size_t
+ - name: hcreate_r
+ standards: GNUExtensions
+ return_type: int
+ arguments:
+ - type: size_t
+ - type: struct hsearch_data *
+ - name: hdestroy
+ standards: GNUExtensions
+ return_type: void
+ arguments: []
+ - name: hdestroy_r
+ standards:
+ - POSIX
+ return_type: void
+ arguments:
+ - type: struct hsearch_data *
+ - name: hsearch
+ standards:
+ - POSIX
+ return_type: ENTRY *
+ arguments:
+ - type: ENTRY
+ - type: ACTION
+ - name: hsearch_r
+ standards: GNUExtensions
+ return_type: int
+ arguments:
+ - type: ENTRY
+ - type: ACTION
+ - type: ENTRY * *
+ - type: struct hsearch_data *
+ - name: insque
+ standards:
+ - POSIX
+ return_type: void
+ arguments:
+ - type: void *
+ - type: void *
+ - name: remque
+ standards:
+ - POSIX
+ return_type: void
+ arguments:
+ - type: void *
+ - name: lfind
+ standards:
+ - POSIX
+ return_type: void *
+ arguments:
+ - type: const void *
+ - type: const void *
+ - type: size_t *
+ - type: size_t
+ - type: __lsearchcompare_t
diff --git a/libc/include/setjmp.yaml b/libc/include/setjmp.yaml
new file mode 100644
index 000000000000..2c4f7fb6dfcc
--- /dev/null
+++ b/libc/include/setjmp.yaml
@@ -0,0 +1,21 @@
+header: setjmp.h
+header_template: setjmp.h.def
+macros: []
+types:
+ - type_name: jmp_buf
+enums: []
+objects: []
+functions:
+ - name: longjmp
+ standards:
+ - stdc
+ return_type: _Noreturn void
+ arguments:
+ - type: jmp_buf
+ - type: int
+ - name: setjmp
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: jmp_buf
diff --git a/libc/include/signal.yaml b/libc/include/signal.yaml
new file mode 100644
index 000000000000..576e77576ac7
--- /dev/null
+++ b/libc/include/signal.yaml
@@ -0,0 +1,83 @@
+header: signal.h
+header_template: signal.h.def
+macros: []
+types:
+ - type_name: pid_t
+ - type_name: stack_t
+ - type_name: siginfo_t
+ - type_name: struct_sigaction
+ - type_name: sigset_t
+ - type_name: union_sigval
+ - type_name: sig_atomic_t
+enums: []
+objects: []
+functions:
+ - name: kill
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: pid_t
+ - type: int
+ - name: raise
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: int
+ - name: sigaction
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: int
+ - type: const struct sigaction *__restrict
+ - type: struct sigaction *__restrict
+ - name: sigaddset
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: sigset_t *
+ - type: int
+ - name: sigaltstack
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: const stack_t *__restrict
+ - type: stack_t *__restrict
+ - name: sigdelset
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: sigset_t *
+ - type: int
+ - name: sigemptyset
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: sigset_t *
+ - name: sigfillset
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: sigset_t *
+ - name: signal
+ standards:
+ - stdc
+ return_type: __sighandler_t
+ arguments:
+ - type: int
+ - type: __sighandler_t
+ - name: sigprocmask
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: int
+ - type: const sigset_t *__restrict
+ - type: sigset_t *__restrict
diff --git a/libc/include/spawn.yaml b/libc/include/spawn.yaml
new file mode 100644
index 000000000000..e725ab9719ed
--- /dev/null
+++ b/libc/include/spawn.yaml
@@ -0,0 +1,59 @@
+header: spawn.h
+header_template: spawn.h.def
+macros: []
+types:
+ - type_name: posix_spawn_file_actions_t
+ - type_name: posix_spawnattr_t
+ - type_name: pid_t
+ - type_name: mode_t
+enums: []
+objects: []
+functions:
+ - name: posix_spawn
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: pid_t *__restrict
+ - type: const char *__restrict
+ - type: posix_spawn_file_actions_t *
+ - type: posix_spawnattr_t *__restrict
+ - type: const char *__restrict *
+ - type: const char *__restrict *
+ - name: posix_spawn_file_actions_addclose
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: posix_spawn_file_actions_t *
+ - type: int
+ - name: posix_spawn_file_actions_adddup2
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: posix_spawn_file_actions_t *
+ - type: int
+ - type: int
+ - name: posix_spawn_file_actions_addopen
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: posix_spawn_file_actions_t *__restrict
+ - type: int
+ - type: const char *__restrict
+ - type: int
+ - type: mode_t
+ - name: posix_spawn_file_actions_destroy
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: posix_spawn_file_actions_t *
+ - name: posix_spawn_file_actions_init
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: posix_spawn_file_actions_t *
diff --git a/libc/include/stdbit.yaml b/libc/include/stdbit.yaml
new file mode 100644
index 000000000000..e9bd6b3918e7
--- /dev/null
+++ b/libc/include/stdbit.yaml
@@ -0,0 +1,397 @@
+header: stdbit.h
+header_template: stdbit.h.def
+macros: []
+types: []
+enums: []
+objects: []
+functions:
+ - name: stdc_bit_ceil_uc
+ standards:
+ - stdc
+ return_type: unsigned char
+ arguments:
+ - type: unsigned char
+ - name: stdc_bit_ceil_ui
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned int
+ - name: stdc_bit_ceil_ul
+ standards:
+ - stdc
+ return_type: unsigned long
+ arguments:
+ - type: unsigned long
+ - name: stdc_bit_ceil_ull
+ standards:
+ - stdc
+ return_type: unsigned long long
+ arguments:
+ - type: unsigned long long
+ - name: stdc_bit_ceil_us
+ standards:
+ - stdc
+ return_type: unsigned short
+ arguments:
+ - type: unsigned short
+ - name: stdc_bit_floor_uc
+ standards:
+ - stdc
+ return_type: unsigned char
+ arguments:
+ - type: unsigned char
+ - name: stdc_bit_floor_ui
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned int
+ - name: stdc_bit_floor_ul
+ standards:
+ - stdc
+ return_type: unsigned long
+ arguments:
+ - type: unsigned long
+ - name: stdc_bit_floor_ull
+ standards:
+ - stdc
+ return_type: unsigned long long
+ arguments:
+ - type: unsigned long long
+ - name: stdc_bit_floor_us
+ standards:
+ - stdc
+ return_type: unsigned short
+ arguments:
+ - type: unsigned short
+ - name: stdc_bit_width_uc
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned char
+ - name: stdc_bit_width_ui
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned int
+ - name: stdc_bit_width_ul
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned long
+ - name: stdc_bit_width_ull
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned long long
+ - name: stdc_bit_width_us
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned short
+ - name: stdc_count_ones_uc
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned char
+ - name: stdc_count_ones_ui
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned int
+ - name: stdc_count_ones_ul
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned long
+ - name: stdc_count_ones_ull
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned long long
+ - name: stdc_count_ones_us
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned short
+ - name: stdc_count_zeros_uc
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned char
+ - name: stdc_count_zeros_ui
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned int
+ - name: stdc_count_zeros_ul
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned long
+ - name: stdc_count_zeros_ull
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned long long
+ - name: stdc_count_zeros_us
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned short
+ - name: stdc_first_leading_one_uc
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned char
+ - name: stdc_first_leading_one_ui
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned int
+ - name: stdc_first_leading_one_ul
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned long
+ - name: stdc_first_leading_one_ull
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned long long
+ - name: stdc_first_leading_one_us
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned short
+ - name: stdc_first_leading_zero_uc
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned char
+ - name: stdc_first_leading_zero_ui
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned int
+ - name: stdc_first_leading_zero_ul
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned long
+ - name: stdc_first_leading_zero_ull
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned long long
+ - name: stdc_first_leading_zero_us
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned short
+ - name: stdc_first_trailing_one_uc
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned char
+ - name: stdc_first_trailing_one_ui
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned int
+ - name: stdc_first_trailing_one_ul
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned long
+ - name: stdc_first_trailing_one_ull
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned long long
+ - name: stdc_first_trailing_one_us
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned short
+ - name: stdc_has_single_bit_uc
+ standards:
+ - stdc
+ return_type: bool
+ arguments:
+ - type: unsigned char
+ - name: stdc_has_single_bit_ui
+ standards:
+ - stdc
+ return_type: bool
+ arguments:
+ - type: unsigned int
+ - name: stdc_has_single_bit_ul
+ standards:
+ - stdc
+ return_type: bool
+ arguments:
+ - type: unsigned long
+ - name: stdc_has_single_bit_ull
+ standards:
+ - stdc
+ return_type: bool
+ arguments:
+ - type: unsigned long long
+ - name: stdc_has_single_bit_us
+ standards:
+ - stdc
+ return_type: bool
+ arguments:
+ - type: unsigned short
+ - name: stdc_leading_ones_uc
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned char
+ - name: stdc_leading_ones_ui
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned int
+ - name: stdc_leading_ones_ul
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned long
+ - name: stdc_leading_ones_ull
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned long long
+ - name: stdc_leading_ones_us
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned short
+ - name: stdc_leading_zeros_uc
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned char
+ - name: stdc_leading_zeros_ui
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned int
+ - name: stdc_leading_zeros_ul
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned long
+ - name: stdc_leading_zeros_ull
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned long long
+ - name: stdc_leading_zeros_us
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned short
+ - name: stdc_trailing_ones_uc
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned char
+ - name: stdc_trailing_ones_ui
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned int
+ - name: stdc_trailing_ones_ul
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned long
+ - name: stdc_trailing_ones_ull
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned long long
+ - name: stdc_trailing_ones_us
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned short
+ - name: stdc_trailing_zeros_uc
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned char
+ - name: stdc_trailing_zeros_ui
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned int
+ - name: stdc_trailing_zeros_ul
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned long
+ - name: stdc_trailing_zeros_ull
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned long long
+ - name: stdc_trailing_zeros_us
+ standards:
+ - stdc
+ return_type: unsigned int
+ arguments:
+ - type: unsigned short
diff --git a/libc/include/stdckdint.yaml b/libc/include/stdckdint.yaml
new file mode 100644
index 000000000000..e8b2e80ee029
--- /dev/null
+++ b/libc/include/stdckdint.yaml
@@ -0,0 +1,9 @@
+header: stdckdint.h
+header_template: stdckdint.h.def
+standards:
+ - stdc
+macros: []
+types: []
+enums: []
+objects: []
+functions: []
diff --git a/libc/include/stdfix.yaml b/libc/include/stdfix.yaml
new file mode 100644
index 000000000000..7b3bdba082dd
--- /dev/null
+++ b/libc/include/stdfix.yaml
@@ -0,0 +1,308 @@
+header: stdfix.h
+header_template: stdfix.h.def
+macros: []
+types:
+ - type_name: stdfix-types
+enums: []
+objects: []
+functions:
+ - name: abshk
+ standards:
+ - stdc_ext
+ return_type: short accum
+ arguments:
+ - type: short accum
+ guard: LIBC_COMPILER_HAS_FIXED_POINT
+ - name: abshr
+ standards:
+ - stdc_ext
+ return_type: short fract
+ arguments:
+ - type: short fract
+ guard: LIBC_COMPILER_HAS_FIXED_POINT
+ - name: absk
+ standards:
+ - stdc_ext
+ return_type: accum
+ arguments:
+ - type: accum
+ guard: LIBC_COMPILER_HAS_FIXED_POINT
+ - name: abslk
+ standards:
+ - stdc_ext
+ return_type: long accum
+ arguments:
+ - type: long accum
+ guard: LIBC_COMPILER_HAS_FIXED_POINT
+ - name: abslr
+ standards:
+ - stdc_ext
+ return_type: long fract
+ arguments:
+ - type: long fract
+ guard: LIBC_COMPILER_HAS_FIXED_POINT
+ - name: absr
+ standards:
+ - stdc_ext
+ return_type: fract
+ arguments:
+ - type: fract
+ guard: LIBC_COMPILER_HAS_FIXED_POINT
+ - name: exphk
+ standards:
+ - stdc_ext
+ - llvm_libc_stdfix_ext
+ return_type: short accum
+ arguments:
+ - type: short accum
+ guard: LIBC_COMPILER_HAS_FIXED_POINT
+ - name: expk
+ standards:
+ - stdc_ext
+ - llvm_libc_stdfix_ext
+ return_type: accum
+ arguments:
+ - type: accum
+ guard: LIBC_COMPILER_HAS_FIXED_POINT
+ - name: hrbits
+ standards:
+ - stdc_ext
+ return_type: short fract
+ arguments:
+ - type: int_hr_t
+ guard: LIBC_COMPILER_HAS_FIXED_POINT
+ - name: uhrbits
+ standards:
+ - stdc_ext
+ return_type: unsigned short fract
+ arguments:
+ - type: uint_uhr_t
+ guard: LIBC_COMPILER_HAS_FIXED_POINT
+ - name: rbits
+ standards:
+ - stdc_ext
+ return_type: fract
+ arguments:
+ - type: int_r_t
+ guard: LIBC_COMPILER_HAS_FIXED_POINT
+ - name: urbits
+ standards:
+ - stdc_ext
+ return_type: unsigned fract
+ arguments:
+ - type: uint_ur_t
+ guard: LIBC_COMPILER_HAS_FIXED_POINT
+ - name: lrbits
+ standards:
+ - stdc_ext
+ return_type: long fract
+ arguments:
+ - type: int_lr_t
+ guard: LIBC_COMPILER_HAS_FIXED_POINT
+ - name: ulrbits
+ standards:
+ - stdc_ext
+ return_type: unsigned long fract
+ arguments:
+ - type: uint_ulr_t
+ guard: LIBC_COMPILER_HAS_FIXED_POINT
+ - name: hkbits
+ standards:
+ - stdc_ext
+ return_type: short accum
+ arguments:
+ - type: int_hk_t
+ guard: LIBC_COMPILER_HAS_FIXED_POINT
+ - name: uhkbits
+ standards:
+ - stdc_ext
+ return_type: unsigned short accum
+ arguments:
+ - type: uint_uhk_t
+ guard: LIBC_COMPILER_HAS_FIXED_POINT
+ - name: kbits
+ standards:
+ - stdc_ext
+ return_type: accum
+ arguments:
+ - type: int_k_t
+ guard: LIBC_COMPILER_HAS_FIXED_POINT
+ - name: ukbits
+ standards:
+ - stdc_ext
+ return_type: unsigned accum
+ arguments:
+ - type: uint_uk_t
+ guard: LIBC_COMPILER_HAS_FIXED_POINT
+ - name: lkbits
+ standards:
+ - stdc_ext
+ return_type: long accum
+ arguments:
+ - type: uint_ulr_t
+ guard: LIBC_COMPILER_HAS_FIXED_POINT
+ - name: ulkbits
+ standards:
+ - stdc_ext
+ return_type: unsigned long accum
+ arguments:
+ - type: uint_ulk_t
+ guard: LIBC_COMPILER_HAS_FIXED_POINT
+ - name: roundhk
+ standards:
+ - stdc_ext
+ return_type: short accum
+ arguments:
+ - type: short accum
+ - type: int
+ guard: LIBC_COMPILER_HAS_FIXED_POINT
+ - name: roundhr
+ standards:
+ - stdc_ext
+ return_type: short fract
+ arguments:
+ - type: short fract
+ - type: int
+ guard: LIBC_COMPILER_HAS_FIXED_POINT
+ - name: roundk
+ standards:
+ - stdc_ext
+ return_type: accum
+ arguments:
+ - type: accum
+ - type: int
+ guard: LIBC_COMPILER_HAS_FIXED_POINT
+ - name: roundlk
+ standards:
+ - stdc_ext
+ return_type: long accum
+ arguments:
+ - type: long accum
+ - type: int
+ guard: LIBC_COMPILER_HAS_FIXED_POINT
+ - name: roundlr
+ standards:
+ - stdc_ext
+ return_type: long fract
+ arguments:
+ - type: long fract
+ - type: int
+ guard: LIBC_COMPILER_HAS_FIXED_POINT
+ - name: roundr
+ standards:
+ - stdc_ext
+ return_type: fract
+ arguments:
+ - type: fract
+ - type: int
+ guard: LIBC_COMPILER_HAS_FIXED_POINT
+ - name: rounduhk
+ standards:
+ - stdc_ext
+ return_type: unsigned short accum
+ arguments:
+ - type: unsigned short accum
+ - type: int
+ guard: LIBC_COMPILER_HAS_FIXED_POINT
+ - name: rounduhr
+ standards:
+ - stdc_ext
+ return_type: unsigned short fract
+ arguments:
+ - type: unsigned short fract
+ - type: int
+ guard: LIBC_COMPILER_HAS_FIXED_POINT
+ - name: rounduk
+ standards:
+ - stdc_ext
+ return_type: unsigned accum
+ arguments:
+ - type: unsigned accum
+ - type: int
+ guard: LIBC_COMPILER_HAS_FIXED_POINT
+ - name: roundulk
+ standards:
+ - stdc_ext
+ return_type: unsigned long accum
+ arguments:
+ - type: unsigned long accum
+ - type: int
+ guard: LIBC_COMPILER_HAS_FIXED_POINT
+ - name: roundulr
+ standards:
+ - stdc_ext
+ return_type: unsigned long fract
+ arguments:
+ - type: unsigned long fract
+ - type: int
+ guard: LIBC_COMPILER_HAS_FIXED_POINT
+ - name: roundur
+ standards:
+ - stdc_ext
+ return_type: unsigned fract
+ arguments:
+ - type: unsigned fract
+ - type: int
+ guard: LIBC_COMPILER_HAS_FIXED_POINT
+ - name: sqrtuhk
+ standards:
+ - stdc_ext
+ - llvm_libc_stdfix_ext
+ return_type: unsigned short accum
+ arguments:
+ - type: unsigned short accum
+ guard: LIBC_COMPILER_HAS_FIXED_POINT
+ - name: sqrtuhr
+ standards:
+ - stdc_ext
+ - llvm_libc_stdfix_ext
+ return_type: unsigned short fract
+ arguments:
+ - type: unsigned short fract
+ guard: LIBC_COMPILER_HAS_FIXED_POINT
+ - name: sqrtuk
+ standards:
+ - stdc_ext
+ - llvm_libc_stdfix_ext
+ return_type: unsigned accum
+ arguments:
+ - type: unsigned accum
+ guard: LIBC_COMPILER_HAS_FIXED_POINT
+ - name: sqrtulk
+ standards: llvm_libc_stdfix_ext
+ return_type: unsigned long accum
+ arguments:
+ - type: unsigned long accum
+ guard: LIBC_COMPILER_HAS_FIXED_POINT
+ - name: sqrtulr
+ standards:
+ - stdc_ext
+ - llvm_libc_stdfix_ext
+ return_type: unsigned long fract
+ arguments:
+ - type: unsigned long fract
+ guard: LIBC_COMPILER_HAS_FIXED_POINT
+ - name: sqrtur
+ standards:
+ - stdc_ext
+ - llvm_libc_stdfix_ext
+ return_type: unsigned fract
+ arguments:
+ - type: unsigned fract
+ guard: LIBC_COMPILER_HAS_FIXED_POINT
+ - name: uhksqrtus
+ standards:
+ - stdc_ext
+ - llvm_libc_stdfix_ext
+ return_type: unsigned short accum
+ arguments:
+ - type: unsigned short
+ guard: LIBC_COMPILER_HAS_FIXED_POINT
+ - name: uksqrtui
+ standards:
+ - stdc_ext
+ - llvm_libc_stdfix_ext
+ return_type: unsigned accum
+ arguments:
+ - type: unsigned int
+ guard: LIBC_COMPILER_HAS_FIXED_POINT
diff --git a/libc/include/stdint.yaml b/libc/include/stdint.yaml
new file mode 100644
index 000000000000..d583a104af37
--- /dev/null
+++ b/libc/include/stdint.yaml
@@ -0,0 +1,9 @@
+header: stdint.h
+header_template: stdint.h.def
+standards:
+ - stdc
+macros: []
+types: []
+enums: []
+objects: []
+functions: []
diff --git a/libc/include/stdio.yaml b/libc/include/stdio.yaml
new file mode 100644
index 000000000000..2619984cca26
--- /dev/null
+++ b/libc/include/stdio.yaml
@@ -0,0 +1,398 @@
+header: stdio.h
+header_template: stdio.h.def
+macros:
+ - macro_name: stdout
+ macro_value: stdout
+ - macro_name: stdin
+ macro_value: stdin
+ - macro_name: stderr
+ macro_value: stderr
+types:
+ - type_name: size_t
+ - type_name: off_t
+ - type_name: cookie_io_functions_t
+ - type_name: FILE
+enums: []
+objects:
+ - object_name: stdin
+ object_type: FILE *
+ - object_name: stdout
+ object_type: FILE *
+ - object_name: stderr
+ object_type: FILE *
+functions:
+ - name: asprintf
+ standards:
+ - GNUExtensions
+ return_type: int
+ arguments:
+ - type: char **__restrict
+ - type: const char *__restrict
+ - type: '...'
+ - name: clearerr
+ standards:
+ - stdc
+ return_type: void
+ arguments:
+ - type: FILE *
+ - name: clearerr_unlocked
+ standards:
+ - GNUExtensions
+ return_type: void
+ arguments:
+ - type: FILE *
+ - name: fclose
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: FILE *
+ - name: fdopen
+ standards:
+ - POSIX
+ return_type: FILE *
+ arguments:
+ - type: int
+ - type: const char *
+ - name: feof
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: FILE *
+ - name: feof_unlocked
+ standards:
+ - GNUExtensions
+ return_type: int
+ arguments:
+ - type: FILE *
+ - name: ferror
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: FILE *
+ - name: ferror_unlocked
+ standards:
+ - GNUExtensions
+ return_type: int
+ arguments:
+ - type: FILE *
+ - name: fflush
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: FILE *
+ - name: fgetc
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: FILE *
+ - name: fgetc_unlocked
+ standards:
+ - GNUExtensions
+ return_type: int
+ arguments:
+ - type: FILE *
+ - name: fgets
+ standards:
+ - stdc
+ return_type: char *
+ arguments:
+ - type: char *__restrict
+ - type: int
+ - type: FILE *__restrict
+ - name: fileno
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: FILE *
+ - name: flockfile
+ standards:
+ - POSIX
+ return_type: void
+ arguments:
+ - type: FILE *
+ - name: fopen
+ standards:
+ - stdc
+ return_type: FILE *
+ arguments:
+ - type: const char *
+ - type: const char *
+ - name: fopencookie
+ standards:
+ - GNUExtensions
+ return_type: FILE *
+ arguments:
+ - type: void *
+ - type: const char *
+ - type: cookie_io_functions_t
+ - name: fprintf
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: FILE *__restrict
+ - type: const char *__restrict
+ - type: '...'
+ - name: fputc
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: int
+ - type: FILE *
+ - name: fputs
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: const char *__restrict
+ - type: FILE *__restrict
+ - name: fread
+ standards:
+ - stdc
+ return_type: size_t
+ arguments:
+ - type: void *__restrict
+ - type: size_t
+ - type: size_t
+ - type: FILE *__restrict
+ - name: fread_unlocked
+ standards:
+ - GNUExtensions
+ return_type: size_t
+ arguments:
+ - type: void *__restrict
+ - type: size_t
+ - type: size_t
+ - type: FILE *__restrict
+ - name: fscanf
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: FILE *__restrict
+ - type: const char *__restrict
+ - type: '...'
+ - name: vfscanf
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: FILE *__restrict
+ - type: const char *__restrict
+ - type: va_list
+ - name: fseek
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: FILE *
+ - type: long
+ - type: int
+ - name: ftell
+ standards:
+ - stdc
+ return_type: long
+ arguments:
+ - type: FILE *
+ - name: funlockfile
+ standards:
+ - POSIX
+ return_type: void
+ arguments:
+ - type: FILE *
+ - name: fwrite
+ standards:
+ - stdc
+ return_type: size_t
+ arguments:
+ - type: const void *__restrict
+ - type: size_t
+ - type: size_t
+ - type: FILE *__restrict
+ - name: fwrite_unlocked
+ standards:
+ - GNUExtensions
+ return_type: size_t
+ arguments:
+ - type: const void *__restrict
+ - type: size_t
+ - type: size_t
+ - type: FILE *__restrict
+ - name: getc
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: FILE *
+ - name: getc_unlocked
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: FILE *
+ - name: getchar
+ standards:
+ - stdc
+ return_type: int
+ arguments: []
+ - name: getchar_unlocked
+ standards:
+ - POSIX
+ return_type: int
+ arguments: []
+ - name: printf
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: const char *__restrict
+ - type: '...'
+ - name: putc
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: int
+ - type: FILE *
+ - name: putchar
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: int
+ - name: puts
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: const char *
+ - name: remove
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: const char *
+ - name: rename
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: const char *
+ - type: const char *
+ - name: scanf
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: const char *__restrict
+ - type: '...'
+ - name: vscanf
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: const char *__restrict
+ - type: va_list
+ - name: setbuf
+ standards:
+ - stdc
+ return_type: void
+ arguments:
+ - type: FILE *__restrict
+ - type: char *__restrict
+ - name: setvbuf
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: FILE *__restrict
+ - type: char *__restrict
+ - type: int
+ - type: size_t
+ - name: snprintf
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: char *__restrict
+ - type: size_t
+ - type: const char *__restrict
+ - type: '...'
+ - name: sprintf
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: char *__restrict
+ - type: const char *__restrict
+ - type: '...'
+ - name: sscanf
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: const char *__restrict
+ - type: const char *__restrict
+ - type: '...'
+ - name: ungetc
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: int
+ - type: FILE *
+ - name: vasprintf
+ standards:
+ - GNUExtensions
+ return_type: int
+ arguments:
+ - type: char **__restrict
+ - type: const char *__restrict
+ - type: va_list
+ - name: vfprintf
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: FILE *__restrict
+ - type: const char *__restrict
+ - type: va_list
+ - name: vprintf
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: const char *__restrict
+ - type: va_list
+ - name: vsnprintf
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: char *__restrict
+ - type: size_t
+ - type: const char *__restrict
+ - type: va_list
+ - name: vsprintf
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: char *__restrict
+ - type: const char *__restrict
+ - type: va_list
+ - name: vsscanf
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: const char *__restrict
+ - type: const char *__restrict
+ - type: va_list
diff --git a/libc/include/stdlib.yaml b/libc/include/stdlib.yaml
new file mode 100644
index 000000000000..4b68f272613b
--- /dev/null
+++ b/libc/include/stdlib.yaml
@@ -0,0 +1,342 @@
+header: stdlib.h
+header_template: stdlib.h.def
+standards:
+ - stdc
+macros: []
+types:
+ - type_name: __atexithandler_t
+ - type_name: __qsortrcompare_t
+ - type_name: __qsortcompare_t
+ - type_name: __bsearchcompare_t
+ - type_name: size_t
+ - type_name: lldiv_t
+ - type_name: ldiv_t
+ - type_name: div_t
+enums: []
+objects: []
+functions:
+ - name: _Exit
+ standards:
+ - stdc
+ return_type: _Noreturn void
+ arguments:
+ - type: int
+ - name: abort
+ standards:
+ - stdc
+ return_type: _Noreturn void
+ arguments:
+ - type: void
+ - name: abs
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: int
+ - name: aligned_alloc
+ standards:
+ - stdc
+ return_type: void *
+ arguments:
+ - type: size_t
+ - type: size_t
+ - name: at_quick_exit
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: __atexithandler_t
+ - name: atexit
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: __atexithandler_t
+ - name: atof
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: const char *__restrict
+ - name: atoi
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: const char *
+ - name: atol
+ standards:
+ - stdc
+ return_type: long
+ arguments:
+ - type: const char *
+ - name: atoll
+ standards:
+ - stdc
+ return_type: long long
+ arguments:
+ - type: const char *
+ - name: bsearch
+ standards:
+ - stdc
+ return_type: void *
+ arguments:
+ - type: const void *
+ - type: const void *
+ - type: size_t
+ - type: size_t
+ - type: __bsearchcompare_t
+ - name: calloc
+ standards:
+ - stdc
+ return_type: void *
+ arguments:
+ - type: size_t
+ - type: size_t
+ - name: div
+ standards:
+ - stdc
+ return_type: div_t
+ arguments:
+ - type: int
+ - type: int
+ - name: exit
+ standards:
+ - stdc
+ return_type: _Noreturn void
+ arguments:
+ - type: int
+ - name: free
+ standards:
+ - stdc
+ return_type: void
+ arguments:
+ - type: void *
+ - name: getenv
+ standards:
+ - stdc
+ return_type: char *
+ arguments:
+ - type: const char *
+ - name: labs
+ standards:
+ - stdc
+ return_type: long
+ arguments:
+ - type: long
+ - name: ldiv
+ standards:
+ - stdc
+ return_type: ldiv_t
+ arguments:
+ - type: long
+ - type: long
+ - name: llabs
+ standards:
+ - stdc
+ return_type: long long
+ arguments:
+ - type: long long
+ - name: lldiv
+ standards:
+ - stdc
+ return_type: lldiv_t
+ arguments:
+ - type: long long
+ - type: long long
+ - name: malloc
+ standards:
+ - stdc
+ return_type: void *
+ arguments:
+ - type: size_t
+ - name: qsort
+ standards:
+ - stdc
+ return_type: void
+ arguments:
+ - type: void *
+ - type: size_t
+ - type: size_t
+ - type: __qsortcompare_t
+ - name: qsort_r
+ standards:
+ - GNUExtensions
+ return_type: void
+ arguments:
+ - type: void *
+ - type: size_t
+ - type: size_t
+ - type: __qsortrcompare_t
+ - type: void *
+ - name: quick_exit
+ standards:
+ - stdc
+ return_type: _Noreturn void
+ arguments:
+ - type: int
+ - name: rand
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: void
+ - name: realloc
+ standards:
+ - stdc
+ return_type: void *
+ arguments:
+ - type: void *
+ - type: size_t
+ - name: srand
+ standards:
+ - stdc
+ return_type: void
+ arguments:
+ - type: unsigned int
+ - name: strfromd
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: char *__restrict
+ - type: size_t
+ - type: const char *__restrict
+ - type: double
+ - name: strfromf
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: char *__restrict
+ - type: size_t
+ - type: const char *__restrict
+ - type: float
+ - name: strfroml
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: char *__restrict
+ - type: size_t
+ - type: const char *__restrict
+ - type: long double
+ - name: strtod
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: const char *__restrict
+ - type: char **__restrict
+ - name: strtof
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: const char *__restrict
+ - type: char **__restrict
+ - name: strtol
+ standards:
+ - stdc
+ return_type: long
+ arguments:
+ - type: const char *__restrict
+ - type: char **__restrict
+ - type: int
+ - name: strtold
+ standards:
+ - stdc
+ return_type: long double
+ arguments:
+ - type: const char *__restrict
+ - type: char **__restrict
+ - name: strtoll
+ standards:
+ - stdc
+ return_type: long long
+ arguments:
+ - type: const char *__restrict
+ - type: char **__restrict
+ - type: int
+ - name: strtoul
+ standards:
+ - stdc
+ return_type: unsigned long
+ arguments:
+ - type: const char *__restrict
+ - type: char **__restrict
+ - type: int
+ - name: strtoull
+ standards:
+ - stdc
+ return_type: unsigned long long
+ arguments:
+ - type: const char *__restrict
+ - type: char **__restrict
+ - type: int
+ - name: strtod_l
+ standards:
+ - stdc
+ return_type: double
+ arguments:
+ - type: const char *__restrict
+ - type: char **__restrict
+ - type: locale_t
+ - name: strtof_l
+ standards:
+ - stdc
+ return_type: float
+ arguments:
+ - type: const char *__restrict
+ - type: char **__restrict
+ - type: locale_t
+ - name: strtol_l
+ standards:
+ - stdc
+ return_type: long
+ arguments:
+ - type: const char *__restrict
+ - type: char **__restrict
+ - type: int
+ - type: locale_t
+ - name: strtold_l
+ standards:
+ - stdc
+ return_type: long double
+ arguments:
+ - type: const char *__restrict
+ - type: char **__restrict
+ - type: locale_t
+ - name: strtoll_l
+ standards:
+ - stdc
+ return_type: long long
+ arguments:
+ - type: const char *__restrict
+ - type: char **__restrict
+ - type: int
+ - type: locale_t
+ - name: strtoul_l
+ standards:
+ - stdc
+ return_type: unsigned long
+ arguments:
+ - type: const char *__restrict
+ - type: char **__restrict
+ - type: int
+ - type: locale_t
+ - name: strtoull_l
+ standards:
+ - stdc
+ return_type: unsigned long long
+ arguments:
+ - type: const char *__restrict
+ - type: char **__restrict
+ - type: int
+ - type: locale_t
+ - name: system
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: const char *
diff --git a/libc/include/string.yaml b/libc/include/string.yaml
new file mode 100644
index 000000000000..deded309abc2
--- /dev/null
+++ b/libc/include/string.yaml
@@ -0,0 +1,320 @@
+header: string.h
+header_template: string.h.def
+macros: []
+types:
+ - type_name: size_t
+enums: []
+objects: []
+functions:
+ - name: memccpy
+ standards:
+ - POSIX
+ return_type: void *
+ arguments:
+ - type: void *__restrict
+ - type: const void *__restrict
+ - type: int
+ - type: size_t
+ - name: memchr
+ standards:
+ - stdc
+ return_type: void *
+ arguments:
+ - type: const void *
+ - type: int
+ - type: size_t
+ - name: memcmp
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: const void *
+ - type: const void *
+ - type: size_t
+ - name: memcpy
+ standards:
+ - stdc
+ return_type: void *
+ arguments:
+ - type: void *__restrict
+ - type: const void *__restrict
+ - type: size_t
+ - name: memmem
+ standards:
+ - GNUExtensions
+ return_type: void *
+ arguments:
+ - type: const void *
+ - type: size_t
+ - type: const void *
+ - type: size_t
+ - name: memmove
+ standards:
+ - stdc
+ return_type: void *
+ arguments:
+ - type: void *
+ - type: const void *
+ - type: size_t
+ - name: mempcpy
+ standards:
+ - POSIX
+ return_type: void *
+ arguments:
+ - type: void *__restrict
+ - type: const void *__restrict
+ - type: size_t
+ - name: memrchr
+ standards:
+ - GNUExtensions
+ return_type: void *
+ arguments:
+ - type: const void *
+ - type: int
+ - type: size_t
+ - name: memset
+ standards:
+ - stdc
+ return_type: void *
+ arguments:
+ - type: void *
+ - type: int
+ - type: size_t
+ - name: memset_explicit
+ standards:
+ - stdc
+ return_type: void *
+ arguments:
+ - type: void *
+ - type: int
+ - type: size_t
+ - name: stpcpy
+ standards:
+ - POSIX
+ return_type: char *
+ arguments:
+ - type: char *__restrict
+ - type: const char *__restrict
+ - name: stpncpy
+ standards:
+ - POSIX
+ return_type: char *
+ arguments:
+ - type: char *__restrict
+ - type: const char *__restrict
+ - type: size_t
+ - name: strcasestr
+ standards:
+ - GNUExtensions
+ return_type: char *
+ arguments:
+ - type: const char *
+ - type: const char *
+ - name: strcat
+ standards:
+ - stdc
+ return_type: char *
+ arguments:
+ - type: char *__restrict
+ - type: const char *__restrict
+ - name: strchr
+ standards:
+ - stdc
+ return_type: char *
+ arguments:
+ - type: const char *
+ - type: int
+ - name: strchrnul
+ standards:
+ - GNUExtensions
+ return_type: char *
+ arguments:
+ - type: const char *
+ - type: int
+ - name: strcmp
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: const char *
+ - type: const char *
+ - name: strcoll
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: const char *
+ - type: const char *
+ - name: strcoll_l
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: const char *
+ - type: const char *
+ - type: locale_t
+ - name: strcpy
+ standards:
+ - stdc
+ return_type: char *
+ arguments:
+ - type: char *__restrict
+ - type: const char *__restrict
+ - name: strcspn
+ standards:
+ - stdc
+ return_type: size_t
+ arguments:
+ - type: const char *
+ - type: const char *
+ - name: strdup
+ return_type: char *
+ arguments:
+ - type: const char *
+ - name: strerror
+ standards:
+ - stdc
+ return_type: char *
+ arguments:
+ - type: int
+ - name: strerror_r
+ standards:
+ - GNUExtensions
+ return_type: char *
+ arguments:
+ - type: int
+ - type: char *
+ - type: size_t
+ - name: strlcat
+ standards:
+ - BSDExtensions
+ return_type: size_t
+ arguments:
+ - type: char *__restrict
+ - type: const char *__restrict
+ - type: size_t
+ - name: strlcpy
+ standards:
+ - BSDExtensions
+ return_type: size_t
+ arguments:
+ - type: char *__restrict
+ - type: const char *__restrict
+ - type: size_t
+ - name: strlen
+ standards:
+ - stdc
+ return_type: size_t
+ arguments:
+ - type: const char *
+ - name: strncat
+ standards:
+ - stdc
+ return_type: char *
+ arguments:
+ - type: char *
+ - type: const char *
+ - type: size_t
+ - name: strncmp
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: const char *
+ - type: const char *
+ - type: size_t
+ - name: strncpy
+ standards:
+ - stdc
+ return_type: char *
+ arguments:
+ - type: char *__restrict
+ - type: const char *__restrict
+ - type: size_t
+ - name: strndup
+ standards:
+ - stdc
+ return_type: char *
+ arguments:
+ - type: const char *
+ - type: size_t
+ - name: strnlen
+ standards:
+ - POSIX
+ return_type: size_t
+ arguments:
+ - type: const char *
+ - type: size_t
+ - name: strpbrk
+ standards:
+ - stdc
+ return_type: char *
+ arguments:
+ - type: const char *
+ - type: const char *
+ - name: strrchr
+ standards:
+ - stdc
+ return_type: char *
+ arguments:
+ - type: const char *
+ - type: int
+ - name: strsep
+ standards:
+ - BSDExtensions
+ return_type: char *
+ arguments:
+ - type: char **__restrict
+ - type: const char *__restrict
+ - name: strsignal
+ standards:
+ - POSIX
+ return_type: char *
+ arguments:
+ - type: int
+ - name: strspn
+ standards:
+ - stdc
+ return_type: size_t
+ arguments:
+ - type: const char *
+ - type: const char *
+ - name: strstr
+ standards:
+ - stdc
+ return_type: char *
+ arguments:
+ - type: const char *
+ - type: const char *
+ - name: strtok
+ standards:
+ - stdc
+ return_type: char *
+ arguments:
+ - type: char *__restrict
+ - type: const char *__restrict
+ - name: strtok_r
+ standards:
+ - POSIX
+ return_type: char *
+ arguments:
+ - type: char *__restrict
+ - type: const char *__restrict
+ - type: char ** __restrict
+ - name: strxfrm
+ standards:
+ - stdc
+ return_type: size_t
+ arguments:
+ - type: char *__restrict
+ - type: const char *__restrict
+ - type: size_t
+ - name: strxfrm_l
+ standards:
+ - stdc
+ return_type: size_t
+ arguments:
+ - type: char *__restrict
+ - type: const char *__restrict
+ - type: size_t
+ - type: locale_t
diff --git a/libc/include/strings.yaml b/libc/include/strings.yaml
new file mode 100644
index 000000000000..e672dca6a94d
--- /dev/null
+++ b/libc/include/strings.yaml
@@ -0,0 +1,59 @@
+header: strings.h
+header_template: strings.h.def
+macros: []
+types: []
+enums: []
+objects: []
+functions:
+ - name: bcmp
+ standards:
+ - llvm_libc_ext
+ return_type: int
+ arguments:
+ - type: const void *
+ - type: const void *
+ - type: size_t
+ - name: bcopy
+ standards:
+ - llvm_libc_ext
+ return_type: void
+ arguments:
+ - type: const void *
+ - type: void *
+ - type: size_t
+ - name: bzero
+ standards:
+ - llvm_libc_ext
+ return_type: void
+ arguments:
+ - type: void *
+ - type: size_t
+ - name: index
+ standards:
+ - BSDExtensions
+ return_type: char *
+ arguments:
+ - type: const char *
+ - type: int
+ - name: rindex
+ standards:
+ - BSDExtensions
+ return_type: char *
+ arguments:
+ - type: const char *
+ - type: int
+ - name: strcasecmp
+ standards:
+ - BSDExtensions
+ return_type: int
+ arguments:
+ - type: const char *
+ - type: const char *
+ - name: strncasecmp
+ standards:
+ - BSDExtensions
+ return_type: int
+ arguments:
+ - type: const char *
+ - type: const char *
+ - type: size_t
diff --git a/libc/include/sys/auxv.yaml b/libc/include/sys/auxv.yaml
new file mode 100644
index 000000000000..82ecee75c40a
--- /dev/null
+++ b/libc/include/sys/auxv.yaml
@@ -0,0 +1,13 @@
+header: sys/auxv.h
+header_template: auxv.h.def
+macros: []
+types: []
+enums: []
+objects: []
+functions:
+ - name: getauxval
+ standards:
+ - GNUExtensions
+ return_type: unsigned long
+ arguments:
+ - type: unsigned long
diff --git a/libc/include/sys/epoll.yaml b/libc/include/sys/epoll.yaml
new file mode 100644
index 000000000000..996eb785bc71
--- /dev/null
+++ b/libc/include/sys/epoll.yaml
@@ -0,0 +1,61 @@
+header: sys/epoll.h
+header_template: epoll.h.def
+macros: []
+types:
+ - type_name: struct_epoll_event
+ - type_name: struct_epoll_data
+ - type_name: sigset_t
+ - type_name: struct_timespec
+enums: []
+objects: []
+functions:
+ - name: epoll_create
+ standards:
+ - Linux
+ return_type: int
+ arguments:
+ - type: int
+ - name: epoll_create1
+ standards:
+ - Linux
+ return_type: int
+ arguments:
+ - type: int
+ - name: epoll_ctl
+ standards:
+ - Linux
+ return_type: int
+ arguments:
+ - type: int
+ - type: int
+ - type: int
+ - type: struct epoll_event *
+ - name: epoll_pwait
+ standards:
+ - Linux
+ return_type: int
+ arguments:
+ - type: int
+ - type: struct epoll_event *
+ - type: int
+ - type: int
+ - type: const sigset_t *
+ - name: epoll_pwait2
+ standards:
+ - Linux
+ return_type: int
+ arguments:
+ - type: int
+ - type: struct epoll_event *
+ - type: int
+ - type: const struct timespec *
+ - type: const sigset_t *
+ - name: epoll_wait
+ standards:
+ - Linux
+ return_type: int
+ arguments:
+ - type: int
+ - type: struct epoll_event *
+ - type: int
+ - type: int
diff --git a/libc/include/sys/ioctl.yaml b/libc/include/sys/ioctl.yaml
new file mode 100644
index 000000000000..5f7b7f333191
--- /dev/null
+++ b/libc/include/sys/ioctl.yaml
@@ -0,0 +1,8 @@
+header: sys/ioctl.h
+header_template: ioctl.h.def
+standards: POSIX
+macros: []
+types: []
+enums: []
+objects: []
+functions: []
diff --git a/libc/include/sys/mman.yaml b/libc/include/sys/mman.yaml
new file mode 100644
index 000000000000..8c207552f980
--- /dev/null
+++ b/libc/include/sys/mman.yaml
@@ -0,0 +1,135 @@
+header: sys/mman.h
+header_template: mman.h.def
+macros: []
+types:
+ - type_name: mode_t
+ - type_name: size_t
+ - type_name: off_t
+enums: []
+objects: []
+functions:
+ - name: madvise
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: void *
+ - type: size_t
+ - type: int
+ - name: mincore
+ standards:
+ - Linux
+ return_type: int
+ arguments:
+ - type: void *
+ - type: size_t
+ - type: unsigned char *
+ - name: mlock
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: void *
+ - type: size_t
+ - name: mlock2
+ standards:
+ - Linux
+ return_type: int
+ arguments:
+ - type: void *
+ - type: size_t
+ - type: unsigned int
+ - name: mlockall
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: int
+ - name: mmap
+ standards:
+ - POSIX
+ return_type: void *
+ arguments:
+ - type: void *
+ - type: size_t
+ - type: int
+ - type: int
+ - type: int
+ - type: off_t
+ - name: mremap
+ standards:
+ - POSIX
+ return_type: void *
+ arguments:
+ - type: void *
+ - type: size_t
+ - type: size_t
+ - type: int
+ - type: '...'
+ - name: mprotect
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: void *
+ - type: size_t
+ - type: int
+ - name: msync
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: void *
+ - type: size_t
+ - type: int
+ - name: munlock
+ standards: POSIX
+ return_type: int
+ arguments:
+ - type: void *
+ - type: size_t
+ - name: munlockall
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: void
+ - name: munmap
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: void *
+ - type: size_t
+ - name: posix_madvise
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: void *
+ - type: size_t
+ - type: int
+ - name: remap_file_pages
+ standards:
+ - Linux
+ return_type: int
+ arguments:
+ - type: void *
+ - type: size_t
+ - type: int
+ - type: size_t
+ - type: int
+ - name: shm_open
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: const char *
+ - type: int
+ - type: mode_t
+ - name: shm_unlink
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: const char *
diff --git a/libc/include/sys/prctl.yaml b/libc/include/sys/prctl.yaml
new file mode 100644
index 000000000000..53f57645b18e
--- /dev/null
+++ b/libc/include/sys/prctl.yaml
@@ -0,0 +1,17 @@
+header: sys/prctl.h
+header_template: prctl.h.def
+macros: []
+types: []
+enums: []
+objects: []
+functions:
+ - name: prctl
+ standards:
+ - Linux
+ return_type: int
+ arguments:
+ - type: int
+ - type: unsigned long
+ - type: unsigned long
+ - type: unsigned long
+ - type: unsigned long
diff --git a/libc/include/sys/random.yaml b/libc/include/sys/random.yaml
new file mode 100644
index 000000000000..4efb2fbb4473
--- /dev/null
+++ b/libc/include/sys/random.yaml
@@ -0,0 +1,17 @@
+header: sys/random.h
+header_template: random.h.def
+macros: []
+types:
+ - type_name: ssize_t
+ - type_name: size_t
+enums: []
+objects: []
+functions:
+ - name: getrandom
+ standards:
+ - Linux
+ return_type: ssize_t
+ arguments:
+ - type: void *
+ - type: size_t
+ - type: unsigned int
diff --git a/libc/include/sys/resource.yaml b/libc/include/sys/resource.yaml
new file mode 100644
index 000000000000..3652d6d490a4
--- /dev/null
+++ b/libc/include/sys/resource.yaml
@@ -0,0 +1,21 @@
+header: sys/resource.h
+header_template: resource.h.def
+macros: []
+types:
+ - type_name: struct_rlimit
+ - type_name: rlim_t
+enums: []
+objects: []
+functions:
+ - name: getrlimit
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: struct rlimit *
+ - name: setrlimit
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: const struct rlimit
diff --git a/libc/include/sys/select.yaml b/libc/include/sys/select.yaml
new file mode 100644
index 000000000000..6066fd341f07
--- /dev/null
+++ b/libc/include/sys/select.yaml
@@ -0,0 +1,23 @@
+header: sys/select.h
+header_template: select.h.def
+macros: []
+types:
+ - type_name: struct_timeval
+ - type_name: struct_timespec
+ - type_name: suseconds_t
+ - type_name: sigset_t
+ - type_name: time_t
+ - type_name: fd_set
+enums: []
+objects: []
+functions:
+ - name: select
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: int
+ - type: fd_set *__restrict
+ - type: fd_set *__restrict
+ - type: fd_set *__restrict
+ - type: struct timeval *__restrict
diff --git a/libc/include/sys/sendfile.yaml b/libc/include/sys/sendfile.yaml
new file mode 100644
index 000000000000..259ab83dff54
--- /dev/null
+++ b/libc/include/sys/sendfile.yaml
@@ -0,0 +1,19 @@
+header: sys/sendfile.h
+header_template: sendfile.h.def
+macros: []
+types:
+ - type_name: ssize_t
+ - type_name: size_t
+ - type_name: off_t
+enums: []
+objects: []
+functions:
+ - name: sendfile
+ standards:
+ - GNUExtensions
+ return_type: ssize_t
+ arguments:
+ - type: int
+ - type: int
+ - type: off_t *
+ - type: size_t
diff --git a/libc/include/sys/socket.yaml b/libc/include/sys/socket.yaml
new file mode 100644
index 000000000000..00d5de6af8a8
--- /dev/null
+++ b/libc/include/sys/socket.yaml
@@ -0,0 +1,119 @@
+header: sys/socket.h
+header_template: socket.h.def
+macros: []
+types:
+ - type_name: struct_sockaddr_un
+ - type_name: struct_sockaddr
+ - type_name: socklen_t
+ - type_name: sa_family_t
+ - type_name: struct_msghdr
+ - type_name: struct_iovec
+ - type_name: size_t
+ - type_name: ssize_t
+enums: []
+objects: []
+functions:
+ - name: accept
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: int
+ - type: sockaddr *__restrict
+ - type: socklen_t *__restrict
+ - name: bind
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: int
+ - type: const struct sockaddr *
+ - type: socklen_t
+ - name: connect
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: int
+ - type: const struct sockaddr *
+ - type: socklen_t
+ - name: listen
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: int
+ - type: int
+ - name: recv
+ standards:
+ - POSIX
+ return_type: ssize_t
+ arguments:
+ - type: int
+ - type: void *
+ - type: size_t
+ - type: int
+ - name: recvfrom
+ standards:
+ - POSIX
+ return_type: ssize_t
+ arguments:
+ - type: int
+ - type: void *
+ - type: size_t
+ - type: int
+ - type: struct sockaddr *__restrict
+ - type: socklen_t *__restrict
+ - name: recvmsg
+ standards:
+ - POSIX
+ return_type: ssize_t
+ arguments:
+ - type: int
+ - type: struct msghdr *
+ - type: int
+ - name: send
+ standards:
+ - POSIX
+ return_type: ssize_t
+ arguments:
+ - type: int
+ - type: const void*
+ - type: size_t
+ - type: int
+ - name: sendmsg
+ standards:
+ - POSIX
+ return_type: ssize_t
+ arguments:
+ - type: int
+ - type: const struct msghdr *
+ - type: int
+ - name: sendto
+ standards:
+ - POSIX
+ return_type: ssize_t
+ arguments:
+ - type: int
+ - type: const void *
+ - type: size_t
+ - type: int
+ - type: const struct sockaddr *
+ - type: socklen_t
+ - name: socket
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: int
+ - type: int
+ - type: int
+ - name: socketpair
+ standards:
+ - posix
+ return_type: int
+ arguments:
+ - type: int
+ - type: int
+ - type: int
+ - type: int*
diff --git a/libc/include/sys/stat.yaml b/libc/include/sys/stat.yaml
new file mode 100644
index 000000000000..7f013420818a
--- /dev/null
+++ b/libc/include/sys/stat.yaml
@@ -0,0 +1,78 @@
+header: sys/stat.h
+header_template: stat.h.def
+macros: []
+types:
+ - type_name: blkcnt_t
+ - type_name: blksize_t
+ - type_name: off_t
+ - type_name: struct_timeval
+ - type_name: gid_t
+ - type_name: struct_stat
+ - type_name: uid_t
+ - type_name: nlink_t
+ - type_name: dev_t
+ - type_name: struct_timespec
+ - type_name: ino_t
+ - type_name: mode_t
+enums: []
+objects: []
+functions:
+ - name: chmod
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: const char *
+ - type: mode_t
+ - name: fchmod
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: int
+ - type: mode_t
+ - name: fchmodat
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: int
+ - type: const char *
+ - type: mode_t
+ - type: int
+ - name: fstat
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: int
+ - type: struct stat *
+ - name: lstat
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: const char *__restrict
+ - type: struct stat *__restrict
+ - name: mkdir
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: const char *
+ - type: mode_t
+ - name: mkdirat
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: int
+ - type: const char *
+ - type: mode_t
+ - name: stat
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: const char *__restrict
+ - type: struct stat *__restrict
diff --git a/libc/include/sys/statvfs.yaml b/libc/include/sys/statvfs.yaml
new file mode 100644
index 000000000000..8c1d254add37
--- /dev/null
+++ b/libc/include/sys/statvfs.yaml
@@ -0,0 +1,24 @@
+header: sys/statvfs.h
+header_template: statvfs.h.def
+macros: []
+types:
+ - type_name: struct_statvfs
+ - type_name: fsblkcnt_t
+ - type_name: fsfilcnt_t
+enums: []
+objects: []
+functions:
+ - name: fstatvfs
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: int
+ - type: struct statvfs *
+ - name: statvfs
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: const char *__restrict
+ - type: struct statvfs *__restrict
diff --git a/libc/include/sys/syscall.yaml b/libc/include/sys/syscall.yaml
new file mode 100644
index 000000000000..879d95c2ea39
--- /dev/null
+++ b/libc/include/sys/syscall.yaml
@@ -0,0 +1,8 @@
+header: sys/syscall.h
+header_template: syscall.h.def
+standards: Linux
+macros: []
+types: []
+enums: []
+functions: []
+objects: []
diff --git a/libc/include/sys/time.yaml b/libc/include/sys/time.yaml
new file mode 100644
index 000000000000..687c1f83028d
--- /dev/null
+++ b/libc/include/sys/time.yaml
@@ -0,0 +1,8 @@
+header: sys/time.h
+header_template: time.h.def
+standards: Linux
+macros: []
+types: []
+enums: []
+functions: []
+objects: []
diff --git a/libc/include/sys/types.yaml b/libc/include/sys/types.yaml
new file mode 100644
index 000000000000..6fa0b448fcd3
--- /dev/null
+++ b/libc/include/sys/types.yaml
@@ -0,0 +1,32 @@
+header: sys/types.h
+header_template: types.h.def
+standards: POSIX
+macros: []
+types:
+ - type_name: uid_t
+ - type_name: time_t
+ - type_name: pthread_t
+ - type_name: pthread_rwlock_t
+ - type_name: pthread_rwlockattr_t
+ - type_name: pthread_mutex_t
+ - type_name: blkcnt_t
+ - type_name: blksize_t
+ - type_name: clockid_t
+ - type_name: ssize_t
+ - type_name: pthread_mutexattr_t
+ - type_name: ino_t
+ - type_name: pthread_once_t
+ - type_name: mode_t
+ - type_name: dev_t
+ - type_name: pthread_attr_t
+ - type_name: gid_t
+ - type_name: pid_t
+ - type_name: nlink_t
+ - type_name: suseconds_t
+ - type_name: off_t
+ - type_name: size_t
+ - type_name: pthread_key_t
+ - type_name: pthread_condattr_t
+enums: []
+objects: []
+functions: []
diff --git a/libc/include/sys/utsname.yaml b/libc/include/sys/utsname.yaml
new file mode 100644
index 000000000000..6c7cb71f9a34
--- /dev/null
+++ b/libc/include/sys/utsname.yaml
@@ -0,0 +1,14 @@
+header: sys/utsname.h
+header_template: utsname.h.def
+macros: []
+types:
+ - type_name: struct_utsname
+enums: []
+objects: []
+functions:
+ - name: uname
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: struct utsname *
diff --git a/libc/include/sys/wait.yaml b/libc/include/sys/wait.yaml
new file mode 100644
index 000000000000..6257e34b9e08
--- /dev/null
+++ b/libc/include/sys/wait.yaml
@@ -0,0 +1,34 @@
+header: sys/wait.h
+header_template: wait.h.def
+macros: []
+types:
+ - type_name: siginfo_t
+ - type_name: struct_rusage
+ - type_name: pid_t
+enums: []
+objects: []
+functions:
+ - name: wait
+ standards:
+ - POSIX
+ return_type: pid_t
+ arguments:
+ - type: int *
+ - name: wait4
+ standards:
+ - BSDExtensions
+ - POSIX
+ return_type: pid_t
+ arguments:
+ - type: pid_t
+ - type: int *
+ - type: int
+ - type: struct rusage *
+ - name: waitpid
+ standards:
+ - POSIX
+ return_type: pid_t
+ arguments:
+ - type: pid_t
+ - type: int *
+ - type: int
diff --git a/libc/include/termios.yaml b/libc/include/termios.yaml
new file mode 100644
index 000000000000..8815097264f9
--- /dev/null
+++ b/libc/include/termios.yaml
@@ -0,0 +1,86 @@
+header: termios.h
+header_template: termios.h.def
+macros: []
+types:
+ - type_name: tcflag_t
+ - type_name: struct_termios
+ - type_name: speed_t
+ - type_name: pid_t
+ - type_name: cc_t
+enums: []
+objects: []
+functions:
+ - name: cfgetispeed
+ standards:
+ - POSIX
+ return_type: speed_t
+ arguments:
+ - type: const struct termios *
+ - name: cfgetospeed
+ standards:
+ - POSIX
+ return_type: speed_t
+ arguments:
+ - type: const struct termios *
+ - name: cfsetispeed
+ standards:
+ - POSIX
+ return_type: speed_t
+ arguments:
+ - type: struct termios *
+ - type: speed_t
+ - name: cfsetospeed
+ standards:
+ - POSIX
+ return_type: speed_t
+ arguments:
+ - type: struct termios *
+ - type: speed_t
+ - name: tcdrain
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: int
+ - name: tcflow
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: int
+ - type: int
+ - name: tcflush
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: int
+ - type: int
+ - name: tcgetattr
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: int
+ - type: struct termios *
+ - name: tcgetsid
+ standards:
+ - POSIX
+ return_type: pid_t
+ arguments:
+ - type: int
+ - name: tcsendbreak
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: int
+ - type: int
+ - name: tcsetattr
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: int
+ - type: int
+ - type: struct termios *
diff --git a/libc/include/threads.yaml b/libc/include/threads.yaml
new file mode 100644
index 000000000000..7014822f9251
--- /dev/null
+++ b/libc/include/threads.yaml
@@ -0,0 +1,162 @@
+header: threads.h
+header_template: threads.h.def
+macros:
+ - macro_name: ONCE_FLAG_INIT
+ macro_value: '{0}'
+types:
+ - type_name: once_flag
+ - type_name: __call_once_func_t
+ - type_name: cnd_t
+ - type_name: mtx_t
+ - type_name: thrd_start_t
+ - type_name: thrd_t
+ - type_name: tss_t
+ - type_name: tss_dtor_t
+enums:
+ - name: mtx_plain
+ value: null
+ - name: mtx_recursive
+ value: null
+ - name: mtx_timed
+ value: null
+ - name: thrd_timedout
+ value: null
+ - name: thrd_success
+ value: null
+ - name: thrd_busy
+ value: null
+ - name: thrd_error
+ value: null
+ - name: thrd_nomem
+ value: null
+objects: []
+functions:
+ - name: call_once
+ standards:
+ - stdc
+ return_type: void
+ arguments:
+ - type: once_flag *
+ - type: __call_once_func_t
+ - name: cnd_broadcast
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: cnd_t *
+ - name: cnd_destroy
+ standards:
+ - stdc
+ return_type: void
+ arguments:
+ - type: cnd_t *
+ - name: cnd_init
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: cnd_t *
+ - name: cnd_signal
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: cnd_t *
+ - name: cnd_wait
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: cnd_t *
+ - type: mtx_t *
+ - name: mtx_destroy
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: void
+ - name: mtx_init
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: mtx_t *
+ - type: int
+ - name: mtx_lock
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: mtx_t *
+ - name: mtx_unlock
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: mtx_t *
+ - name: thrd_create
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: thrd_t *
+ - type: thrd_start_t
+ - type: void *
+ - name: thrd_current
+ standards:
+ - stdc
+ return_type: thrd_t
+ arguments:
+ - type: void
+ - name: thrd_detach
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: thrd_t
+ - name: thrd_equal
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: thrd_t
+ - type: thrd_t
+ - name: thrd_exit
+ standards:
+ - stdc
+ return_type: void
+ arguments:
+ - type: int
+ - name: thrd_join
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: thrd_t
+ - type: int *
+ - name: tss_create
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: tss_t *
+ - type: tss_dtor_t
+ - name: tss_delete
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: tss_t
+ - name: tss_get
+ standards:
+ - stdc
+ return_type: void *
+ arguments:
+ - type: tss_t
+ - name: tss_set
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: tss_t
+ - type: void *
diff --git a/libc/include/time.yaml b/libc/include/time.yaml
new file mode 100644
index 000000000000..b71b9ab72075
--- /dev/null
+++ b/libc/include/time.yaml
@@ -0,0 +1,106 @@
+header: time.h
+header_template: time.h.def
+macros: []
+types:
+ - type_name: struct_timeval
+ - type_name: clockid_t
+ - type_name: struct_timespec
+ - type_name: struct_tm
+ - type_name: time_t
+ - type_name: clock_t
+ - type_name: size_t
+enums: []
+objects: []
+functions:
+ - name: asctime
+ standard:
+ - stdc
+ return_type: char *
+ arguments:
+ - type: const struct tm *
+ - name: asctime_r
+ standard:
+ - stdc
+ return_type: char *
+ arguments:
+ - type: struct tm *
+ - type: char *
+ - name: ctime
+ standard:
+ - stdc
+ return_type: char *
+ arguments:
+ - type: const time_t *
+ - name: ctime_r
+ standard:
+ - stdc
+ return_type: char *
+ arguments:
+ - type: const time_t *
+ - type: char *
+ - name: clock
+ standard:
+ - stdc
+ return_type: clock_t
+ arguments:
+ - type: void
+ - name: clock_gettime
+ standard:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: clockid_t
+ - type: struct timespec *
+ - name: difftime
+ standard:
+ - stdc
+ return_type: double
+ arguments:
+ - type: time_t
+ - type: time_t
+ - name: gettimeofday
+ standard:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: struct timeval *
+ - type: void *
+ - name: gmtime
+ standard:
+ - stdc
+ return_type: struct tm *
+ arguments:
+ - type: time_t *
+ - name: gmtime_r
+ standard:
+ - stdc
+ return_type: struct tm *
+ arguments:
+ - type: time_t *
+ - type: struct tm *
+ - name: mktime
+ standard:
+ - stdc
+ return_type: time_t
+ arguments:
+ - type: struct tm *
+ - name: nanosleep
+ standard:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: const struct timespec *
+ - type: struct timespec *
+ - name: time
+ standard:
+ - stdc
+ return_type: time_t
+ arguments:
+ - type: time_t *
+ - name: timespec_get
+ standard:
+ - stdc
+ return_type: int
+ arguments:
+ - type: struct timespec *
+ - type: int
diff --git a/libc/include/uchar.yaml b/libc/include/uchar.yaml
new file mode 100644
index 000000000000..713919796762
--- /dev/null
+++ b/libc/include/uchar.yaml
@@ -0,0 +1,14 @@
+header: uchar.h
+header_template: uchar.h.def
+standards:
+ - stdc
+macros: []
+types:
+ - type_name: char32_t
+ - type_name: char16_t
+ - type_name: char8_t
+ - type_name: mbstate_t
+ - type_name: size_t
+enums: []
+objects: []
+functions: []
diff --git a/libc/include/unistd.yaml b/libc/include/unistd.yaml
new file mode 100644
index 000000000000..fada365e0103
--- /dev/null
+++ b/libc/include/unistd.yaml
@@ -0,0 +1,323 @@
+header: unistd.h
+header_template: unistd.h.def
+macros: []
+types:
+ - type_name: uid_t
+ - type_name: ssize_t
+ - type_name: size_t
+ - type_name: pid_t
+ - type_name: off_t
+ - type_name: __getoptargv_t
+ - type_name: __exec_envp_t
+ - type_name: __exec_argv_t
+enums: []
+objects:
+ - object_name: environ
+ object_type: char **
+ - object_name: optarg
+ object_type: char *
+ - object_name: optind
+ object_type: int
+ - object_name: opterr
+ object_type: int
+ - object_name: optopt
+ object_type: int
+functions:
+ - name: __llvm_libc_syscall
+ standards:
+ - POSIX
+ return_type: long
+ arguments:
+ - type: long
+ - type: long
+ - type: long
+ - type: long
+ - type: long
+ - type: long
+ - type: long
+ - name: _exit
+ standards:
+ - POSIX
+ return_type: _Noreturn void
+ arguments:
+ - type: int
+ - name: access
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: const char *
+ - type: int
+ - name: chdir
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: const char *
+ - name: close
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: int
+ - name: dup
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: int
+ - name: dup2
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: int
+ - type: int
+ - name: dup3
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: int
+ - type: int
+ - type: int
+ - name: execv
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: const char *
+ - type: __exec_argv_t
+ - name: execve
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: const char *
+ - type: __exec_argv_t
+ - type: __exec_envp_t
+ - name: fchdir
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: int
+ - name: fork
+ standards:
+ - POSIX
+ return_type: pid_t
+ arguments:
+ - type: void
+ - name: fsync
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: int
+ - name: ftruncate
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: int
+ - type: off_t
+ - name: getcwd
+ standards:
+ - POSIX
+ return_type: char *
+ arguments:
+ - type: char *
+ - type: size_t
+ - name: geteuid
+ standards:
+ - POSIX
+ return_type: uid_t
+ arguments:
+ - type: void
+ - name: getopt
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: int
+ - type: __getoptargv_t
+ - type: const char *
+ - name: getpid
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: void
+ - name: getppid
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: void
+ - name: gettid
+ standards:
+ - Linux
+ return_type: pid_t
+ arguments:
+ - type: void
+ - name: getuid
+ standards:
+ - POSIX
+ return_type: uid_t
+ arguments:
+ - type: void
+ - name: isatty
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: int
+ guard: null
+ attributes: []
+ - name: link
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: const char *
+ - type: const char *
+ - name: linkat
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: int
+ - type: const char *
+ - type: int
+ - type: const char *
+ - type: int
+ - name: lseek
+ standards:
+ - POSIX
+ return_type: off_t
+ arguments:
+ - type: int
+ - type: off_t
+ - type: int
+ - name: pipe
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: int *
+ - name: pipe2
+ standards:
+ - Linux
+ return_type: int
+ arguments:
+ - type: int *
+ - type: int
+ - name: pread
+ standards:
+ - POSIX
+ return_type: ssize_t
+ arguments:
+ - type: int
+ - type: void *
+ - type: size_t
+ - type: off_t
+ - name: pwrite
+ standards:
+ - POSIX
+ return_type: ssize_t
+ arguments:
+ - type: int
+ - type: const void *
+ - type: size_t
+ - type: off_t
+ - name: read
+ standards:
+ - POSIX
+ return_type: ssize_t
+ arguments:
+ - type: int
+ - type: void *
+ - type: size_t
+ - name: readlink
+ standards:
+ - POSIX
+ return_type: ssize_t
+ arguments:
+ - type: const char *__restrict
+ - type: char *__restrict
+ - type: size_t
+ - name: readlinkat
+ standards:
+ - POSIX
+ return_type: ssize_t
+ arguments:
+ - type: const char *__restrict
+ - type: char *__restrict
+ - type: size_t
+ - name: rmdir
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: const char *
+ - name: swab
+ standards:
+ - POSIX
+ return_type: void
+ arguments:
+ - type: const void *__restrict
+ - type: void *
+ - type: ssize_t
+ - name: symlink
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: const char *
+ - type: const char *
+ - name: symlinkat
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: int
+ - type: const char *
+ - type: int
+ - type: const char *
+ - name: sysconf
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: int
+ - name: truncate
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: const char *
+ - type: off_t
+ - name: unlink
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: const char *
+ - name: unlinkat
+ standards:
+ - POSIX
+ return_type: int
+ arguments:
+ - type: int
+ - type: const char *
+ - type: int
+ - name: write
+ standards:
+ - POSIX
+ return_type: ssize_t
+ arguments:
+ - type: int
+ - type: const void *
+ - type: size_t
+ guard: null
+ attributes: []
diff --git a/libc/include/wchar.yaml b/libc/include/wchar.yaml
new file mode 100644
index 000000000000..27a5926b5745
--- /dev/null
+++ b/libc/include/wchar.yaml
@@ -0,0 +1,17 @@
+header: wchar.h
+header_template: wchar.h.def
+macros: []
+types:
+ - type_name: size_t
+ - type_name: wint_t
+ - type_name: wchar_t
+ - type_name: mbstate_t
+enums: []
+objects: []
+functions:
+ - name: wctob
+ standards:
+ - stdc
+ return_type: int
+ arguments:
+ - type: wint_t