project_files/hwc/rtl/fileio.h
branchwebgl
changeset 7983 02f36c3e7f6c
child 8047 25a4daa6473c
equal deleted inserted replaced
7981:aac257b77842 7983:02f36c3e7f6c
       
     1 #ifndef FILEIO_H_
       
     2 #define FILEIO_H_
       
     3 
       
     4 #include <stdio.h>
       
     5 #include "types.h"
       
     6 #include "misc.h"
       
     7 
       
     8 extern        int                                       FileMode;
       
     9 
       
    10 typedef enum{
       
    11     IO_NO_ERROR = 0,
       
    12     IO_ERROR_DUMMY = 1
       
    13 }io_result_t;
       
    14 
       
    15 extern        io_result_t                               IOResult;
       
    16 
       
    17 typedef struct{
       
    18     FILE        *fp;
       
    19     const char* mode;
       
    20     char        file_name[256];
       
    21     int         eof;
       
    22     int            record_len;
       
    23 }file_wrapper_t;
       
    24 
       
    25 typedef     file_wrapper_t*                             File;
       
    26 typedef     File                                        Text;
       
    27 typedef     Text                                        TextFile;
       
    28 
       
    29 void        __attribute__((overloadable))               fpcrtl_readLn(File f);
       
    30 #define     fpcrtl_readLn1(f)                           fpcrtl_readLn(f)
       
    31 
       
    32 void        __attribute__((overloadable))               fpcrtl_readLn__vars(File f, Integer *i);
       
    33 void        __attribute__((overloadable))               fpcrtl_readLn__vars(File f, LongWord *i);
       
    34 void        __attribute__((overloadable))               fpcrtl_readLn__vars(File f, string255 *s);
       
    35 #define     fpcrtl_readLn2(f, t)                        fpcrtl_readLn__vars(f, &(t))
       
    36 
       
    37 #define     fpcrtl_readLn(...)                          macro_dispatcher(fpcrtl_readLn, __VA_ARGS__)(__VA_ARGS__)
       
    38 
       
    39 
       
    40 void        fpcrtl_blockRead__vars(File f, void *buf, Integer count, Integer *result);
       
    41 #define     fpcrtl_blockRead(f, buf, count, result)     fpcrtl_blockRead__vars(f, &(buf), count, &(result))
       
    42 #define     fpcrtl_BlockRead                            fpcrtl_blockRead
       
    43 
       
    44 #define     fpcrtl_assign(f, name)                      fpcrtl_assign__vars(&f, name)
       
    45 void        fpcrtl_assign__vars(File *f, string255 name);
       
    46 
       
    47 boolean     fpcrtl_eof(File f);
       
    48 
       
    49 void        fpcrtl_reset1(File f);
       
    50 void        fpcrtl_reset2(File f, Integer l);
       
    51 #define     fpcrtl_reset1(f)                            fpcrtl_reset1(f)
       
    52 #define     fpcrtl_reset2(f, l)                         fpcrtl_reset2(f, l)
       
    53 #define     fpcrtl_reset(...)                           macro_dispatcher(fpcrtl_reset, __VA_ARGS__)(__VA_ARGS__)
       
    54 
       
    55 void        fpcrtl_close(File f);
       
    56 
       
    57 void        __attribute__((overloadable))               fpcrtl_rewrite(File f);
       
    58 void        __attribute__((overloadable))               fpcrtl_rewrite(File f, Integer l);
       
    59 
       
    60 void        __attribute__((overloadable))               fpcrtl_flush(Text f);
       
    61 void        __attribute__((overloadable))               fpcrtl_flush(FILE *f);
       
    62 
       
    63 void        __attribute__((overloadable))               fpcrtl_write(File f, string255 s);
       
    64 void        __attribute__((overloadable))               fpcrtl_write(FILE *f, string255 s);
       
    65 void        __attribute__((overloadable))               fpcrtl_writeLn(File f, string255 s);
       
    66 void        __attribute__((overloadable))               fpcrtl_writeLn(FILE *f, string255 s);
       
    67 
       
    68 void        fpcrtl_blockWrite__vars(File f, const void *buf, Integer count, Integer *result);
       
    69 #define     fpcrtl_blockWrite(f, buf, count, result)    fpcrtl_blockWrite__vars(f, &(buf), count, &(result))
       
    70 #define     fpcrtl_BlockWrite                           fpcrtl_blockWrite
       
    71 
       
    72 bool        fpcrtl_directoryExists(string255 dir);
       
    73 #define     fpcrtl_DirectoryExists                      fpcrtl_directoryExists
       
    74 
       
    75 bool        fpcrtl_fileExists(string255 filename);
       
    76 #define     fpcrtl_FileExists                           fpcrtl_fileExists
       
    77 
       
    78 #endif /* FILEIO_H_ */