ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/i-scream/projects/cms/source/host/ihost-perl/plugins/libukcprog/ukcprog.h
Revision: 1.2
Committed: Fri Mar 28 16:30:32 2003 UTC (21 years, 7 months ago) by tdb
Content type: text/plain
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +1 -1 lines
State: FILE REMOVED
Log Message:
Removed some un-used code from CVS. We can always resurrect this later if
someone feels they want to work on it. Gone are the old perl ihost which
isn't needed now, winhost which is broken and shows no sign of being fixed,
and DBReporter. If someone wants to revive them, I'll undelete them :-)

File Contents

# User Rev Content
1 tdb 1.1 /* ukcprog.h -- Declarations for UKC programmers' library routines. */
2    
3     /* Copyright 1993 Godfrey Paul, University of Kent at Canterbury.
4     *
5     * You can do what you like with this source code as long as
6     * you don't try to make money out of it and you include an
7     * unaltered copy of this message (including the copyright).
8     */
9    
10 tdb 1.2 /* $Id: ukcprog.h,v 1.1 2002/03/08 15:03:39 tdb Exp $ UKC */
11 tdb 1.1
12     #ifndef UKCPROG_H_DEFINED
13     #define UKCPROG_H_DEFINED
14    
15     #ifdef __cplusplus
16     extern "C" {
17     #endif
18    
19     #if defined(__GNUC__) && __GNUC_MINOR >= 2
20     #define UKCPROG__NORETURN __attribute__((__noreturn__))
21     #else
22     #define UKCPROG__NORETURN
23     #endif
24    
25     #ifdef __STDC__
26     #ifndef PROTO
27     #define PROTO(a) a
28     #endif /* !PROTO */
29    
30     typedef void *voidptr;
31     typedef const void *constvoidptr;
32    
33     #include <stddef.h> /* needed for size_t */
34    
35     #else /* !__STDC__ */
36    
37     #include <sys/types.h> /* size_t for old C */
38    
39     #ifndef PROTO
40     #define PROTO(a) ()
41     #endif /* !PROTO */
42    
43     /* Patch up for things that are missing without ANSI C. */
44     #ifndef const
45     #define const
46     #endif
47     #ifndef volatile
48     #define volatile
49     #endif
50     #ifndef signed
51     #define signed
52     #endif
53    
54     typedef char *voidptr;
55     typedef char *constvoidptr;
56    
57     #endif /* !__STDC__ */
58    
59     /* Defining boolean type. This might cause problems for some ... */
60     #ifndef FALSE
61     #define FALSE 0
62     #endif
63     #ifndef TRUE
64     #define TRUE 1
65     #endif
66     #ifndef bool
67     #define bool int
68     #endif
69    
70     /* Macro to get control characters (works for ASCII only). */
71     #define CONTROL(c) ((c) & 0x1f)
72    
73     /* Define NULL - this avoids having the whole of stdio.h */
74     #ifndef NULL
75     #define NULL 0
76     #endif
77    
78     /* Macro to concatenate two or three names. */
79     #ifdef CAT
80     #undef CAT
81     #endif /* CAT */
82    
83     #if defined(__STDC__) && !defined(VMS)
84     #define CAT(a,b) a ## b
85     #define CAT3(a,b,c) a ## b ## c
86     #else
87     #define _IDENT(a) a
88     #define CAT(a,b) _IDENT(a)b
89     #define CAT3(a,b,c) CAT(a,b)c
90     #endif
91    
92     /* from panic.c */
93     typedef void (*panic_handler_t) PROTO((const char *message));
94    
95     panic_handler_t install_panic_handler PROTO((panic_handler_t handler));
96    
97     void panic PROTO((const char *message)) UKCPROG__NORETURN;
98    
99    
100     /* from e_malloc.c */
101     voidptr e_malloc PROTO((size_t size));
102    
103    
104     /* from e_realloc.c */
105     voidptr e_realloc PROTO((voidptr old, size_t size));
106    
107    
108     /* from strsave.c */
109     char *strsave PROTO((const char *s));
110    
111    
112     /* from config.c */
113     char *config_trim_line PROTO((char *line));
114    
115     #ifdef UKC_WANT_FORMF_CHECKS
116     #define FORMF_ARGS(fpos, argpos) __attribute__((format(printf, fpos, argpos)))
117     #else
118    
119     #ifdef VMS
120     /* The VMS C compiler with /STANDARD=PORTABLE complains about unused
121     * arguments in macros. This grossness is to shut it up.
122     */
123     #define FORMF_ARGS(fpos, apos) ; extern int CAT(__ukc,fpos), CAT(__ukc,apos)
124     #else
125     #define FORMF_ARGS(fpos, argpos) /* nothing */
126     #endif
127    
128     #endif
129    
130     /* from formf.c */
131     #ifdef __STDC__
132     #include <stdarg.h> /* nasty, but needed for prototype */
133     #endif
134    
135     char *formf PROTO((char *buffer_space, int buffer_size,
136     const char *format, va_list args));
137    
138    
139     /* from errf.c */
140     typedef void (*errf_ofunc_t) PROTO((const char *string));
141    
142     errf_ofunc_t errf_set_ofunc PROTO((errf_ofunc_t func));
143     const char *errf_set_prefix PROTO((const char *prefix));
144     const char *errf_get_prefix PROTO((void));
145     void errf_set_progname PROTO((const char *progname));
146     const char *errf_get_progname PROTO((void));
147     void errf_usage PROTO((const char *usage));
148    
149     void errf PROTO((const char *fmt, ...)) FORMF_ARGS(1, 2);
150     char *strf PROTO((const char *fmt, ...)) FORMF_ARGS(1, 2);
151     void strnf PROTO((char *buf, size_t bufsize, const char *fmt, ...))
152     FORMF_ARGS(3, 4);
153    
154     /* from log.c */
155     #define LG_ALL 0 /* lowest priority */
156     #define LG_DEBUG 1 /* debugging messages */
157     #define LG_INFO 5 /* information messages */
158     #define LG_ERR 9 /* error messages */
159     #define LG_LOG 10 /* highest priority; messages from the logger */
160    
161     int logf_set_ofile PROTO((const char *filename, const char *prefix));
162     void logf PROTO((int level, const char *fmt, ...)) FORMF_ARGS(2, 3);
163     int logf_set_level PROTO((int new_level));
164     void logf_errf_ofunc PROTO((const char *str));
165    
166     /* from fpgetline.c
167     *
168     * Only include this prototype if stdio.h has been #included already.
169     * This is to mandating the inclusion of stdio.h unless fpgetline()
170     * is required.
171     */
172     #ifdef EOF
173     char *fpgetline PROTO((FILE *fp));
174     #endif
175    
176    
177     /* from alloc.c */
178    
179     typedef struct alloc_pool_s alloc_pool_t;
180     typedef struct alloc_mark_s alloc_mark_t;
181    
182     /* Backwards compatibility.
183     */
184     typedef alloc_pool_t *alloc_id_t;
185     typedef alloc_mark_t *alloc_mark_id_t;
186    
187     alloc_pool_t *alloc_create_pool PROTO((void));
188     void alloc_free_pool PROTO((alloc_pool_t *ap));
189     void alloc_reset_pool PROTO((alloc_pool_t *ap));
190    
191     /* Various forms of allocation. alloc() aligns like malloc,
192     * allocstr() doesn't. alloc_strdup() is like strdup() but
193     * used allocstr() rather than malloc(). All of the preceding
194     * calls panic if they run out memory. alloc_ck() and allocstr_ck()
195     * are like alloc() and allocstr() except that they return NULL
196     * rather than panicking if memory runs out.
197     */
198     voidptr alloc PROTO((alloc_pool_t *ap, size_t nbytes));
199     char *allocstr PROTO((alloc_pool_t *ap, size_t nbytes));
200     voidptr alloc_ck PROTO((alloc_pool_t *ap, size_t nbytes));
201     char *allocstr_ck PROTO((alloc_pool_t *ap, size_t nbytes));
202     char *alloc_strdup PROTO((alloc_pool_t *ap, const char *s));
203    
204     /* Control - set and clear debug flags both globally and per-pool.
205     * If the debug flag is set new memory is initialised to garbage
206     * and set to (different) garbage when a pool is freed.
207     */
208     bool alloc_set_default_debug_flag PROTO((bool val));
209     bool alloc_set_debug_flag PROTO((alloc_pool_t *ap, bool val));
210    
211     /* alloc_mark() returns an alloc_mark_id that represents the current
212     * state of the alloc pool. alloc_release() releases any memory
213     * allocated since the alloc_mark() call.
214     */
215     alloc_mark_t *alloc_mark PROTO((alloc_pool_t *ap));
216     void alloc_release PROTO((alloc_pool_t *ap, alloc_mark_t *am));
217    
218    
219     /* from ssplit.c */
220    
221     char **ssplit PROTO((const char *line, const char *delimiters));
222    
223     /* from ip.c */
224    
225     #ifdef IPPROTO_TCP
226     int get_host_addr PROTO((const char *hostname, struct in_addr *p_addr));
227     int get_service_port PROTO((const char *servname, int *p_port));
228     #endif
229    
230     /* from ebuf.c */
231    
232     typedef struct ebuf_s ebuf_t;
233    
234     void ebuf_reset PROTO((ebuf_t *eb));
235     ebuf_t *ebuf_create PROTO((bool errors_are_fatal));
236     ebuf_t *ebuf_start PROTO((ebuf_t *ebuf, bool errors_are_fatal));
237     int ebuf_add PROTO((ebuf_t *eb, constvoidptr buf, size_t count));
238     int ebuf_addstr PROTO((ebuf_t *eb, const char *str));
239     voidptr ebuf_get PROTO((ebuf_t *eb, int *p_len));
240     void ebuf_free PROTO((ebuf_t *eb));
241    
242     /* from sccsdata.c */
243     const char *ukcprog_version PROTO((void));
244    
245     #ifdef __cplusplus
246     }
247     #endif
248    
249     #endif /* !UKCPROG_H_DEFINED */