musl/include
William Pitcock 061843340f implement the fopencookie extension to stdio
notes added by maintainer:

this function is a GNU extension. it was chosen over the similar BSD
function funopen because the latter depends on fpos_t being an
arithmetic type as part of its public API, conflicting with our
definition of fpos_t and with the intent that it be an opaque type. it
was accepted for inclusion because, despite not being widely used, it
is usually very difficult to extricate software using it from the
dependency on it.

calling pattern for the read and write callbacks is not likely to
match glibc or other implementations, but should work with any
reasonable callbacks. in particular the read function is never called
without at least one byte being needed to satisfy its caller, so that
spurious blocking is not introduced.

contracts for what callbacks called from inside libc/stdio can do are
always complicated, and at some point still need to be specified
explicitly. at the very least, the callbacks must return or block
indefinitely (they cannot perform nonlocal exits) and they should not
make calls to stdio using their own FILE as an argument.
2017-12-06 13:11:48 -05:00
..
arpa add basic dns record parsing functions 2014-12-17 14:40:35 -05:00
net add ARPHDR_VSOCKMON from linux v4.12 2017-11-05 18:41:14 -05:00
netinet add new tcp.h socket options from linux v4.13 2017-11-05 18:41:26 -05:00
netpacket update netpacket/packet.h to linux v4.3 2016-01-26 18:29:32 -05:00
scsi add legacy scsi/scsi_ioctl.h header 2013-07-03 18:07:50 +02:00
sys add SO_ getsockopt options from linux v4.13 2017-11-05 18:41:21 -05:00
aio.h make all objects used with atomic operations volatile 2015-03-03 22:50:02 -05:00
alloca.h alloca cannot be a function. #define it to the gcc builtin if possible 2012-04-09 15:06:58 -04:00
alltypes.h.in move wint_t definition to the shared part of alltypes.h.in 2014-12-21 02:43:35 -05:00
ar.h some extra legacy header stuff 2012-05-06 16:35:32 -04:00
assert.h restore _Noreturn to __assert_fail 2016-08-30 16:39:54 -04:00
byteswap.h remove all remaining redundant __restrict/__inline/_Noreturn defs 2012-09-08 17:14:52 -04:00
complex.h fix mismatched parens in CMPLX def for annex-g-conforming compilers 2015-11-02 21:44:57 -05:00
cpio.h initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
crypt.h replace old and ugly crypt implementation 2012-06-29 00:56:37 -04:00
ctype.h add macro version of ctype.h isascii function 2015-06-06 18:16:22 +00:00
dirent.h fix various header namespace issues under feature-test-macro control 2016-10-20 17:20:01 -04:00
dlfcn.h const-qualify the address argument to dladdr 2014-01-06 22:03:38 -05:00
elf.h elf.h: update EM_ elf machine defines and add R_BPF_ defines 2016-10-20 01:27:46 -04:00
endian.h default features: make musl usable without feature test macros 2012-09-07 23:13:55 -04:00
err.h fix redundant _Noreturn def in err.h 2012-09-08 18:16:33 -04:00
errno.h remove attribute((const)) from pthread_self and errno location decls 2015-09-17 04:45:01 +00:00
fcntl.h add new fcntl.h macros from linux v4.13 2017-11-05 18:41:24 -05:00
features.h in public headers, don't assume pre-C99 compilers have __inline keyword 2016-12-16 23:12:32 -05:00
fenv.h initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
float.h fix FLT_ROUNDS regression in C++ applications 2015-03-23 11:26:51 -04:00
fmtmsg.h implement fmtmsg function 2014-06-21 19:24:15 -04:00
fnmatch.h remove now-unnecessary features.h inclusion from fnmatch.h 2013-12-02 02:06:52 -05:00
ftw.h make brace placement in public header struct definitions consistent 2016-07-03 15:02:25 -04:00
getopt.h make brace placement in public header struct definitions consistent 2016-07-03 15:02:25 -04:00
glob.h fix macros for LFS *64_t types in sys/stat.h, sys/types.h, glob.h 2014-09-05 16:03:07 -04:00
grp.h fix various header namespace issues under feature-test-macro control 2016-10-20 17:20:01 -04:00
iconv.h remove all remaining redundant __restrict/__inline/_Noreturn defs 2012-09-08 17:14:52 -04:00
ifaddrs.h remove parameter names from public headers 2016-10-20 17:04:37 -04:00
inttypes.h fix inttypes.h PRI and SCN macros for [u]intptr_t types 2013-10-30 14:52:55 -04:00
iso646.h add previously-missing ios646.h 2011-02-14 21:59:38 -05:00
langinfo.h add _NL_LOCALE_NAME extension to nl_langinfo 2017-07-31 23:08:27 -04:00
lastlog.h some extra legacy header stuff 2012-05-06 16:35:32 -04:00
libgen.h initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
libintl.h add format argument attributes to gettext function prototypes 2015-09-15 20:30:36 +00:00
limits.h increase TTY_NAME_MAX limit to 32 2013-11-29 12:45:09 -05:00
link.h generalize ELF hash table types not to assume 32-bit entries 2016-11-11 12:46:06 -05:00
locale.h restore type of NULL to void * except when used in C++ programs 2013-11-24 21:42:55 -05:00
malloc.h add malloc_usable_size function and non-stub malloc.h 2014-08-25 22:47:27 -04:00
math.h math.h: make __FLOAT_BITS and __DOUBLE_BITS C89 2014-03-09 19:29:41 +01:00
memory.h add memory.h, bogus legacy alias for string.h 2012-03-01 01:34:58 -05:00
mntent.h make brace placement in public header struct definitions consistent 2016-07-03 15:02:25 -04:00
monetary.h remove all remaining redundant __restrict/__inline/_Noreturn defs 2012-09-08 17:14:52 -04:00
mqueue.h remove all remaining redundant __restrict/__inline/_Noreturn defs 2012-09-08 17:14:52 -04:00
netdb.h move IPPORT_RESERVED from netdb.h to netinet/in.h 2017-08-29 20:50:48 -04:00
nl_types.h refactor headers, especially alltypes.h, and improve C++ ABI compat 2013-07-22 11:22:36 -04:00
paths.h remove duplicate definition of _PATH_LASTLOG in paths.h 2013-12-03 20:34:36 -05:00
poll.h make brace placement in public header struct definitions consistent 2016-07-03 15:02:25 -04:00
pthread.h add limited pthread_setattr_default_np API to set stack size defaults 2016-11-08 12:45:03 -05:00
pty.h fix __cplusplus extern "C" closing brace in pty.h (typo?) 2011-11-10 21:01:24 -05:00
pwd.h fix various header namespace issues under feature-test-macro control 2016-10-20 17:20:01 -04:00
regex.h make regoff_t and regex_t match C++ ABI 2013-07-22 14:39:59 -04:00
resolv.h don't claim support for resolv.h APIs that aren't supported 2016-11-07 11:55:53 -05:00
sched.h fix use of memset without declaration in sched.h cpu set macros 2017-09-28 12:57:06 -04:00
search.h implement hcreate_r, hdestroy_r and hsearch_r 2014-04-02 18:37:45 -04:00
semaphore.h make all objects used with atomic operations volatile 2015-03-03 22:50:02 -05:00
setjmp.h remove macro definition of longjmp from setjmp.h 2015-04-01 20:35:03 -04:00
shadow.h initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
signal.h add SS_AUTODISARM sigaltstack ss_flags from linux v4.7 to signal.h 2016-08-30 15:58:25 -04:00
spawn.h add no-op POSIX_SPAWN_USEVFORK to spawn.h 2017-04-22 20:40:09 -04:00
stdalign.h add static_assert and hide noreturn, alignas, alignof from C++ 2014-08-27 02:55:54 -04:00
stdarg.h remove legacy i386 fallback stdarg implementation and framework 2016-12-15 12:18:24 -05:00
stdbool.h stdbool.h should define __bool_true_false_are_defined even for C++ 2013-08-28 00:41:00 -04:00
stdc-predef.h add stdc-predef.h for library-level predefined macros 2016-07-03 20:03:30 -04:00
stddef.h add max_align_t definition for C11 and C++11 2014-08-20 17:20:14 -04:00
stdint.h fix signedness of UINT32_MAX and UINT64_MAX at the preprocessor level 2014-12-21 02:30:29 -05:00
stdio_ext.h stdio_ext.h needs to include stdio.h, at least to get FILE... 2012-08-24 16:16:30 -04:00
stdio.h implement the fopencookie extension to stdio 2017-12-06 13:11:48 -05:00
stdlib.h remove parameter names from public headers 2016-10-20 17:04:37 -04:00
stdnoreturn.h add static_assert and hide noreturn, alignas, alignof from C++ 2014-08-27 02:55:54 -04:00
string.h remove useless declarations in string.h 2017-07-04 17:04:21 -04:00
strings.h implement ffsl and ffsll functions 2014-07-31 02:38:23 -04:00
stropts.h add isastream (obsolete STREAMS junk) 2012-05-06 09:03:19 -04:00
syscall.h header file fixes: multiple include guard consistency and correctness 2012-06-15 21:52:53 -04:00
sysexits.h add sysexits.h legacy header 2011-04-05 15:40:36 -04:00
syslog.h remove hack in syslog.h that resulted in aliasing violations 2014-06-21 07:44:46 -04:00
tar.h initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
termios.h default features: make musl usable without feature test macros 2012-09-07 23:13:55 -04:00
tgmath.h math: more correct tgmath.h type cast logic 2012-12-19 10:57:54 +01:00
threads.h remove parameter names from public headers 2016-10-20 17:04:37 -04:00
time.h fix various header namespace issues under feature-test-macro control 2016-10-20 17:20:01 -04:00
uchar.h implement uchar.h (C11 UTF-16/32 conversion) interfaces 2014-10-13 20:59:42 -04:00
ucontext.h fixup mcontext stuff to expost gregset_t/fpregset_t as appropriate 2012-11-25 23:04:23 -05:00
ulimit.h initial check-in, version 0.5.0 2011-02-12 00:22:29 -05:00
unistd.h fix various header namespace issues under feature-test-macro control 2016-10-20 17:20:01 -04:00
utime.h make brace placement in public header struct definitions consistent 2016-07-03 15:02:25 -04:00
utmp.h add declarations for utmpname/utmpxname to appropriate headers 2016-02-12 09:58:50 -05:00
utmpx.h fix typo in utmpx.h 2016-10-20 16:55:32 -04:00
values.h add legacy header values.h 2013-01-04 20:36:34 +01:00
wait.h add workaround header for wait.h remapping to sys/wait.h 2013-09-01 01:01:31 -04:00
wchar.h remove parameter names from public headers 2016-10-20 17:04:37 -04:00
wctype.h improve iswdigit macro to diagnose errors 2015-05-02 21:19:08 -04:00
wordexp.h make brace placement in public header typedef'd structs consistent 2016-07-03 16:19:28 -04:00