#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. ** *****************************************************************************/ /* ************************************************************************* */ /* * * */ /* * HPE CONFIDENTIAL. This software is confidential proprietary software * */ /* * licensed by Hewlett Packard Enterprise Development, LP, and is not * */ /* * authorized to be used, duplicated or disclosed to anyone without the * */ /* * prior written permission of HPE. * */ /* * Copyright 2017 Hewlett Packard Enterprise Development, LP * */ /* * * */ /* * VMS SOFTWARE, INC. CONFIDENTIAL. This software is confidential * */ /* * proprietary software licensed by VMS Software, Inc., and is not * */ /* * authorized to be used, duplicated or disclosed to anyone without * */ /* * the prior written permission of VMS Software, Inc. * */ /* * Copyright 2017-2023 VMS Software, Inc. * */ /* * * */ /* ************************************************************************* */ #pragma __nostandard #include #ifdef __cplusplus extern "C" { #endif /* ** Save the users pointer context */ #if __INITIAL_POINTER_SIZE || defined(__clang__) # pragma __required_pointer_size __save # pragma __required_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); #if ((defined(__clang__) && __INITIAL_POINTER_SIZE != 32) || (__INITIAL_POINTER_SIZE == 64)) && __CRTL_VER >= 90210000 # pragma __required_pointer_size 64 #endif __size_t iconv (iconv_t __cd, #if defined(_XOPEN_SOURCE) && ((_XOPEN_SOURCE + 0) == 500) const #endif char **__inbuf, __size_t *__inbytesleft, char **__outbuf, __size_t *__outbytesleft); /* ** We allow 64-bit pointers to be used in function calls. */ #if __INITIAL_POINTER_SIZE || defined(__clang__) # pragma __required_pointer_size 64 #endif /* ** Function prototypes */ int iconv_close (iconv_t __cd); iconv_t iconv_open (const char *__tocode, const char *__fromcode); #if __CRTL_VER >= 90210000 __size_t _iconv64(iconv_t __cd, char **__inbuf, __size_t *__inbytesleft, char **__outbuf, __size_t *__outbytesleft); # pragma __required_pointer_size 32 __size_t _iconv32(iconv_t __cd, char **__inbuf, __size_t *__inbytesleft, char **__outbuf, __size_t *__outbytesleft); #endif /* ** Restore the users pointer context */ #if __INITIAL_POINTER_SIZE || defined(__clang__) # pragma __required_pointer_size __restore #endif #ifdef __cplusplus } #endif #pragma __standard #endif /* __ICONV_LOADED */