1/*
2 * bufDecls.h --
3 *
4 *	Declarations of functions in the platform independent public Buf API.
5 *
6 * Copyright (c) 1999 by Andreas Kupries <a.kupries@westend.com>
7 *
8 * See the file "license.terms" for information on usage and redistribution
9 * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
10 *
11 * RCS: @(#) $Id: bufDecls.h,v 1.3 2004/11/09 23:10:59 patthoyts Exp $
12 */
13
14#ifndef _BUFDECLS
15#define _BUFDECLS
16
17#ifdef BUILD_Memchan
18#undef  TCL_STORAGE_CLASS
19#define TCL_STORAGE_CLASS DLLEXPORT
20#endif
21
22/*
23 * WARNING: This file is automatically generated by the tools/genStubs.tcl
24 * script.  Any modifications to the function declarations below should be made
25 * in the generic/buf.decls script.
26 */
27
28/* !BEGIN!: Do not edit below this line. */
29
30/*
31 * Exported function declarations:
32 */
33
34/* 0 */
35EXTERN int		Buf_IsInitialized _ANSI_ARGS_((Tcl_Interp * interp));
36/* 1 */
37EXTERN int		Buf_Init _ANSI_ARGS_((Tcl_Interp * interp));
38/* Slot 2 is reserved */
39/* Slot 3 is reserved */
40/* Slot 4 is reserved */
41/* Slot 5 is reserved */
42/* Slot 6 is reserved */
43/* Slot 7 is reserved */
44/* Slot 8 is reserved */
45/* Slot 9 is reserved */
46/* 10 */
47EXTERN void		Buf_RegisterType _ANSI_ARGS_((
48				Buf_BufferType* bufType));
49/* Slot 11 is reserved */
50/* Slot 12 is reserved */
51/* Slot 13 is reserved */
52/* Slot 14 is reserved */
53/* Slot 15 is reserved */
54/* Slot 16 is reserved */
55/* Slot 17 is reserved */
56/* Slot 18 is reserved */
57/* Slot 19 is reserved */
58/* 20 */
59EXTERN void		Buf_IncrRefcount _ANSI_ARGS_((Buf_Buffer buf));
60/* 21 */
61EXTERN void		Buf_DecrRefcount _ANSI_ARGS_((Buf_Buffer buf));
62/* 22 */
63EXTERN int		Buf_IsShared _ANSI_ARGS_((Buf_Buffer buf));
64/* 23 */
65EXTERN Buf_BufferType*	Buf_GetType _ANSI_ARGS_((Buf_Buffer buf));
66/* 24 */
67EXTERN CONST char*	Buf_GetTypeName _ANSI_ARGS_((Buf_Buffer buf));
68/* 25 */
69EXTERN int		Buf_Size _ANSI_ARGS_((Buf_Buffer buf));
70/* 26 */
71EXTERN ClientData	Buf_GetClientData _ANSI_ARGS_((Buf_Buffer buf));
72/* Slot 27 is reserved */
73/* Slot 28 is reserved */
74/* Slot 29 is reserved */
75/* 30 */
76EXTERN Buf_Buffer	Buf_Create _ANSI_ARGS_((Buf_BufferType* bufType,
77				ClientData clientData));
78/* 31 */
79EXTERN Buf_Buffer	Buf_Dup _ANSI_ARGS_((Buf_Buffer buf));
80/* 32 */
81EXTERN Buf_Buffer	Buf_CreateFixedBuffer _ANSI_ARGS_((int size));
82/* 33 */
83EXTERN Buf_Buffer	Buf_CreateExtendableBuffer _ANSI_ARGS_((int size));
84/* 34 */
85EXTERN Buf_Buffer	Buf_CreateRange _ANSI_ARGS_((Buf_Buffer buf,
86				int size));
87/* Slot 35 is reserved */
88/* Slot 36 is reserved */
89/* Slot 37 is reserved */
90/* Slot 38 is reserved */
91/* Slot 39 is reserved */
92/* 40 */
93EXTERN int		Buf_Read _ANSI_ARGS_((Buf_Buffer buf, void* outbuf,
94				int size));
95/* 41 */
96EXTERN int		Buf_Write _ANSI_ARGS_((Buf_Buffer buf,
97				CONST void* inbuf, int size));
98/* Slot 42 is reserved */
99/* Slot 43 is reserved */
100/* Slot 44 is reserved */
101/* Slot 45 is reserved */
102/* Slot 46 is reserved */
103/* Slot 47 is reserved */
104/* Slot 48 is reserved */
105/* Slot 49 is reserved */
106/* 50 */
107EXTERN char*		Buf_PositionPtr _ANSI_ARGS_((Buf_BufferPosition loc));
108/* 51 */
109EXTERN Buf_BufferPosition Buf_Tell _ANSI_ARGS_((Buf_Buffer buf));
110/* 52 */
111EXTERN void		Buf_FreePosition _ANSI_ARGS_((Buf_BufferPosition loc));
112/* 53 */
113EXTERN void		Buf_MovePosition _ANSI_ARGS_((Buf_BufferPosition loc,
114				int offset));
115/* 54 */
116EXTERN Buf_BufferPosition Buf_DupPosition _ANSI_ARGS_((
117				Buf_BufferPosition loc));
118/* 55 */
119EXTERN int		Buf_PositionOffset _ANSI_ARGS_((
120				Buf_BufferPosition loc));
121/* 56 */
122EXTERN Buf_BufferPosition Buf_PositionFromOffset _ANSI_ARGS_((Buf_Buffer buf,
123				int offset));
124/* Slot 57 is reserved */
125/* Slot 58 is reserved */
126/* Slot 59 is reserved */
127/* 60 */
128EXTERN Buf_BufferQueue	Buf_NewQueue _ANSI_ARGS_((void));
129/* 61 */
130EXTERN void		Buf_FreeQueue _ANSI_ARGS_((Buf_BufferQueue queue));
131/* 62 */
132EXTERN int		Buf_QueueRead _ANSI_ARGS_((Buf_BufferQueue queue,
133				char* outbuf, int size));
134/* 63 */
135EXTERN int		Buf_QueueWrite _ANSI_ARGS_((Buf_BufferQueue queue,
136				CONST char* inbuf, int size));
137/* 64 */
138EXTERN void		Buf_QueueAppend _ANSI_ARGS_((Buf_BufferQueue queue,
139				Buf_Buffer buf));
140/* 65 */
141EXTERN int		Buf_QueueSize _ANSI_ARGS_((Buf_BufferQueue queue));
142
143typedef struct BufStubHooks {
144    struct BufIntStubs *bufIntStubs;
145    struct MemchanStubs *memchanStubs;
146} BufStubHooks;
147
148typedef struct BufStubs {
149    int magic;
150    struct BufStubHooks *hooks;
151
152    int (*buf_IsInitialized) _ANSI_ARGS_((Tcl_Interp * interp)); /* 0 */
153    int (*buf_Init) _ANSI_ARGS_((Tcl_Interp * interp)); /* 1 */
154    void *reserved2;
155    void *reserved3;
156    void *reserved4;
157    void *reserved5;
158    void *reserved6;
159    void *reserved7;
160    void *reserved8;
161    void *reserved9;
162    void (*buf_RegisterType) _ANSI_ARGS_((Buf_BufferType* bufType)); /* 10 */
163    void *reserved11;
164    void *reserved12;
165    void *reserved13;
166    void *reserved14;
167    void *reserved15;
168    void *reserved16;
169    void *reserved17;
170    void *reserved18;
171    void *reserved19;
172    void (*buf_IncrRefcount) _ANSI_ARGS_((Buf_Buffer buf)); /* 20 */
173    void (*buf_DecrRefcount) _ANSI_ARGS_((Buf_Buffer buf)); /* 21 */
174    int (*buf_IsShared) _ANSI_ARGS_((Buf_Buffer buf)); /* 22 */
175    Buf_BufferType* (*buf_GetType) _ANSI_ARGS_((Buf_Buffer buf)); /* 23 */
176    CONST char* (*buf_GetTypeName) _ANSI_ARGS_((Buf_Buffer buf)); /* 24 */
177    int (*buf_Size) _ANSI_ARGS_((Buf_Buffer buf)); /* 25 */
178    ClientData (*buf_GetClientData) _ANSI_ARGS_((Buf_Buffer buf)); /* 26 */
179    void *reserved27;
180    void *reserved28;
181    void *reserved29;
182    Buf_Buffer (*buf_Create) _ANSI_ARGS_((Buf_BufferType* bufType, ClientData clientData)); /* 30 */
183    Buf_Buffer (*buf_Dup) _ANSI_ARGS_((Buf_Buffer buf)); /* 31 */
184    Buf_Buffer (*buf_CreateFixedBuffer) _ANSI_ARGS_((int size)); /* 32 */
185    Buf_Buffer (*buf_CreateExtendableBuffer) _ANSI_ARGS_((int size)); /* 33 */
186    Buf_Buffer (*buf_CreateRange) _ANSI_ARGS_((Buf_Buffer buf, int size)); /* 34 */
187    void *reserved35;
188    void *reserved36;
189    void *reserved37;
190    void *reserved38;
191    void *reserved39;
192    int (*buf_Read) _ANSI_ARGS_((Buf_Buffer buf, void* outbuf, int size)); /* 40 */
193    int (*buf_Write) _ANSI_ARGS_((Buf_Buffer buf, CONST void* inbuf, int size)); /* 41 */
194    void *reserved42;
195    void *reserved43;
196    void *reserved44;
197    void *reserved45;
198    void *reserved46;
199    void *reserved47;
200    void *reserved48;
201    void *reserved49;
202    char* (*buf_PositionPtr) _ANSI_ARGS_((Buf_BufferPosition loc)); /* 50 */
203    Buf_BufferPosition (*buf_Tell) _ANSI_ARGS_((Buf_Buffer buf)); /* 51 */
204    void (*buf_FreePosition) _ANSI_ARGS_((Buf_BufferPosition loc)); /* 52 */
205    void (*buf_MovePosition) _ANSI_ARGS_((Buf_BufferPosition loc, int offset)); /* 53 */
206    Buf_BufferPosition (*buf_DupPosition) _ANSI_ARGS_((Buf_BufferPosition loc)); /* 54 */
207    int (*buf_PositionOffset) _ANSI_ARGS_((Buf_BufferPosition loc)); /* 55 */
208    Buf_BufferPosition (*buf_PositionFromOffset) _ANSI_ARGS_((Buf_Buffer buf, int offset)); /* 56 */
209    void *reserved57;
210    void *reserved58;
211    void *reserved59;
212    Buf_BufferQueue (*buf_NewQueue) _ANSI_ARGS_((void)); /* 60 */
213    void (*buf_FreeQueue) _ANSI_ARGS_((Buf_BufferQueue queue)); /* 61 */
214    int (*buf_QueueRead) _ANSI_ARGS_((Buf_BufferQueue queue, char* outbuf, int size)); /* 62 */
215    int (*buf_QueueWrite) _ANSI_ARGS_((Buf_BufferQueue queue, CONST char* inbuf, int size)); /* 63 */
216    void (*buf_QueueAppend) _ANSI_ARGS_((Buf_BufferQueue queue, Buf_Buffer buf)); /* 64 */
217    int (*buf_QueueSize) _ANSI_ARGS_((Buf_BufferQueue queue)); /* 65 */
218} BufStubs;
219
220#ifdef __cplusplus
221extern "C" {
222#endif
223extern BufStubs *bufStubsPtr;
224#ifdef __cplusplus
225}
226#endif
227
228#if defined(USE_BUF_STUBS) && !defined(USE_BUF_STUB_PROCS)
229
230/*
231 * Inline function declarations:
232 */
233
234#ifndef Buf_IsInitialized
235#define Buf_IsInitialized \
236	(bufStubsPtr->buf_IsInitialized) /* 0 */
237#endif
238#ifndef Buf_Init
239#define Buf_Init \
240	(bufStubsPtr->buf_Init) /* 1 */
241#endif
242/* Slot 2 is reserved */
243/* Slot 3 is reserved */
244/* Slot 4 is reserved */
245/* Slot 5 is reserved */
246/* Slot 6 is reserved */
247/* Slot 7 is reserved */
248/* Slot 8 is reserved */
249/* Slot 9 is reserved */
250#ifndef Buf_RegisterType
251#define Buf_RegisterType \
252	(bufStubsPtr->buf_RegisterType) /* 10 */
253#endif
254/* Slot 11 is reserved */
255/* Slot 12 is reserved */
256/* Slot 13 is reserved */
257/* Slot 14 is reserved */
258/* Slot 15 is reserved */
259/* Slot 16 is reserved */
260/* Slot 17 is reserved */
261/* Slot 18 is reserved */
262/* Slot 19 is reserved */
263#ifndef Buf_IncrRefcount
264#define Buf_IncrRefcount \
265	(bufStubsPtr->buf_IncrRefcount) /* 20 */
266#endif
267#ifndef Buf_DecrRefcount
268#define Buf_DecrRefcount \
269	(bufStubsPtr->buf_DecrRefcount) /* 21 */
270#endif
271#ifndef Buf_IsShared
272#define Buf_IsShared \
273	(bufStubsPtr->buf_IsShared) /* 22 */
274#endif
275#ifndef Buf_GetType
276#define Buf_GetType \
277	(bufStubsPtr->buf_GetType) /* 23 */
278#endif
279#ifndef Buf_GetTypeName
280#define Buf_GetTypeName \
281	(bufStubsPtr->buf_GetTypeName) /* 24 */
282#endif
283#ifndef Buf_Size
284#define Buf_Size \
285	(bufStubsPtr->buf_Size) /* 25 */
286#endif
287#ifndef Buf_GetClientData
288#define Buf_GetClientData \
289	(bufStubsPtr->buf_GetClientData) /* 26 */
290#endif
291/* Slot 27 is reserved */
292/* Slot 28 is reserved */
293/* Slot 29 is reserved */
294#ifndef Buf_Create
295#define Buf_Create \
296	(bufStubsPtr->buf_Create) /* 30 */
297#endif
298#ifndef Buf_Dup
299#define Buf_Dup \
300	(bufStubsPtr->buf_Dup) /* 31 */
301#endif
302#ifndef Buf_CreateFixedBuffer
303#define Buf_CreateFixedBuffer \
304	(bufStubsPtr->buf_CreateFixedBuffer) /* 32 */
305#endif
306#ifndef Buf_CreateExtendableBuffer
307#define Buf_CreateExtendableBuffer \
308	(bufStubsPtr->buf_CreateExtendableBuffer) /* 33 */
309#endif
310#ifndef Buf_CreateRange
311#define Buf_CreateRange \
312	(bufStubsPtr->buf_CreateRange) /* 34 */
313#endif
314/* Slot 35 is reserved */
315/* Slot 36 is reserved */
316/* Slot 37 is reserved */
317/* Slot 38 is reserved */
318/* Slot 39 is reserved */
319#ifndef Buf_Read
320#define Buf_Read \
321	(bufStubsPtr->buf_Read) /* 40 */
322#endif
323#ifndef Buf_Write
324#define Buf_Write \
325	(bufStubsPtr->buf_Write) /* 41 */
326#endif
327/* Slot 42 is reserved */
328/* Slot 43 is reserved */
329/* Slot 44 is reserved */
330/* Slot 45 is reserved */
331/* Slot 46 is reserved */
332/* Slot 47 is reserved */
333/* Slot 48 is reserved */
334/* Slot 49 is reserved */
335#ifndef Buf_PositionPtr
336#define Buf_PositionPtr \
337	(bufStubsPtr->buf_PositionPtr) /* 50 */
338#endif
339#ifndef Buf_Tell
340#define Buf_Tell \
341	(bufStubsPtr->buf_Tell) /* 51 */
342#endif
343#ifndef Buf_FreePosition
344#define Buf_FreePosition \
345	(bufStubsPtr->buf_FreePosition) /* 52 */
346#endif
347#ifndef Buf_MovePosition
348#define Buf_MovePosition \
349	(bufStubsPtr->buf_MovePosition) /* 53 */
350#endif
351#ifndef Buf_DupPosition
352#define Buf_DupPosition \
353	(bufStubsPtr->buf_DupPosition) /* 54 */
354#endif
355#ifndef Buf_PositionOffset
356#define Buf_PositionOffset \
357	(bufStubsPtr->buf_PositionOffset) /* 55 */
358#endif
359#ifndef Buf_PositionFromOffset
360#define Buf_PositionFromOffset \
361	(bufStubsPtr->buf_PositionFromOffset) /* 56 */
362#endif
363/* Slot 57 is reserved */
364/* Slot 58 is reserved */
365/* Slot 59 is reserved */
366#ifndef Buf_NewQueue
367#define Buf_NewQueue \
368	(bufStubsPtr->buf_NewQueue) /* 60 */
369#endif
370#ifndef Buf_FreeQueue
371#define Buf_FreeQueue \
372	(bufStubsPtr->buf_FreeQueue) /* 61 */
373#endif
374#ifndef Buf_QueueRead
375#define Buf_QueueRead \
376	(bufStubsPtr->buf_QueueRead) /* 62 */
377#endif
378#ifndef Buf_QueueWrite
379#define Buf_QueueWrite \
380	(bufStubsPtr->buf_QueueWrite) /* 63 */
381#endif
382#ifndef Buf_QueueAppend
383#define Buf_QueueAppend \
384	(bufStubsPtr->buf_QueueAppend) /* 64 */
385#endif
386#ifndef Buf_QueueSize
387#define Buf_QueueSize \
388	(bufStubsPtr->buf_QueueSize) /* 65 */
389#endif
390
391#endif /* defined(USE_BUF_STUBS) && !defined(USE_BUF_STUB_PROCS) */
392
393/* !END!: Do not edit above this line. */
394
395#undef  TCL_STORAGE_CLASS
396#define TCL_STORAGE_CLASS DLLIMPORT
397
398#endif /* _BUFDECLS */
399
400