xref: /netbsd-src/include/iconv.h (revision 77a1ad5f0039ea2bc6af76846debc20728bae498)
1*77a1ad5fSkamil /*	$NetBSD: iconv.h,v 1.7 2019/10/24 18:17:59 kamil Exp $	*/
2ff5c3e68Stshiozak 
3ff5c3e68Stshiozak /*-
4ff5c3e68Stshiozak  * Copyright (c)2003 Citrus Project,
5ff5c3e68Stshiozak  * All rights reserved.
6ff5c3e68Stshiozak  *
7ff5c3e68Stshiozak  * Redistribution and use in source and binary forms, with or without
8ff5c3e68Stshiozak  * modification, are permitted provided that the following conditions
9ff5c3e68Stshiozak  * are met:
10ff5c3e68Stshiozak  * 1. Redistributions of source code must retain the above copyright
11ff5c3e68Stshiozak  *    notice, this list of conditions and the following disclaimer.
12ff5c3e68Stshiozak  * 2. Redistributions in binary form must reproduce the above copyright
13ff5c3e68Stshiozak  *    notice, this list of conditions and the following disclaimer in the
14ff5c3e68Stshiozak  *    documentation and/or other materials provided with the distribution.
15ff5c3e68Stshiozak  *
16ff5c3e68Stshiozak  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
17ff5c3e68Stshiozak  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18ff5c3e68Stshiozak  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19ff5c3e68Stshiozak  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
20ff5c3e68Stshiozak  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21ff5c3e68Stshiozak  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22ff5c3e68Stshiozak  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23ff5c3e68Stshiozak  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24ff5c3e68Stshiozak  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25ff5c3e68Stshiozak  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
26ff5c3e68Stshiozak  * SUCH DAMAGE.
27ff5c3e68Stshiozak  *
28ff5c3e68Stshiozak  */
29ff5c3e68Stshiozak 
30ff5c3e68Stshiozak #ifndef _ICONV_H_
31ff5c3e68Stshiozak #define _ICONV_H_
32ff5c3e68Stshiozak 
33ff5c3e68Stshiozak #include <sys/cdefs.h>
34ff5c3e68Stshiozak #include <machine/ansi.h>
35ff5c3e68Stshiozak 
36ff5c3e68Stshiozak #ifdef	_BSD_SIZE_T_
37ff5c3e68Stshiozak typedef	_BSD_SIZE_T_	size_t;
38ff5c3e68Stshiozak #undef	_BSD_SIZE_T_
39ff5c3e68Stshiozak #endif
40ff5c3e68Stshiozak 
412fbaee41Stshiozak struct __tag_iconv_t;
422fbaee41Stshiozak typedef	struct __tag_iconv_t	*iconv_t;
43ff5c3e68Stshiozak 
44ff5c3e68Stshiozak __BEGIN_DECLS
4519b7469aSperry iconv_t	iconv_open(const char *, const char *);
46*77a1ad5fSkamil size_t	iconv(iconv_t, char ** __restrict,
47f7d656a4Stshiozak 		     size_t * __restrict, char ** __restrict,
4819b7469aSperry 		     size_t * __restrict);
4919b7469aSperry int	iconv_close(iconv_t);
50ff5c3e68Stshiozak /*
51ff5c3e68Stshiozak  * non-portable interfaces for iconv
52ff5c3e68Stshiozak  */
5319b7469aSperry int	__iconv_get_list(char ***, size_t *);
5419b7469aSperry void	__iconv_free_list(char **, size_t);
55*77a1ad5fSkamil size_t	__iconv(iconv_t, char **, size_t *, char **,
5619b7469aSperry 		     size_t *, __uint32_t, size_t *);
57ff5c3e68Stshiozak #define __ICONV_F_HIDE_INVALID	0x0001
58ff5c3e68Stshiozak __END_DECLS
59ff5c3e68Stshiozak 
60f518dc7eSkleink #endif /* !_ICONV_H_ */
61