codesets.library: Compiler delint
[AROS.git] / workbench / libs / codesets / src / lib_protos.h
blob3c46004d2d825a0e7eefbd84b5a588233e66e191
1 /***************************************************************************
3 codesets.library - Amiga shared library for handling different codesets
4 Copyright (C) 2001-2005 by Alfonso [alfie] Ranieri <alforan@tin.it>.
5 Copyright (C) 2005-2014 codesets.library Open Source Team
7 This library is free software; you can redistribute it and/or
8 modify it under the terms of the GNU Lesser General Public
9 License as published by the Free Software Foundation; either
10 version 2.1 of the License, or (at your option) any later version.
12 This library is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 Lesser General Public License for more details.
17 codesets.library project: http://sourceforge.net/projects/codesetslib/
19 $Id$
21 ***************************************************************************/
23 #ifndef _LIB_PROTOS_H
24 #define _LIB_PROTOS_H
26 #include "SDI_lib.h"
28 /* init.c */
29 ULONG freeBase(struct LibraryHeader* lib);
30 ULONG initBase(struct LibraryHeader* lib);
32 /* utils.c */
33 #if defined(__amigaos4__)
34 #define HAVE_ALLOCVECPOOLED 1
35 #define HAVE_FREEVECPOOLED 1
36 #define HAVE_GETHEAD 1
37 #define HAVE_GETTAIL 1
38 #define HAVE_GETPRED 1
39 #define HAVE_GETSUCC 1
40 #elif defined(__MORPHOS__)
41 #define HAVE_ALLOCVECPOOLED 1
42 #define HAVE_FREEVECPOOLED 1
43 #elif defined(__AROS__)
44 #define HAVE_ALLOCVECPOOLED 1
45 #define HAVE_FREEVECPOOLED 1
46 #define HAVE_GETHEAD 1
47 #define HAVE_GETTAIL 1
48 #define HAVE_GETPRED 1
49 #define HAVE_GETSUCC 1
50 #endif
52 #if defined(HAVE_ALLOCVECPOOLED)
53 #define allocVecPooled(pool,size) AllocVecPooled(pool,size)
54 #else
55 APTR allocVecPooled(APTR pool, ULONG size);
56 #endif
57 #if defined(HAVE_FREEVECPOOLED)
58 #define freeVecPooled(pool,mem) FreeVecPooled(pool,mem)
59 #else
60 void freeVecPooled(APTR pool, APTR mem);
61 #endif
62 APTR reallocVecPooled(APTR pool, APTR mem, ULONG oldSize, ULONG newSize);
63 APTR allocArbitrateVecPooled(ULONG size);
64 void freeArbitrateVecPooled(APTR mem);
65 APTR reallocArbitrateVecPooled(APTR mem, ULONG oldSize, ULONG newSize);
66 ULONG utf16_strlen(UTF16 *ptr);
67 ULONG utf32_strlen(UTF32 *ptr);
68 #if !defined(HAVE_GETHEAD)
69 struct Node *GetHead(struct List *list);
70 #endif
71 #if !defined(HAVE_GETPRED)
72 struct Node *GetPred(struct Node *node);
73 #endif
74 #if !defined(HAVE_GETSUCC)
75 struct Node *GetSucc(struct Node *node);
76 #endif
77 #if !defined(HAVE_GETTAIL)
78 struct Node *GetTail(struct List *list);
79 #endif
81 #include "base.h"
83 /* base64.c */
84 LIBPROTO(CodesetsEncodeB64A, ULONG, REG(a6, UNUSED __BASE_OR_IFACE), REG(a0, struct TagItem *attrs));
85 #if defined(__amigaos4__)
86 LIBPROTOVA(CodesetsEncodeB64, ULONG, REG(a6, UNUSED __BASE_OR_IFACE), ...);
87 #else
88 LIBPROTOVA(CodesetsEncodeB64, ULONG, REG(a6, UNUSED __BASE_OR_IFACE), REG(a0, Tag tag1), ...);
89 #endif
90 LIBPROTO(CodesetsDecodeB64A, ULONG, REG(a6, UNUSED __BASE_OR_IFACE), REG(a0, struct TagItem *attrs));
91 #if defined(__amigaos4__)
92 LIBPROTOVA(CodesetsDecodeB64, ULONG, REG(a6, UNUSED __BASE_OR_IFACE), ...);
93 #else
94 LIBPROTOVA(CodesetsDecodeB64, ULONG, REG(a6, UNUSED __BASE_OR_IFACE), REG(a0, Tag tag1), ...);
95 #endif
98 /* convertUTF.c */
99 LIBPROTO(CodesetsConvertUTF32toUTF16, ULONG, REG(a6, UNUSED __BASE_OR_IFACE), REG(a0, const UTF32 **sourceStart), REG(a1, const UTF32 *sourceEnd), REG(a2, UTF16 **targetStart), REG(a3, UTF16 *targetEnd), REG(d0, ULONG flags));
100 LIBPROTO(CodesetsConvertUTF16toUTF32, ULONG, REG(a6, UNUSED __BASE_OR_IFACE), REG(a0, const UTF16 **sourceStart), REG(a1, const UTF16 *sourceEnd), REG(a2, UTF32 **targetStart), REG(a3, UTF32 *targetEnd), REG(d0, ULONG flags));
101 LIBPROTO(CodesetsConvertUTF16toUTF8, ULONG, REG(a6, UNUSED __BASE_OR_IFACE), REG(a0, const UTF16 **sourceStart), REG(a1, const UTF16 *sourceEnd) , REG(a2, UTF8 **targetStart), REG(a3, UTF8 *targetEnd), REG(d0, ULONG flags));
102 LIBPROTO(CodesetsIsLegalUTF8, BOOL, REG(a6, UNUSED __BASE_OR_IFACE), REG(a0, const UTF8 *source), REG(d0, ULONG length));
103 LIBPROTO(CodesetsIsLegalUTF8Sequence, BOOL, REG(a6, UNUSED __BASE_OR_IFACE), REG(a0, const UTF8 *source), REG(a1, const UTF8 *sourceEnd));
104 LIBPROTO(CodesetsConvertUTF8toUTF16, ULONG, REG(a6, UNUSED __BASE_OR_IFACE), REG(a0, const UTF8 **sourceStart), REG(a1, const UTF8 *sourceEnd), REG(a2, UTF16 **targetStart), REG(a3, UTF16 *targetEnd), REG(d0, ULONG flags));
105 LIBPROTO(CodesetsConvertUTF32toUTF8, ULONG, REG(a6, UNUSED __BASE_OR_IFACE), REG(a0, const UTF32 **sourceStart), REG(a1, const UTF32 *sourceEnd), REG(a2, UTF8 **targetStart), REG(a3, UTF8 *targetEnd), REG(d0, ULONG flags));
106 LIBPROTO(CodesetsConvertUTF8toUTF32, ULONG, REG(a6, UNUSED __BASE_OR_IFACE), REG(a0, const UTF8 **sourceStart), REG(a1, const UTF8 *sourceEnd), REG(a2, UTF32 **targetStart), REG(a3, UTF32 *targetEnd), REG(d0, ULONG flags));
108 /* codesets.c */
109 BOOL codesetsInit(struct codesetList *csList);
110 void codesetsCleanup(struct codesetList *csList);
111 struct codeset *codesetsFind(struct codesetList *csList, const char *name);
113 LIBPROTO(CodesetsSupportedA, STRPTR *, REG(a6, UNUSED __BASE_OR_IFACE), REG(a0, struct TagItem *attrs));
114 #if defined(__amigaos4__)
115 LIBPROTOVA(CodesetsSupported, STRPTR *, REG(a6, UNUSED __BASE_OR_IFACE), ...);
116 #else
117 LIBPROTOVA(CodesetsSupported, STRPTR *, REG(a6, UNUSED __BASE_OR_IFACE), REG(a0, Tag tag1), ...);
118 #endif
119 LIBPROTO(CodesetsFreeA, void, REG(a6, UNUSED __BASE_OR_IFACE), REG(a0, APTR obj), REG(a1, struct TagItem *attrs));
120 LIBPROTOVA(CodesetsFree, void, REG(a6, UNUSED __BASE_OR_IFACE), REG(a0, APTR obj), ...);
121 LIBPROTO(CodesetsSetDefaultA, struct codeset *, REG(a6, UNUSED __BASE_OR_IFACE), REG(a0, STRPTR name), REG(a1, struct TagItem *attrs));
122 LIBPROTOVA(CodesetsSetDefault,struct codeset *, REG(a6, UNUSED __BASE_OR_IFACE), REG(a0, STRPTR name), ...);
123 LIBPROTO(CodesetsFindA, struct codeset *, REG(a6, UNUSED __BASE_OR_IFACE), REG(a0, STRPTR name), REG(a1, struct TagItem *attrs));
124 LIBPROTOVA(CodesetsFind, struct codeset *, REG(a6, UNUSED __BASE_OR_IFACE), REG(a0, STRPTR name), ...);
125 LIBPROTO(CodesetsFindBestA, struct codeset *, REG(a6, UNUSED __BASE_OR_IFACE), REG(a0, struct TagItem *attrs));
126 #if defined(__amigaos4__)
127 LIBPROTOVA(CodesetsFindBest, struct codeset *, REG(a6, UNUSED __BASE_OR_IFACE), ...);
128 #else
129 LIBPROTOVA(CodesetsFindBest, struct codeset *, REG(a6, UNUSED __BASE_OR_IFACE), REG(a0, Tag tag1), ...);
130 #endif
131 LIBPROTO(CodesetsStrLenA, ULONG, REG(a6, UNUSED __BASE_OR_IFACE), REG(a0, STRPTR str), REG(a1, struct TagItem *attrs));
132 LIBPROTOVA(CodesetsStrLen, ULONG, REG(a6, UNUSED __BASE_OR_IFACE), REG(a0, STRPTR str), ...);
133 LIBPROTO(CodesetsConvertStrA, STRPTR, REG(a6, UNUSED __BASE_OR_IFACE), REG(a0, struct TagItem *attrs));
134 #if defined(__amigaos4__)
135 LIBPROTOVA(CodesetsConvertStr, STRPTR, REG(a6, UNUSED __BASE_OR_IFACE), ...);
136 #else
137 LIBPROTOVA(CodesetsConvertStr, STRPTR, REG(a6, UNUSED __BASE_OR_IFACE), REG(a0, Tag tag1), ...);
138 #endif
139 LIBPROTO(CodesetsUTF8ToStrA, STRPTR, REG(a6, UNUSED __BASE_OR_IFACE), REG(a0, struct TagItem *attrs));
140 #if defined(__amigaos4__)
141 LIBPROTOVA(CodesetsUTF8ToStr, STRPTR, REG(a6, UNUSED __BASE_OR_IFACE), ...);
142 #else
143 LIBPROTOVA(CodesetsUTF8ToStr, STRPTR, REG(a6, UNUSED __BASE_OR_IFACE), REG(a0, Tag tag1), ...);
144 #endif
145 LIBPROTO(CodesetsUTF8CreateA, UTF8 *, REG(a6, UNUSED __BASE_OR_IFACE), REG(a0, struct TagItem *attrs));
146 #if defined(__amigaos4__)
147 LIBPROTOVA(CodesetsUTF8Create, UTF8 *, REG(a6, UNUSED __BASE_OR_IFACE), ...);
148 #else
149 LIBPROTOVA(CodesetsUTF8Create, UTF8 *, REG(a6, UNUSED __BASE_OR_IFACE), REG(a0, Tag tag1), ...);
150 #endif
151 LIBPROTO(CodesetsFreeVecPooledA, void, REG(a6, UNUSED __BASE_OR_IFACE), REG(a0, APTR pool), REG(a1, APTR mem), REG(a2, struct TagItem *attrs));
152 LIBPROTOVA(CodesetsFreeVecPooled, void, REG(a6, UNUSED __BASE_OR_IFACE), REG(a0, APTR pool), REG(a1, APTR mem), ...);
153 LIBPROTO(CodesetsIsValidUTF8, BOOL, REG(a6, UNUSED __BASE_OR_IFACE), REG(a0, CONST_STRPTR s));
154 LIBPROTO(CodesetsUTF8Len, ULONG, REG(a6, UNUSED __BASE_OR_IFACE), REG(a0, const UTF8 *str));
155 LIBPROTO(CodesetsListCreateA, struct codesetList *, REG(a6, UNUSED __BASE_OR_IFACE), REG(a0, struct TagItem *attrs));
156 #if defined(__amigaos4__)
157 LIBPROTOVA(CodesetsListCreate, struct codesetList *, REG(a6, UNUSED __BASE_OR_IFACE), ...);
158 #else
159 LIBPROTOVA(CodesetsListCreate, struct codesetList *, REG(a6, UNUSED __BASE_OR_IFACE), REG(a0, Tag tag1), ...);
160 #endif
161 LIBPROTO(CodesetsListDeleteA, BOOL, REG(a6, UNUSED __BASE_OR_IFACE), REG(a0, struct TagItem *attrs));
162 #if defined(__amigaos4__)
163 LIBPROTOVA(CodesetsListDelete, BOOL, REG(a6, UNUSED __BASE_OR_IFACE), ...);
164 #else
165 LIBPROTOVA(CodesetsListDelete, BOOL, REG(a6, UNUSED __BASE_OR_IFACE), REG(a0, Tag tag1), ...);
166 #endif
167 LIBPROTO(CodesetsListAddA, BOOL, REG(a6, UNUSED __BASE_OR_IFACE), REG(a0, struct codesetList *csList), REG(a1, struct TagItem *attrs));
168 LIBPROTOVA(CodesetsListAdd, BOOL, REG(a6, UNUSED __BASE_OR_IFACE), REG(a0, struct codesetList *csList), ...);
169 LIBPROTO(CodesetsListRemoveA, BOOL, REG(a6, UNUSED __BASE_OR_IFACE), REG(a0, struct TagItem *attrs));
170 #if defined(__amigaos4__)
171 LIBPROTOVA(CodesetsListRemove, BOOL, REG(a6, UNUSED __BASE_OR_IFACE), ...);
172 #else
173 LIBPROTOVA(CodesetsListRemove, BOOL, REG(a6, UNUSED __BASE_OR_IFACE), REG(a0, Tag tag1), ...);
174 #endif
176 #if defined(__AROS__)
177 AROS_LD5(ULONG, CodesetsConvertUTF32toUTF16,
178 AROS_LDA(const UTF32 **, ___sourceStart, A0),
179 AROS_LDA(const UTF32 *, ___sourceEnd, A1),
180 AROS_LDA(UTF16 **, ___targetStart, A2),
181 AROS_LDA(UTF16 *, ___targetEnd, A3),
182 AROS_LDA(ULONG, ___flags, D0),
183 struct LibraryHeader *, __BASE_OR_IFACE_VAR, 0, LIBSTUB);
185 AROS_LD5(ULONG, CodesetsConvertUTF16toUTF32,
186 AROS_LDA(const UTF16 **, ___sourceStart, A0),
187 AROS_LDA(const UTF16 *, ___sourceEnd, A1),
188 AROS_LDA(UTF32 **, ___targetStart, A2),
189 AROS_LDA(UTF32 *, ___targetEnd, A3),
190 AROS_LDA(ULONG, ___flags, D0),
191 struct LibraryHeader *, __BASE_OR_IFACE_VAR, 0, LIBSTUB);
193 AROS_LD5(ULONG, CodesetsConvertUTF16toUTF8,
194 AROS_LDA(const UTF16 **, ___sourceStart, A0),
195 AROS_LDA(const UTF16 *, ___sourceEnd, A1),
196 AROS_LDA(UTF8 **, ___targetStart, A2),
197 AROS_LDA(UTF8 *, ___targetEnd, A3),
198 AROS_LDA(ULONG, ___flags, D0),
199 struct LibraryHeader *, __BASE_OR_IFACE_VAR, 0, LIBSTUB);
201 AROS_LD2(BOOL, CodesetsIsLegalUTF8,
202 AROS_LDA(const UTF8 *, ___source, A0),
203 AROS_LDA(ULONG, ___length, D0),
204 struct LibraryHeader *, __BASE_OR_IFACE_VAR, 0, LIBSTUB);
206 AROS_LD2(BOOL, CodesetsIsLegalUTF8Sequence,
207 AROS_LDA(const UTF8 *, ___source, A0),
208 AROS_LDA(const UTF8 *, ___sourceEnd, A1),
209 struct LibraryHeader *, __BASE_OR_IFACE_VAR, 0, LIBSTUB);
211 AROS_LD5(ULONG, CodesetsConvertUTF8toUTF16,
212 AROS_LDA(const UTF8 **, ___sourceStart, A0),
213 AROS_LDA(const UTF8 *, ___sourceEnd, A1),
214 AROS_LDA(UTF16 **, ___targetStart, A2),
215 AROS_LDA(UTF16 *, ___targetEnd, A3),
216 AROS_LDA(ULONG, ___flags, D0),
217 struct LibraryHeader *, __BASE_OR_IFACE_VAR, 0, LIBSTUB);
219 AROS_LD5(ULONG, CodesetsConvertUTF32toUTF8,
220 AROS_LDA(const UTF32 **, ___sourceStart, A0),
221 AROS_LDA(const UTF32 *, ___sourceEnd, A1),
222 AROS_LDA(UTF8 **, ___targetStart, A2),
223 AROS_LDA(UTF8 *, ___targetEnd, A3),
224 AROS_LDA(ULONG, ___flags, D0),
225 struct LibraryHeader *, __BASE_OR_IFACE_VAR, 0, LIBSTUB);
227 AROS_LD5(ULONG, CodesetsConvertUTF8toUTF32,
228 AROS_LDA(const UTF8 **, ___sourceStart, A0),
229 AROS_LDA(const UTF8 *, ___sourceEnd, A1),
230 AROS_LDA(UTF32 **, ___targetStart, A2),
231 AROS_LDA(UTF32 *, ___targetEnd, A3),
232 AROS_LDA(ULONG, ___flags, D0),
233 struct LibraryHeader *, __BASE_OR_IFACE_VAR, 0, LIBSTUB);
235 AROS_LD2(struct codeset *, CodesetsSetDefaultA,
236 AROS_LDA(STRPTR, ___name, A0),
237 AROS_LDA(struct TagItem *, ___attrs, A1),
238 struct LibraryHeader *, __BASE_OR_IFACE_VAR, 0, LIBSTUB);
240 AROS_LD2(void, CodesetsFreeA,
241 AROS_LDA(APTR, ___obj, A0),
242 AROS_LDA(struct TagItem *, ___attrs, A1),
243 struct LibraryHeader *, __BASE_OR_IFACE_VAR, 0, LIBSTUB);
245 AROS_LD1(STRPTR *, CodesetsSupportedA,
246 AROS_LDA(struct TagItem *, ___attrs, A0),
247 struct LibraryHeader *, __BASE_OR_IFACE_VAR, 0, LIBSTUB);
249 AROS_LD2(struct codeset *, CodesetsFindA,
250 AROS_LDA(STRPTR, ___name, A0),
251 AROS_LDA(struct TagItem *, ___attrs, A1),
252 struct LibraryHeader *, __BASE_OR_IFACE_VAR, 0, LIBSTUB);
254 AROS_LD1(struct codeset *, CodesetsFindBestA,
255 AROS_LDA(struct TagItem *, ___attrs, A0),
256 struct LibraryHeader *, __BASE_OR_IFACE_VAR, 0, LIBSTUB);
258 AROS_LD1(ULONG, CodesetsUTF8Len,
259 AROS_LDA(const UTF8 *, ___str, A0),
260 struct LibraryHeader *, __BASE_OR_IFACE_VAR, 0, LIBSTUB);
262 AROS_LD1(STRPTR, CodesetsUTF8ToStrA,
263 AROS_LDA(struct TagItem *, ___attrs, A0),
264 struct LibraryHeader *, __BASE_OR_IFACE_VAR, 0, LIBSTUB);
266 AROS_LD1(UTF8 *, CodesetsUTF8CreateA,
267 AROS_LDA(struct TagItem *, ___attrs, A0),
268 struct LibraryHeader *, __BASE_OR_IFACE_VAR, 0, LIBSTUB);
270 AROS_LD1(ULONG, CodesetsEncodeB64A,
271 AROS_LDA(struct TagItem *, ___attrs, A0),
272 struct LibraryHeader *, __BASE_OR_IFACE_VAR, 0, LIBSTUB);
274 AROS_LD1(ULONG, CodesetsDecodeB64A,
275 AROS_LDA(struct TagItem *, ___attrs, A0),
276 struct LibraryHeader *, __BASE_OR_IFACE_VAR, 0, LIBSTUB);
278 AROS_LD2(ULONG, CodesetsStrLenA,
279 AROS_LDA(STRPTR, ___str, A0),
280 AROS_LDA(struct TagItem *, ___attrs, A1),
281 struct LibraryHeader *, __BASE_OR_IFACE_VAR, 0, LIBSTUB);
283 AROS_LD1(BOOL, CodesetsIsValidUTF8,
284 AROS_LDA(STRPTR, ___str, A0),
285 struct LibraryHeader *, __BASE_OR_IFACE_VAR, 0, LIBSTUB);
287 AROS_LD3(void, CodesetsFreeVecPooledA,
288 AROS_LDA(APTR, ___pool, A0),
289 AROS_LDA(APTR, ___mem, A1),
290 AROS_LDA(struct TagItem *, ___attrs, A2),
291 struct LibraryHeader *, __BASE_OR_IFACE_VAR, 0, LIBSTUB);
293 AROS_LD1(STRPTR, CodesetsConvertStrA,
294 AROS_LDA(struct TagItem *, ___attrs, A0),
295 struct LibraryHeader *, __BASE_OR_IFACE_VAR, 0, LIBSTUB);
297 AROS_LD1(struct codesetList *, CodesetsListCreateA,
298 AROS_LDA(struct TagItem *, ___attrs, A0),
299 struct LibraryHeader *, __BASE_OR_IFACE_VAR, 0, LIBSTUB);
301 AROS_LD1(BOOL, CodesetsListDeleteA,
302 AROS_LDA(struct TagItem *, ___attrs, A0),
303 struct LibraryHeader *, __BASE_OR_IFACE_VAR, 0, LIBSTUB);
305 AROS_LD2(BOOL, CodesetsListAddA,
306 AROS_LDA(struct codesetList *, ___codesetsList, A0),
307 AROS_LDA(struct TagItem *, ___attrs, A1),
308 struct LibraryHeader *, __BASE_OR_IFACE_VAR, 0, LIBSTUB);
310 AROS_LD1(BOOL, CodesetsListRemoveA,
311 AROS_LDA(struct TagItem *, ___attrs, A0),
312 struct LibraryHeader *, __BASE_OR_IFACE_VAR, 0, LIBSTUB);
314 #endif
316 #endif /* _LIB_PROTOS_H */