| 1 | /* Copyright (C) 1997-2022 Free Software Foundation, Inc. | 
| 2 |    This file is part of the GNU C Library. | 
| 3 |  | 
| 4 |    The GNU C Library is free software; you can redistribute it and/or | 
| 5 |    modify it under the terms of the GNU Lesser General Public | 
| 6 |    License as published by the Free Software Foundation; either | 
| 7 |    version 2.1 of the License, or (at your option) any later version. | 
| 8 |  | 
| 9 |    The GNU C Library is distributed in the hope that it will be useful, | 
| 10 |    but WITHOUT ANY WARRANTY; without even the implied warranty of | 
| 11 |    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU | 
| 12 |    Lesser General Public License for more details. | 
| 13 |  | 
| 14 |    You should have received a copy of the GNU Lesser General Public | 
| 15 |    License along with the GNU C Library; if not, see | 
| 16 |    <https://www.gnu.org/licenses/>.  */ | 
| 17 |  | 
| 18 | #ifndef _ICONV_H | 
| 19 | #define _ICONV_H        1 | 
| 20 |  | 
| 21 | #include <features.h> | 
| 22 | #define __need_size_t | 
| 23 | #include <stddef.h> | 
| 24 |  | 
| 25 |  | 
| 26 | __BEGIN_DECLS | 
| 27 |  | 
| 28 | /* Identifier for conversion method from one codeset to another.  */ | 
| 29 | typedef void *iconv_t; | 
| 30 |  | 
| 31 |  | 
| 32 | /* Allocate descriptor for code conversion from codeset FROMCODE to | 
| 33 |    codeset TOCODE. | 
| 34 |  | 
| 35 |    This function is a possible cancellation point and therefore not | 
| 36 |    marked with __THROW.  */ | 
| 37 | extern iconv_t iconv_open (const char *__tocode, const char *__fromcode); | 
| 38 |  | 
| 39 | /* Convert at most *INBYTESLEFT bytes from *INBUF according to the | 
| 40 |    code conversion algorithm specified by CD and place up to | 
| 41 |    *OUTBYTESLEFT bytes in buffer at *OUTBUF.  */ | 
| 42 | extern size_t iconv (iconv_t __cd, char **__restrict __inbuf, | 
| 43 |                      size_t *__restrict __inbytesleft, | 
| 44 |                      char **__restrict __outbuf, | 
| 45 |                      size_t *__restrict __outbytesleft); | 
| 46 |  | 
| 47 | /* Free resources allocated for descriptor CD for code conversion. | 
| 48 |  | 
| 49 |    This function is a possible cancellation point and therefore not | 
| 50 |    marked with __THROW.  */ | 
| 51 | extern int iconv_close (iconv_t __cd); | 
| 52 |  | 
| 53 | __END_DECLS | 
| 54 |  | 
| 55 | #endif /* iconv.h */ | 
| 56 |  |