xref: /original-bsd/usr.bin/f77/pass1.vax/fio.h (revision 2301fdfb)
1 /*
2  * Copyright (c) 1980 Regents of the University of California.
3  * All rights reserved.  The Berkeley software License Agreement
4  * specifies the terms and conditions for redistribution.
5  *
6  *	@(#)fio.h	5.1 (Berkeley) 06/07/85
7  */
8 
9 #include <stdio.h>
10 typedef long ftnint;
11 typedef ftnint flag;
12 typedef long ftnlen;
13 /*external read, write*/
14 typedef struct
15 {	flag cierr;
16 	ftnint ciunit;
17 	flag ciend;
18 	char *cifmt;
19 	ftnint cirec;
20 } cilist;
21 /*internal read, write*/
22 typedef struct
23 {	flag icierr;
24 	char *iciunit;
25 	flag iciend;
26 	char *icifmt;
27 	ftnint icirlen;
28 	ftnint icirnum;
29 } icilist;
30 /*open*/
31 typedef struct
32 {	flag oerr;
33 	ftnint ounit;
34 	char *ofnm;
35 	ftnlen ofnmlen;
36 	char *osta;
37 	char *oacc;
38 	char *ofm;
39 	ftnint orl;
40 	char *oblnk;
41 } olist;
42 /*close*/
43 typedef struct
44 {	flag cerr;
45 	ftnint cunit;
46 	char *csta;
47 } cllist;
48 /*rewind, backspace, endfile*/
49 typedef struct
50 {	flag aerr;
51 	ftnint aunit;
52 } alist;
53 /*units*/
54 typedef struct
55 {	FILE *ufd;	/*0=unconnected*/
56 	char *ufnm;
57 	long uinode;
58 	int url;	/*0=sequential*/
59 	flag useek;	/*true=can backspace, use dir, ...*/
60 	flag ufmt;
61 	flag uprnt;
62 	flag ublnk;
63 	flag uend;
64 	flag uwrt;	/*last io was write*/
65 	flag uscrtch;
66 } unit;
67 typedef struct
68 {	flag inerr;
69 	ftnint inunit;
70 	char *infile;
71 	ftnlen infilen;
72 	ftnint	*inex;	/*parameters in standard's order*/
73 	ftnint	*inopen;
74 	ftnint	*innum;
75 	ftnint	*innamed;
76 	char	*inname;
77 	ftnlen	innamlen;
78 	char	*inacc;
79 	ftnlen	inacclen;
80 	char	*inseq;
81 	ftnlen	inseqlen;
82 	char 	*indir;
83 	ftnlen	indirlen;
84 	char	*infmt;
85 	ftnlen	infmtlen;
86 	char	*inform;
87 	ftnint	informlen;
88 	char	*inunf;
89 	ftnlen	inunflen;
90 	ftnint	*inrecl;
91 	ftnint	*innrec;
92 	char	*inblank;
93 	ftnlen	inblanklen;
94 } inlist;
95 
96 extern int errno;
97 extern flag init;
98 extern cilist *elist;	/*active external io list*/
99 extern flag reading,external,sequential,formatted;
100 extern int (*getn)(),(*putn)();	/*for formatted io*/
101 extern FILE *cf;	/*current file*/
102 extern unit *curunit;	/*current unit*/
103 extern unit units[];
104 #define err(f,n,s) {if(f) errno= n; else fatal(n,s); return(n);}
105 
106 /*Table sizes*/
107 #define MXUNIT 10
108 
109 extern int recpos;	/*position in current record*/
110