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