#ifndef __ICONV_LOADED #define __ICONV_LOADED /**************************************************************************** ** ** - code set conversion ** ***************************************************************************** ** ** Header introduced by the X/Open CAE Specification, Issue 4 ** ** Definitions in this header file may not be available on all versions of ** OpenVMS. See the DEC C Runtime Library reference manual for specifics. ** ***************************************************************************** ** ** Copyright 2004 Hewlett-Packard Development Company, L.P. ** ** Confidential computer software. Valid license from HP and/or ** its subsidiaries required for possession, use, or copying. ** ** Consistent with FAR 12.211 and 12.212, Commercial Computer Software, ** Computer Software Documentation, and Technical Data for Commercial ** Items are licensed to the U.S. Government under vendor's standard ** commercial license. ** ** Neither HP nor any of its subsidiaries shall be liable for technical ** or editorial errors or omissions contained herein. The information ** in this document is provided "as is" without warranty of any kind and ** is subject to change without notice. The warranties for HP products ** are set forth in the express limited warranty statements accompanying ** such products. Nothing herein should be construed as constituting an ** additional warranty. ** ***************************************************************************** */ #pragma __nostandard #include #ifdef __cplusplus extern "C" { #endif /* ** If the user has used /pointer_size=short or /pointer_size=long, we will ** begin in a 32-bit pointer size context. */ #if __INITIAL_POINTER_SIZE # pragma __pointer_size __save # pragma __pointer_size 32 #endif /* ** Define public typedefs */ #ifndef __ICONV_MAJOR # define __ICONV_MAJOR 1 #endif #ifndef __ICONV_MINOR # define __ICONV_MINOR 0 #endif typedef void *iconv_t; /* ** Define the __iconv interface definition */ struct __iconv_extern_obj_t; typedef __size_t (*do_convert_function) (struct __iconv_extern_obj_t *cd, char **inbuf, __size_t *inbytesleft, char **outbuf, __size_t *outbytesleft); typedef int (*do_close_function) (struct __iconv_extern_obj_t *cd); typedef struct __iconv_extern_obj_t { do_convert_function do_convert; do_close_function do_close; unsigned int major; /* major version id */ unsigned int minor; /* minor version id */ int tcs_mb_cur_max; /* tocodeset mb_cur_max */ long int reserved_for_digital; /* private data will be placed here */ int nonidentical_converts; /* num non-identical converts */ } *__iconv_extern_obj_p; /* ** These functions do not support 64 bit pointers being used as arguments. */ struct __iconv_extern_obj_t *_u_iconv_open (char *tocode, char *fromcode); __size_t iconv (iconv_t __cd, #if _XOPEN_SOURCE == 500 const #endif char **__inbuf, __size_t *__inbytesleft, char **__outbuf, __size_t *__outbytesleft); /* ** If the user has used /pointer_size=32 or /pointer_size=64, we will allow 64 ** bit pointers to be used in function calls. */ #if __INITIAL_POINTER_SIZE # pragma __pointer_size 64 #endif /* ** Function prototypes */ int iconv_close (iconv_t __cd); iconv_t iconv_open (const char *__tocode, const char *__fromcode); /* ** Restore the users pointer context */ #if __INITIAL_POINTER_SIZE # pragma __pointer_size __restore #endif #ifdef __cplusplus } #endif #pragma __standard #endif /* __ICONV_LOADED */