X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FLibraries%2Flibc.so_src%2Fstdio_int.h;h=c56338cfc4fb9ca94c68d57524a48fbdf8d02ce6;hb=92c5980925e773c6e1d6775c50c9d86c77b84d23;hp=5bfbf986b49ecee9669b2e8160ee58c2946b26d4;hpb=9d3800f60f2212432e550a4e003ae65b498a4d36;p=tpg%2Facess2.git diff --git a/Usermode/Libraries/libc.so_src/stdio_int.h b/Usermode/Libraries/libc.so_src/stdio_int.h index 5bfbf986..c56338cf 100644 --- a/Usermode/Libraries/libc.so_src/stdio_int.h +++ b/Usermode/Libraries/libc.so_src/stdio_int.h @@ -4,28 +4,46 @@ * Configuration Options */ #ifndef _STDIO_INT_H -# define _STDIO_INT_H +#define _STDIO_INT_H + +#include +#include // === CONSTANTS === -#define FILE_FLAG_MODE_MASK 0x07 -#define FILE_FLAG_MODE_READ 0x01 -#define FILE_FLAG_MODE_WRITE 0x02 -#define FILE_FLAG_MODE_EXEC 0x03 -#define FILE_FLAG_MODE_APPEND 0x04 -#define FILE_FLAG_M_EXT 0x10 +#define FILE_FLAG_MODE_READ 0x0001 +#define FILE_FLAG_MODE_WRITE 0x0002 +#define FILE_FLAG_MODE_EXEC 0x0003 +#define FILE_FLAG_MODE_APPEND 0x0004 +#define FILE_FLAG_MODE_MASK 0x0007 + +#define FILE_FLAG_M_EXT 0x0010 +#define FILE_FLAG_M_BINARY 0x0020 + +#define FILE_FLAG_EOF 0x0100 +#define FILE_FLAG_LINEBUFFERED 0x1000 // Flush when '\n' encountered +#define FILE_FLAG_OURBUFFER 0x2000 // Buffer is owned by stdio + +#define FILE_FLAG_ALLOC 0x8000 // Internal 'is used' flag + +#define _GetFileMode(fp) ((fp)->Flags & FILE_FLAG_MODE_MASK) // === TYPES === struct sFILE { - int FD; int Flags; + int FD; + off_t Pos; + #if DEBUG_BUILD - char *FileName; + char *FileName; // heap #endif - #if STDIO_LOCAL_BUFFER + off_t BufferOfs; // File offset of first byte in buffer char *Buffer; - Uint64 BufferStart; - int BufferSize; - #endif + size_t BufferPos; // First unused byte in the buffer (read/write pos essentially) + size_t BufferSpace; // Number of bytes allocated in \a Buffer + + // open_memstream + char **BufPtr; + size_t *LenPtr; }; #endif