#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 ***************************************************************************** ** ** Copyright 2006 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. ** ***************************************************************************** */ #ifdef __cplusplus extern "C" { #endif #if __INITIAL_POINTER_SIZE # pragma __pointer_size __save # pragma __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 __pointer_size 32 #endif char *index (const char *, int); char *rindex (const char *, int); #if __INITIAL_POINTER_SIZE == 32 #pragma __pointer_size 64 #endif /* ** DEC C extensions (64-bit interfaces are extensions) */ #if __INITIAL_POINTER_SIZE && !defined _XOPEN_SOURCE_EXTENDED # pragma __pointer_size 32 char *_index32 (const char *, int); char *_rindex32 (const char *, int); # pragma __pointer_size 64 char *_index64 (const char *, int); char *_rindex64 (const char *, int); #endif /* ** 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 !defined(__VAX) # if __INITIAL_POINTER_SIZE == 32 # pragma __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 # pragma __pointer_size __restore #endif #ifdef __cplusplus } #endif #endif /* OpenVMS V7.0 */ #pragma __standard #endif /* __STRINGS_LOADED */