#ifndef _LIBC_IO_FILE_H_ #define _LIBC_IO_FILE_H_ #include enum file_flags { FILE_EOF = 0x01u, FILE_ERR = 0x02u, FILE_BIN = 0x04u, }; struct __opaque_file { enum file_flags f_flags; int f_fd; char f_unget; char *f_buf; size_t f_buf_datalen, f_buf_max; size_t f_buf_readptr; }; extern int __libc_file_refill(struct __opaque_file *f); extern int __libc_file_read(struct __opaque_file *f, void *out, size_t count); extern size_t __libc_file_available(struct __opaque_file *f); #endif