summaryrefslogtreecommitdiffstats
path: root/ast/ems.h
blob: 5b6fef3fffebdde9a4ee386aa7799561f2d1aab9 (plain)
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
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
/*+
 *  Name:
 *     ems.h

 *  Purpose:
 *     EMS_ C interface header file.

 *  Language:
 *     Starlink ANSI C

 *  Description:
 *     This include file contains the function prototypes for all
 *     EMS C interface routines and defines EMS__VERSN to be the major
 *     version number

 *  Authors:
 *     PCTR: P.C.T. Rees (STARLINK)
 *     AJC: A.J.Chipperfield (STARLINK)
 *     TIMJ: Tim Jenness (JAC, Hawaii)
 *     {enter_new_authors_here}

 *  History:
 *     19-SEP-1990 (PCTR):
 *        Original version.
 *     21-JUN-1991 (PCTR):
 *        Made all given character strings type "const".
 *     5-OCT-1993 (PCTR):
 *        Updated for Vn. 1.2-3
 *     28-SEP-1994 (AJC):
 *        V1.4 Added ems_facer_c and ems_errno_c
 *     21-JUN-1995 (AJC):
 *        V1.5 Added ems1_starf_c
 *     13-MAY-1999 (AJC):
 *        Added the emsXxx form of name
 *        and #define old_names = new_names
 *        Removed ems_tune/gtune/show/_c
 *        Added ems1_get_facility_error
 *     27-JUL-2001 (AJC):
 *        Removed emsFmtx
 *        Add emsExpnd, emsTune
 *     13-AUG-2001 (AJC):
 *        Removed emsFioer
 *        #define EMS__VERSN
 *     20-SEP-2001 (AJC):
 *        Added emsSetnc and point ems_setc_c at it
 *      3-MAR-2006 (TIMJ):
 *        Add emsSetu / emsSetp / emsSeti64
 *     30-JUL-2008 (PWD):
 *        Added emsGtune.
 *     31-JUL-2008 (PWD):
 *        Added emsStune and changed emsGtune to return the value as a result.
 *        Marked emsTune as deprecated.
 *     10-SEP-2008 (TIMJ):
 *        Remove fortran prototypes. Should not be in a public include file.
 *     16-SEP-2008 (TIMJ):
 *        Remove 3 arg version of emsSetc
 *     {enter_changes_here}

 *  Bugs:
 *     {note_any_bugs_here}

 *- */

#ifndef EMS_DEFINED
#define EMS_DEFINED

/* ANSI types */
#include <stdarg.h>
#include <stddef.h>
#include <inttypes.h>


/* EMS Major Version */
#define EMS__VERSN 2

/* Function Prototypes: */
void emsAnnul( int *status );

void emsBegin( int *status );

void emsEload( char *param,
               int *parlen,
               char *opstr,
               int *oplen,
               int *status );

void emsEnd( int * status );

void emsErrno( const char *token,
               int errval );

void emsExpnd( const char *text,
               char *opstr,
               const int maxlen,
               int *oplen,
               int *status );

void emsFacer( const char *token,
               int status );

int emsGtune( const char *key,
              int *status );

void emsLevel( int *level );

void emsMark( void );

void emsMload( const char *msg,
               const char *text,
               char *opstr,
               int *oplen,
               int *status );

void emsRenew( void );

void emsRep( const char *err,
             const char *text,
             int *status );

void emsRlse( void );

void emsSetc( const char *token,
              const char *cvalue );

void emsSetnc( const char *token,
               const char *cvalue,
               int mxchar );

void emsSetd( const char *token,
              double dvalue );

void emsSeti( const char *token,
              int ivalue );

void emsSeti64( const char *token,
                int64_t ivalue );

void emsSetl( const char *token,
              int lvalue );

void emsSetr( const char *token,
              float rvalue );

void emsSetp( const char *token,
              void * pvalue );

void emsSetu( const char *token,
              unsigned int ivalue );

void emsStat( int *status );

void emsSyser( const char *token,
               int systat );

int emsStune( const char *key,
              const int value,
              int *status );

/*  Deprecated function. */
void emsTune( const char *key,
              const int value,
              int *status );

/* Internal Functions */
/* Not for general use */
int ems1Starf( const char *envar,
               const char *relpath,
               const char *acmode,
               char **filename,
               int *pathlen );

void ems1_get_facility_error( unsigned int errcode,
                              char **facility_name,
                              char **error_ident,
                              char **error_text );

/* Required by MERS. Not to be used by anyone else */

void ems1Rform( const char *text, const int maxlen, int *iposn, char *string, int *strlength  );

void ems1Gesc( const char *escchr, const char *string, int *iposn );

void ems1Gnam( const char *string, int *iposn, char *name, int *namlen, int *status);

#endif	/* EMS_DEFINED */