blob: 230050071eeefa6985b39f11298d29b02f4b1ed1 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
|
/*
* SPP.H -- Language definitions for interfacing SPP to C and C to UNIX.
* Note that many of the definitions must agree with those in the SPP
* compiler and with <iraf.h> and <mach.h>.
*/
#ifndef D_spp
/* Assorted machine constants. [MACHDEP]
* Use osb$zzeps.f to compute the machine epsilon.
*/
#define OSOK 0 /* normal successful completion */
#define LEN_JUMPBUF 1024 /* C "jmp_buf" len + 1 (or larger) */
#define EPSILON (1.192e-7) /* smallest real E s.t. (1.0+E > 1.0) */
#define EPSILOND (2.220d-16) /* double precision epsilon */
#define MAX_LONG 2147483647
#define FNNODE_CHAR '!' /* node name delimiter character */
/* Indefinite valued numbers. (potentially MACHDEP)
*/
#define INDEFS (-32767)
#define INDEFL (0x80000001)
#define INDEFI INDEFL
#define INDEFR 1.6e38
#define INDEFD 1.6e308
#define INDEFX (INDEF,INDEF)
#define INDEF INDEFR
/* Oft used constants.
*/
#define SZ_LINE 1023
#define SZ_FNAME 255
#define SZ_PATHNAME 511
#define SZ_COMMAND 2047
#define EOS '\0'
#define ERR (-1)
#define OK 0
#define YES 1
#define NO 0
#define MAX_DIGITS 25
#ifndef min
#define min(a,b) (((a)<(b))?(a):(b))
#endif
#ifndef max
#define max(a,b) (((a)>(b))?(a):(b))
#endif
#ifndef NULL
#define NULL 0
#endif
#ifndef EOF
#define EOF (-1)
#endif
/* SPP constants.
*/
#define XEOS 0
#define XERR (-1)
#define XEOF (-2)
#define XBOF (-3)
#define XOK 0
#define XNO 0
#define XYES 1
#define BOFL (-3L)
#define EOFL (-2L)
/* SPP datatypes. (potentially MACHDEP)
* Must match sizes in hlib$iraf.h
*/
#ifndef XCHAR
#define XCHAR short
#endif
#ifdef MACH64
#define XINT long /* ILP64 */
#define XLONG long
#define XSTRUCT long
#define XPOINTER long
#define XBOOL long
#else
#define XINT int /* ILP32 */
#define XLONG int
#define XSTRUCT int
#define XPOINTER int
#define XBOOL int
#endif
#define PKCHAR XCHAR
#define XUBYTE unsigned char
#define XSHORT short
#define XUSHORT unsigned short
#define XREAL float
#define XDOUBLE double
#define XCOMPLEX struct cplx
struct cplx {
float r;
float i;
};
#define TY_BOOL 1 /* SPP datatype codes */
#define TY_CHAR 2
#define TY_SHORT 3
#define TY_INT 4
#define TY_LONG 5
#define TY_REAL 6
#define TY_DOUBLE 7
#define TY_COMPLEX 8
#define TY_STRUCT 9
#define TY_POINTER 10
/* File I/O constants.
*/
#define READ_ONLY 1 /* file access modes */
#define READ_WRITE 2
#define WRITE_ONLY 3
#define APPEND 4
#define NEW_FILE 5
#define TEXT_FILE 11 /* file types */
#define BINARY_FILE 12
#define DIRECTORY_FILE 13
#define STATIC_FILE 14
#define SYMLINK_FILE 15
#define SPOOL_FILE (-2)
#define CLIN 1
#define CLOUT 2
#define STDIN 3
#define STDOUT 4
#define STDERR 5
#define STDGRAPH 6
#define STDIMAGE 7
#define STDPLOT 8
#define PSIOCTRL 9
/* Filename Mapping definitions.
*/
#define VFN_READ 1 /* VFN access modes for VFNOPEN */
#define VFN_WRITE 2
#define VFN_UNMAP 3
#define VFN_NOUPDATE 0 /* update flag for VFNCLOSE */
#define VFN_UPDATE 1
/* Oft referenced functions.
*/
XCHAR *c_sppstr();
XCHAR *c_strupk();
char *c_strpak();
#define D_spp
#endif
|