#ifndef __STRINGS_LOADED #define __STRINGS_LOADED 1 #pragma __nostandard #include #if __CRTL_VER >= 70000000 /* Supported beginning in OpenVMS V7.0 */ /**************************************************************************** ** ** - String Handling ** ***************************************************************************** ** Header introduced by the X/Open CAE Specification, Issue 4, Version 2 ***************************************************************************** */ /* ************************************************************************* */ /* * * */ /* * 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. * */ /* * * */ /* ************************************************************************* */ #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 64 #endif /* ** Create 'public' typedefs, structure definitions, and definitions which are ** in this header file which are either not sensitive to pointer size or are ** required to be short pointers. */ #ifndef __SIZE_T # define __SIZE_T 1 # ifdef __NAMESPACE_STD namespace std { # endif typedef __size_t size_t; # ifdef __NAMESPACE_STD } /* namespace std */ using std::size_t; # endif #endif /* ** X/Open extended definitions which accept 32 or 64 bit pointers */ int bcmp (const void * __s1, const void * __s2, __size_t __n); void (bcopy) (const void * __s1, void * __s2, __size_t __n); void (bzero) (void * __s1, __size_t __n); int ffs (int); int strcasecmp (const char *, const char *); int strncasecmp (const char *, const char *, __size_t); /* ** The following functions have interfaces of XXX, _XXX32, and _XXX64 due only ** to the fact that the return argument is a pointer that is relative to one ** of the arguments. */ #if __INITIAL_POINTER_SIZE == 32 # pragma __required_pointer_size 32 #endif char *index (const char *, int); char *rindex (const char *, int); #if __INITIAL_POINTER_SIZE == 32 # pragma __required_pointer_size 64 #endif /* ** DEC C extensions (64-bit interfaces are extensions) */ #if (__INITIAL_POINTER_SIZE || defined(__clang__)) && !defined _XOPEN_SOURCE_EXTENDED # pragma __required_pointer_size 32 char *_index32 (const char *, int); char *_rindex32 (const char *, int); # pragma __required_pointer_size 64 char *_index64 (const char *, int); char *_rindex64 (const char *, int); #endif #if !defined(__clang__) /* ** DEC C Performance (Builtins) ** ** Certain DEC C functions are available as compiler builtins. Using ** the builtins offer performance improvements and are enabled here ** for all programs including this header file. */ #if __INITIAL_POINTER_SIZE == 32 # pragma __required_pointer_size 32 #endif #if __DECCXX_VER >= 60590046 void *__MEMMOVE (void *__s1, __const_void_ptr64 __s2, __size_t __n); #else void *__MEMMOVE (void *__s1, const void *__s2, __size_t __n); #endif void *__MEMSET (void *__s, int __c, __size_t __n); #define bcopy(__x, __y, __z) __MEMMOVE(__y, __x, __z) #define bzero(__x, __y) __MEMSET(__x, 0, __y) #endif /* ** Restore the users pointer context */ #if __INITIAL_POINTER_SIZE || defined(__clang__) # pragma __required_pointer_size __restore #endif #ifdef __cplusplus } #endif #endif /* OpenVMS V7.0 */ #pragma __standard #endif /* __STRINGS_LOADED */