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