|
|
1.1 root 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: * @(#)fiodefs.h 5.2 (Berkeley) 7/30/85
7: */
8:
9: /*
10: * fortran file i/o type definitions
11: */
12:
13: #include <stdio.h>
14: #include "f_errno.h"
15:
16: /* Logical Unit Table Size */
17: #define MXUNIT 100
18:
19: #define GLITCH '\2' /* special quote for Stu, generated in f77pass1 */
20:
21: #define NAMELIST -2
22: #define LISTDIRECTED -1
23: #define FORMATTED 1
24:
25: #define ERROR 1
26: #define OK 0
27: #define YES 1
28: #define NO 0
29:
30: #define STDERR 0
31: #define STDIN 5
32: #define STDOUT 6
33:
34: #define WRITE 1
35: #define READ 2
36: #define SEQ 3
37: #define DIR 4
38: #define FMT 5
39: #define UNF 6
40: #define EXT 7
41: #define INT 8
42:
43: typedef char ioflag;
44: typedef long ftnint;
45: typedef ftnint flag;
46: typedef long ftnlen;
47:
48: typedef struct /*external read, write*/
49: { flag cierr;
50: ftnint ciunit;
51: flag ciend;
52: char *cifmt;
53: ftnint cirec;
54: } cilist;
55:
56: typedef struct /*internal read, write*/
57: { flag icierr;
58: char *iciunit;
59: flag iciend;
60: char *icifmt;
61: ftnint icirlen;
62: ftnint icirnum;
63: ftnint icirec;
64: } icilist;
65:
66: typedef struct /*open*/
67: { flag oerr;
68: ftnint ounit;
69: char *ofnm;
70: ftnlen ofnmlen;
71: char *osta;
72: char *oacc;
73: char *ofm;
74: ftnint orl;
75: char *oblnk;
76: } olist;
77:
78: typedef struct /*close*/
79: { flag cerr;
80: ftnint cunit;
81: char *csta;
82: } cllist;
83:
84: typedef struct /*rewind, backspace, endfile*/
85: { flag aerr;
86: ftnint aunit;
87: } alist;
88:
89: typedef struct /*units*/
90: { FILE *ufd; /*0=unconnected*/
91: char *ufnm;
92: long uinode;
93: int url; /*0=sequential*/
94: flag useek; /*true=can backspace, use dir, ...*/
95: flag ufmt;
96: flag uprnt;
97: flag ublnk;
98: flag uend;
99: flag uwrt; /*last io was write*/
100: flag uscrtch;
101: } unit;
102:
103: typedef struct /* inquire */
104: { flag inerr;
105: ftnint inunit;
106: char *infile;
107: ftnlen infilen;
108: ftnint *inex; /*parameters in standard's order*/
109: ftnint *inopen;
110: ftnint *innum;
111: ftnint *innamed;
112: char *inname;
113: ftnlen innamlen;
114: char *inacc;
115: ftnlen inacclen;
116: char *inseq;
117: ftnlen inseqlen;
118: char *indir;
119: ftnlen indirlen;
120: char *inform;
121: ftnlen informlen;
122: char *infmt;
123: ftnint infmtlen;
124: char *inunf;
125: ftnlen inunflen;
126: ftnint *inrecl;
127: ftnint *innrec;
128: char *inblank;
129: ftnlen inblanklen;
130: } inlist;
131:
132: typedef union
133: { float pf;
134: double pd;
135: } ufloat;
136:
137: typedef union
138: { short is;
139: char ic;
140: long il;
141: } uint;
142:
143: struct ioiflg {
144: short if_oeof;
145: short if_ctrl;
146: short if_bzro;
147: };
148: #define opneof ioiflg_.if_oeof
149: #define ccntrl ioiflg_.if_ctrl
150: #define blzero ioiflg_.if_bzro
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.