source: branches/libc-0.6/src/gcc/libf2c/g2c.hin

Last change on this file was 1392, checked in by bird, 21 years ago

This commit was generated by cvs2svn to compensate for changes in r1391,
which included commits to RCS files with non-trunk default branches.

  • Property cvs2svn:cvs-rev set to 1.1.1.2
  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 5.4 KB
Line 
1/* g2c.h -- g77 version of f2c (Standard Fortran to C header file) */
2
3/* This file is generated by the g77 libg2c configuration process from a
4 file named g2c.hin. This process sets up the appropriate types,
5 defines the appropriate macros, and so on. The resulting g2c.h file
6 is used to build g77's copy of libf2c, named libg2c, and also can
7 be used when compiling C code produced by f2c to link the resulting
8 object file(s) with those produced by the same version of g77 that
9 produced this file, allowing inter-operability of f2c-compiled and
10 g77-compiled code. */
11
12/** barf [ba:rf] 2. "He suggested using FORTRAN, and everybody barfed."
13
14 - From The Shogakukan DICTIONARY OF NEW ENGLISH (Second edition) */
15
16#ifndef F2C_INCLUDE
17#define F2C_INCLUDE
18
19/* F2C_INTEGER will normally be `int' but would be `long' on 16-bit systems */
20/* we assume short, float are OK */
21typedef __g77_integer integer;
22typedef __g77_uinteger uinteger;
23typedef char *address;
24typedef short int shortint;
25typedef float real;
26typedef double doublereal;
27typedef struct { real r, i; } complex;
28typedef struct { doublereal r, i; } doublecomplex;
29typedef __g77_integer logical;
30typedef short int shortlogical;
31typedef char logical1;
32typedef char integer1;
33typedef __g77_longint longint; /* system-dependent */
34typedef __g77_ulongint ulongint; /* system-dependent */
35#define qbit_clear(a,b) ((a) & ~((ulongint)1 << (b)))
36#define qbit_set(a,b) ((a) | ((ulongint)1 << (b)))
37
38#define TRUE_ (1)
39#define FALSE_ (0)
40
41/* Extern is for use with -E */
42#ifndef Extern
43#define Extern extern
44#endif
45
46/* I/O stuff */
47
48#ifdef f2c_i2
49#error "f2c_i2 will not work with g77!!!!"
50/* for -i2 */
51typedef short flag;
52typedef short ftnlen;
53typedef short ftnint;
54#else
55typedef __g77_integer flag;
56typedef __g77_integer ftnlen;
57typedef __g77_integer ftnint;
58#endif
59
60/*external read, write*/
61typedef struct
62{ flag cierr;
63 ftnint ciunit;
64 flag ciend;
65 char *cifmt;
66 ftnint cirec;
67} cilist;
68
69/*internal read, write*/
70typedef struct
71{ flag icierr;
72 char *iciunit;
73 flag iciend;
74 char *icifmt;
75 ftnint icirlen;
76 ftnint icirnum;
77} icilist;
78
79/*open*/
80typedef struct
81{ flag oerr;
82 ftnint ounit;
83 char *ofnm;
84 ftnlen ofnmlen;
85 char *osta;
86 char *oacc;
87 char *ofm;
88 ftnint orl;
89 char *oblnk;
90} olist;
91
92/*close*/
93typedef struct
94{ flag cerr;
95 ftnint cunit;
96 char *csta;
97} cllist;
98
99/*rewind, backspace, endfile*/
100typedef struct
101{ flag aerr;
102 ftnint aunit;
103} alist;
104
105/* inquire */
106typedef struct
107{ flag inerr;
108 ftnint inunit;
109 char *infile;
110 ftnlen infilen;
111 ftnint *inex; /*parameters in standard's order*/
112 ftnint *inopen;
113 ftnint *innum;
114 ftnint *innamed;
115 char *inname;
116 ftnlen innamlen;
117 char *inacc;
118 ftnlen inacclen;
119 char *inseq;
120 ftnlen inseqlen;
121 char *indir;
122 ftnlen indirlen;
123 char *infmt;
124 ftnlen infmtlen;
125 char *inform;
126 ftnint informlen;
127 char *inunf;
128 ftnlen inunflen;
129 ftnint *inrecl;
130 ftnint *innrec;
131 char *inblank;
132 ftnlen inblanklen;
133} inlist;
134
135union Multitype { /* for multiple entry points */
136 integer1 g;
137 shortint h;
138 integer i;
139 /* longint j; */
140 real r;
141 doublereal d;
142 complex c;
143 doublecomplex z;
144 };
145
146typedef union Multitype Multitype;
147
148/*typedef long int Long;*/ /* No longer used; formerly in Namelist */
149
150struct Vardesc { /* for Namelist */
151 char *name;
152 char *addr;
153 ftnlen *dims;
154 int type;
155 };
156typedef struct Vardesc Vardesc;
157
158struct Namelist {
159 char *name;
160 Vardesc **vars;
161 int nvars;
162 };
163typedef struct Namelist Namelist;
164
165#define abs(x) ((x) >= 0 ? (x) : -(x))
166#define dabs(x) (doublereal)abs(x)
167#define min(a,b) ((a) <= (b) ? (a) : (b))
168#define max(a,b) ((a) >= (b) ? (a) : (b))
169#define dmin(a,b) (doublereal)min(a,b)
170#define dmax(a,b) (doublereal)max(a,b)
171#define bit_test(a,b) ((a) >> (b) & 1)
172#define bit_clear(a,b) ((a) & ~((uinteger)1 << (b)))
173#define bit_set(a,b) ((a) | ((uinteger)1 << (b)))
174
175/* procedure parameter types for -A and -C++ */
176
177#define F2C_proc_par_types 1
178#ifdef __cplusplus
179typedef int /* Unknown procedure type */ (*U_fp)(...);
180typedef shortint (*J_fp)(...);
181typedef integer (*I_fp)(...);
182typedef real (*R_fp)(...);
183typedef doublereal (*D_fp)(...), (*E_fp)(...);
184typedef /* Complex */ void (*C_fp)(...);
185typedef /* Double Complex */ void (*Z_fp)(...);
186typedef logical (*L_fp)(...);
187typedef shortlogical (*K_fp)(...);
188typedef /* Character */ void (*H_fp)(...);
189typedef /* Subroutine */ int (*S_fp)(...);
190#else
191typedef int /* Unknown procedure type */ (*U_fp)();
192typedef shortint (*J_fp)();
193typedef integer (*I_fp)();
194typedef real (*R_fp)();
195typedef doublereal (*D_fp)(), (*E_fp)();
196typedef /* Complex */ void (*C_fp)();
197typedef /* Double Complex */ void (*Z_fp)();
198typedef logical (*L_fp)();
199typedef shortlogical (*K_fp)();
200typedef /* Character */ void (*H_fp)();
201typedef /* Subroutine */ int (*S_fp)();
202#endif
203/* E_fp is for real functions when -R is not specified */
204typedef void C_f; /* complex function */
205typedef void H_f; /* character function */
206typedef void Z_f; /* double complex function */
207typedef doublereal E_f; /* real function with -R not specified */
208
209/* undef any lower-case symbols that your C compiler predefines, e.g.: */
210
211#ifndef Skip_f2c_Undefs
212/* (No such symbols should be defined in a strict ANSI C compiler.
213 We can avoid trouble with f2c-translated code by using
214 gcc -ansi [-traditional].) */
215#undef cray
216#undef gcos
217#undef mc68010
218#undef mc68020
219#undef mips
220#undef pdp11
221#undef sgi
222#undef sparc
223#undef sun
224#undef sun2
225#undef sun3
226#undef sun4
227#undef u370
228#undef u3b
229#undef u3b2
230#undef u3b5
231#undef unix
232#undef vax
233#endif
234#endif
Note: See TracBrowser for help on using the repository browser.