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