|
|
1.1 root 1: /* @(#)fio.h 1.2 */
2: /* 3.0 SID # 1.3 */
3: #include <stdio.h>
4: typedef long ftnint;
5: typedef ftnint flag;
6: typedef long ftnlen;
7: /*external read, write*/
8: typedef struct
9: { flag cierr;
10: ftnint ciunit;
11: flag ciend;
12: char *cifmt;
13: ftnint cirec;
14: } cilist;
15: /*internal read, write*/
16: typedef struct
17: { flag icierr;
18: char *iciunit;
19: flag iciend;
20: char *icifmt;
21: ftnint icirlen;
22: ftnint icirnum;
23: } icilist;
24: /*open*/
25: typedef struct
26: { flag oerr;
27: ftnint ounit;
28: char *ofnm;
29: ftnlen ofnmlen;
30: char *osta;
31: char *oacc;
32: char *ofm;
33: ftnint orl;
34: char *oblnk;
35: } olist;
36: /*close*/
37: typedef struct
38: { flag cerr;
39: ftnint cunit;
40: char *csta;
41: } cllist;
42: /*rewind, backspace, endfile*/
43: typedef struct
44: { flag aerr;
45: ftnint aunit;
46: } alist;
47: /*units*/
48: typedef struct
49: { FILE *ufd; /*0=unconnected*/
50: char *ufnm;
51: long uinode;
52: int url; /*0=sequential*/
53: flag useek; /*true=can backspace, use dir, ...*/
54: flag ufmt;
55: flag uprnt;
56: flag ublnk;
57: flag uend;
58: flag uwrt; /*last io was write*/
59: flag uscrtch;
60: } unit;
61: typedef struct
62: { flag inerr;
63: ftnint inunit;
64: char *infile;
65: ftnlen infilen;
66: ftnint *inex; /*parameters in standard's order*/
67: ftnint *inopen;
68: ftnint *innum;
69: ftnint *innamed;
70: char *inname;
71: ftnlen innamlen;
72: char *inacc;
73: ftnlen inacclen;
74: char *inseq;
75: ftnlen inseqlen;
76: char *indir;
77: ftnlen indirlen;
78: char *infmt;
79: ftnlen infmtlen;
80: char *inform;
81: ftnint informlen;
82: char *inunf;
83: ftnlen inunflen;
84: ftnint *inrecl;
85: ftnint *innrec;
86: char *inblank;
87: ftnlen inblanklen;
88: } inlist;
89:
90: extern int errno;
91: extern flag init;
92: extern cilist *elist; /*active external io list*/
93: extern flag reading,external,sequential,formatted;
94: extern int (*getn)(),(*putn)(); /*for formatted io*/
95: extern FILE *cf; /*current file*/
96: extern unit *curunit; /*current unit*/
97: extern unit units[];
98: #define err(f,m,s) {if(f) errno= m; else fatal(m,s); return(m);}
99:
100: /*Table sizes*/
101: #define MXUNIT 100
102:
103: extern int recpos; /*position in current record*/
104: extern int cursor; /* offset to move to */
105: extern int hiwater; /* so TL doesn't confuse us */
106:
107: #define WRITE 1
108: #define READ 2
109: #define SEQ 3
110: #define DIR 4
111: #define FMT 5
112: #define UNF 6
113: #define EXT 7
114: #define INT 8
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.