#ifndef COSMOPOLITAN_LIBC_STDIO_INTERNAL_H_ #define COSMOPOLITAN_LIBC_STDIO_INTERNAL_H_ #include "libc/stdio/stdio.h" #include "libc/thread/thread.h" #define PUSHBACK 12 COSMOPOLITAN_C_START_ struct FILE { uint8_t bufmode; /* _IOFBF, etc. (ignored if fd=-1) */ char noclose; /* for fake dup() todo delete! */ char dynamic; /* did malloc() create this object? */ uint32_t iomode; /* O_RDONLY, etc. (ignored if fd=-1) */ int32_t state; /* 0=OK, -1=EOF, >0=errno */ int fd; /* ≥0=fd, -1=closed|buffer */ uint32_t beg; uint32_t end; char *buf; uint32_t size; uint32_t nofree; int pid; char *getln; pthread_mutex_t lock; struct FILE *next; char mem[BUFSIZ]; }; extern uint64_t g_rando; int __fflush_impl(FILE *); int __fflush_register(FILE *); void __fflush_unregister(FILE *); bool __stdio_isok(FILE *); FILE *__stdio_alloc(void); void __stdio_free(FILE *); COSMOPOLITAN_C_END_ #endif /* COSMOPOLITAN_LIBC_STDIO_INTERNAL_H_ */