12507Sdlw /* 2*12037Sdlw char id_fiodefs[] = "@(#)fiodefs.h 1.3"; 32507Sdlw * 42507Sdlw * fortran file i/o type definitions 52507Sdlw */ 62507Sdlw 72507Sdlw #include <stdio.h> 82507Sdlw #include "f_errno.h" 92507Sdlw 102507Sdlw /* Logical Unit Table Size */ 112507Sdlw #define MXUNIT _NFILE 122507Sdlw 132507Sdlw #define GLITCH '\2' /* special quote for Stu, generated in f77pass1 */ 142507Sdlw 152507Sdlw #define LISTDIRECTED -1 162507Sdlw #define FORMATTED 1 172507Sdlw 182507Sdlw #define ERROR 1 192507Sdlw #define OK 0 202507Sdlw #define YES 1 212507Sdlw #define NO 0 222507Sdlw 232507Sdlw #define STDERR 0 242507Sdlw #define STDIN 5 252507Sdlw #define STDOUT 6 262507Sdlw 272507Sdlw #define WRITE 1 282507Sdlw #define READ 2 292507Sdlw #define SEQ 3 302507Sdlw #define DIR 4 312507Sdlw #define FMT 5 322507Sdlw #define UNF 6 332507Sdlw #define EXT 7 342507Sdlw #define INT 8 352507Sdlw 362507Sdlw typedef char ioflag; 372507Sdlw typedef long ftnint; 382507Sdlw typedef ftnint flag; 392507Sdlw typedef long ftnlen; 402507Sdlw 412507Sdlw typedef struct /*external read, write*/ 422507Sdlw { flag cierr; 432507Sdlw ftnint ciunit; 442507Sdlw flag ciend; 452507Sdlw char *cifmt; 462507Sdlw ftnint cirec; 472507Sdlw } cilist; 482507Sdlw 492507Sdlw typedef struct /*internal read, write*/ 502507Sdlw { flag icierr; 512507Sdlw char *iciunit; 522507Sdlw flag iciend; 532507Sdlw char *icifmt; 542507Sdlw ftnint icirlen; 552507Sdlw ftnint icirnum; 562507Sdlw ftnint icirec; 572507Sdlw } icilist; 582507Sdlw 592507Sdlw typedef struct /*open*/ 602507Sdlw { flag oerr; 612507Sdlw ftnint ounit; 622507Sdlw char *ofnm; 632507Sdlw ftnlen ofnmlen; 642507Sdlw char *osta; 652507Sdlw char *oacc; 662507Sdlw char *ofm; 672507Sdlw ftnint orl; 682507Sdlw char *oblnk; 692507Sdlw } olist; 702507Sdlw 712507Sdlw typedef struct /*close*/ 722507Sdlw { flag cerr; 732507Sdlw ftnint cunit; 742507Sdlw char *csta; 752507Sdlw } cllist; 762507Sdlw 772507Sdlw typedef struct /*rewind, backspace, endfile*/ 782507Sdlw { flag aerr; 792507Sdlw ftnint aunit; 802507Sdlw } alist; 812507Sdlw 822507Sdlw typedef struct /*units*/ 832507Sdlw { FILE *ufd; /*0=unconnected*/ 842507Sdlw char *ufnm; 852507Sdlw long uinode; 862507Sdlw int url; /*0=sequential*/ 872507Sdlw flag useek; /*true=can backspace, use dir, ...*/ 882507Sdlw flag ufmt; 892507Sdlw flag uprnt; 902507Sdlw flag ublnk; 912507Sdlw flag uend; 922507Sdlw flag uwrt; /*last io was write*/ 932507Sdlw flag uscrtch; 942507Sdlw } unit; 952507Sdlw 962507Sdlw typedef struct /* inquire */ 972507Sdlw { flag inerr; 982507Sdlw ftnint inunit; 992507Sdlw char *infile; 1002507Sdlw ftnlen infilen; 1012507Sdlw ftnint *inex; /*parameters in standard's order*/ 1022507Sdlw ftnint *inopen; 1032507Sdlw ftnint *innum; 1042507Sdlw ftnint *innamed; 1052507Sdlw char *inname; 1062507Sdlw ftnlen innamlen; 1072507Sdlw char *inacc; 1082507Sdlw ftnlen inacclen; 1092507Sdlw char *inseq; 1102507Sdlw ftnlen inseqlen; 1112507Sdlw char *indir; 1122507Sdlw ftnlen indirlen; 1132507Sdlw char *inform; 1142507Sdlw ftnlen informlen; 1152507Sdlw char *infmt; 1162507Sdlw ftnint infmtlen; 1172507Sdlw char *inunf; 1182507Sdlw ftnlen inunflen; 1192507Sdlw ftnint *inrecl; 1202507Sdlw ftnint *innrec; 1212507Sdlw char *inblank; 1222507Sdlw ftnlen inblanklen; 1232507Sdlw } inlist; 1242507Sdlw 1252507Sdlw typedef union 1262507Sdlw { float pf; 1272507Sdlw double pd; 1282507Sdlw } ufloat; 1292507Sdlw 1302507Sdlw typedef union 1312507Sdlw { short is; 1322507Sdlw char ic; 1332507Sdlw long il; 1342507Sdlw } uint; 1352507Sdlw 13612020Sdlw struct ioiflg { 137*12037Sdlw short if_oeof; 13812020Sdlw short if_ctrl; 13912020Sdlw short if_bzro; 14012020Sdlw }; 141*12037Sdlw #define opneof ioiflg_.if_oeof 14212020Sdlw #define ccntrl ioiflg_.if_ctrl 14312020Sdlw #define blzero ioiflg_.if_bzro 144