#ifndef ____DECC_TYPES_LOADED /* ** Note, that for decc$types.h header we cannot use the name of the header ** file with leading underscores as protecting macro, as we usually do in ** our public header files, because the file name contains dollar sign which ** is not allowed in identifier in strict ANSI mode. This is why we use ** ____DECC_TYPES_LOADED instead of ____DECC$TYPES_LOADED . */ #define ____DECC_TYPES_LOADED /**************************************************************************** ** ** This header file is included by all header files. The purpose of this ** header file is to include those things which are either done by all ** header files or introduce no name space violations by doing so. ** ***************************************************************************** ** Header not defined by any specification or standard ***************************************************************************** ** ** Copyright 2000 Compaq Computer Corporation ** ** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office. ** ** Confidential computer software. Valid license from Compaq 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. ** ****************************************************************************** */ #pragma __nostandard /* ** Set up feature test macros */ # if defined _XOPEN_SOURCE_EXTENDED && !defined _XOPEN_SOURCE # define _XOPEN_SOURCE # endif # if defined _XOPEN_SOURCE # if !defined _POSIX_C_SOURCE # define _POSIX_C_SOURCE 2 # endif # if _POSIX_C_SOURCE < 2 # undef _POSIX_C_SOURCE # define _POSIX_C_SOURCE 2 # endif # endif # if defined _POSIX_SOURCE # if !defined _POSIX_C_SOURCE # define _POSIX_C_SOURCE 1 # endif # if _POSIX_C_SOURCE < 1 # undef _POSIX_C_SOURCE /* Use _POSIX_C_SOURCE with a value of 1 */ # define _POSIX_C_SOURCE 1 /* instead of _POSIX_SOURCE (obsolete) */ # endif # endif # if defined _POSIX_C_SOURCE && !defined _ANSI_C_SOURCE # define _ANSI_C_SOURCE # endif # if defined __HIDE_FORBIDDEN_NAMES && !defined _ANSI_C_SOURCE # define _ANSI_C_SOURCE # endif /* ** If the compiler was not already given a definition for __CRTL_VER, then ** define it now. */ #ifndef __CRTL_VER # define __CRTL_VER __VMS_VER #endif /* ** The DEC C RTL relies on the use of extern_prefix support in the compilers. ** The scenario of a customer getting these new headers via DEC C++, while at ** the same time using a compiler before DEC C V5.2 is still supported. */ #if defined(__DECC_VER) # if (__DECC_VER > 50230003) # define __CAN_USE_EXTERN_PREFIX 1 # endif #else # if defined(__DECCXX) # define __CAN_USE_EXTERN_PREFIX 1 # endif #endif /* ** In OpenVMS Alpha V7.2-6C1, support for POSIX-style GID/UID ** was introduced with the intention to merge this functionality ** into some future (currently unspecified) release of OpenVMS ** Alpha following OpenVMS Alpha V7.3. ** ** POSIX-style GID requires 32-bit gid_t datatype. On a version of ** OpenVMS Alpha which supports POSIX-style GID/UID, 32-bit gid_t ** becomes a default meaning, that unless _DECC_SHORT_GID_T, ** _VMS_V6_SOURCE or _DECC_V4_SOURCE macro is defined, gid_t is declared ** as 'unsigned int' rather than 'unsigned short'. ** ** Since the exact version of OpenVMS Alpha into which the support for ** POSIX-style GID/UID will be merged into has not been determined yet, ** we provide __COE_SYSTEM macro which allows to request 32-bit gid_t ** datatype on a version of VMS other than OpenVMS Alpha V7.2-6C1. Note, ** that defining the __COE_SYSTEM macro on a system that does not support ** POSIX-style GID/UID, can result in generating a code which may not ** execute correctly. ** ** Note also, that 32-bit gid_t datatype requires the compiler that ** supports external prefixing. */ #ifndef __USE_LONG_GID_T # if defined(__ALPHA) && ((__VMS_VER > 70260300 && __VMS_VER < 70300000) || defined(__COE_SYSTEM)) && \ (__CRTL_VER >= 70300010) && __CAN_USE_EXTERN_PREFIX && \ !defined(_DECC_SHORT_GID_T) && !defined(_VMS_V6_SOURCE) && !defined(_DECC_V4_SOURCE) # define __USE_LONG_GID_T 1 # else # define __USE_LONG_GID_T 0 # endif #endif /* ** Define typedefs which are used throughout the header files. Pointer size ** is only allowed on OpenVMS Alpha after V7.0. */ #ifdef __INITIAL_POINTER_SIZE # if __INITIAL_POINTER_SIZE # if (__CRTL_VER < 70000000) || !defined __ALPHA # error " Pointer size usage not permitted before OpenVMS Alpha V7.0" # endif # pragma __pointer_size __save # pragma __pointer_size 32 # endif #endif /* ** In ANSI C++, a wchar_t is a builtin type and __WCHAR_T is defined. ** This is only defined in such compilers (> V6.0 C++). */ # ifdef __WCHAR_T # define __wchar_t wchar_t # else typedef unsigned int __wchar_t; # endif typedef unsigned int __id_t; typedef unsigned int __size_t; typedef unsigned int __u_int; typedef unsigned int __uid_t; typedef unsigned int __useconds_t; typedef unsigned long int __time_t; typedef unsigned short __short_gid_t; #if defined(__VAX) || (__CRTL_VER < 70300010) typedef __short_gid_t __long_gid_t; #else typedef unsigned int __long_gid_t; #endif #if __USE_LONG_GID_T typedef __long_gid_t __gid_t; #else typedef __short_gid_t __gid_t; #endif typedef unsigned short __ino_t; typedef unsigned short __mode_t; typedef int __nlink_t; typedef int __off_t; typedef int __pid_t; typedef int __ssize_t; typedef char *__caddr_t; typedef char *__dev_t; typedef char *__va_list; typedef unsigned int __in_addr_t; typedef unsigned short __in_port_t; typedef unsigned char __sa_family_t; typedef unsigned char __u_char; typedef unsigned short __u_short; typedef unsigned long __u_long; typedef __wchar_t * __wchar_ptr32; typedef const __wchar_t * __const_wchar_ptr32; typedef int __wint_t; typedef int __wctrans_t; typedef int __wctype_t; struct _iobuf; typedef struct _iobuf *__FILE; typedef __FILE * __FILE_ptr32; typedef char * __char_ptr32; typedef const char * __const_char_ptr32; typedef void * __void_ptr32; typedef const void * __const_void_ptr32; typedef unsigned short * __unsigned_short_ptr32; typedef const unsigned short * __const_unsigned_short_ptr32; typedef char ** __char_ptr_ptr32; typedef char * const * __char_ptr_const_ptr32; #ifdef __ALPHA typedef __int64 * __int64_ptr32; typedef const __int64 * __const_int64_ptr32; #endif #ifndef __NULL # if defined(__DECCXX) && (__DECCXX_VER >= 60000000) # define __NULL 0 # else # define __NULL ((void *) 0) # endif #endif #ifdef __INITIAL_POINTER_SIZE # if __INITIAL_POINTER_SIZE # pragma __pointer_size 64 # endif #endif typedef char * __char_ptr64; typedef const char * __const_char_ptr64; typedef char ** __char_ptr_ptr64; typedef char * const * __char_ptr_const_ptr64; typedef void * __void_ptr64; typedef const void * __const_void_ptr64; typedef __size_t * __size_t_ptr64; typedef const __size_t * __const_size_t_ptr64; typedef __wchar_t * __wchar_ptr64; typedef const __wchar_t * __const_wchar_ptr64; #ifdef __INITIAL_POINTER_SIZE # if __INITIAL_POINTER_SIZE # pragma __pointer_size __restore # endif #endif #pragma __standard #endif /* ____DECC_TYPES_LOADED */