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