hide purely dependency-triggering functions in stdio __toread & __towrite
[musl] / include / stdio.h
index fe7ff51..afadd91 100644 (file)
@@ -21,7 +21,11 @@ extern "C" {
 
 #include <bits/alltypes.h>
 
+#ifdef __cplusplus
 #define NULL 0L
+#else
+#define NULL ((void*)0)
+#endif
 
 #undef EOF
 #define EOF (-1)
@@ -38,13 +42,14 @@ extern "C" {
 #define _IONBF 2
 
 #define BUFSIZ 1024
-#define FILENAME_MAX 4095
+#define FILENAME_MAX 4096
 #define FOPEN_MAX 1000
 #define TMP_MAX 10000
 #define L_tmpnam 20
 
-typedef union {
+typedef union _G_fpos64_t {
        char __opaque[16];
+       long long __lldata;
        double __align;
 } fpos_t;
 
@@ -178,6 +183,20 @@ int vasprintf(char **, const char *, __isoc_va_list);
 #ifdef _GNU_SOURCE
 char *fgets_unlocked(char *, int, FILE *);
 int fputs_unlocked(const char *, FILE *);
+
+typedef ssize_t (cookie_read_function_t)(void *, char *, size_t);
+typedef ssize_t (cookie_write_function_t)(void *, const char *, size_t);
+typedef int (cookie_seek_function_t)(void *, off_t *, int);
+typedef int (cookie_close_function_t)(void *);
+
+typedef struct _IO_cookie_io_functions_t {
+       cookie_read_function_t *read;
+       cookie_write_function_t *write;
+       cookie_seek_function_t *seek;
+       cookie_close_function_t *close;
+} cookie_io_functions_t;
+
+FILE *fopencookie(void *, const char *, cookie_io_functions_t);
 #endif
 
 #if defined(_LARGEFILE64_SOURCE) || defined(_GNU_SOURCE)