X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FLibraries%2Flibc.so_src%2Fstdio_int.h;h=c56338cfc4fb9ca94c68d57524a48fbdf8d02ce6;hb=0dd55a90dfc0073f9432635a621c3ec6d2d9bca9;hp=f87da812564767f289efd21695beff8f1bd721e2;hpb=04a050f42807686dc119838c82372409246d55bb;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 f87da812..c56338cf 100644 --- a/Usermode/Libraries/libc.so_src/stdio_int.h +++ b/Usermode/Libraries/libc.so_src/stdio_int.h @@ -10,16 +10,22 @@ #include // === CONSTANTS === -#define FILE_FLAG_MODE_MASK 0x0007 #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_DIRTY 0x0200 -#define FILE_FLAG_ALLOC 0x1000 +#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 { @@ -30,9 +36,14 @@ struct sFILE { #if DEBUG_BUILD char *FileName; // heap #endif - void *Buffer; - off_t BufferStart; - size_t BufferSize; + off_t BufferOfs; // File offset of first byte in buffer + char *Buffer; + 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