% VAX-11 Librarian V04-00`GE\CjIE\NQ QQQ'OPR(e (ASSERT2BITYPESBUILTINSPCOMPLEX  CRTL_CLASS\CTYPEi>CURSESbC_ASM@ DECC$TYPESTDESCRIP14DIRENT9bDLFCN=HERRNOQERRNODEFeFCNTLnFILErFLOATFP\FP_CLASSFTW GRPICONVIFBIF_ARP\ IF_TRNSTATIF_TYPESIN5IN6\V IN6_MACHTYPESf>INETnINTSsINTTYPESxIOCTL{ISO646~nLANGINFOLIBGENLIMITSLOCALE^\V IN6_MACHTYPESf>INETnINTSsINTTYPESxIOCTL{ISO646~nLANGINFOLIBGENLIMITSLOCALEMATHMEMORYbMMANpMONETARY|NAMESERnNETDB!LNL_TYPES'PERROR+> PROCESSES3PWD: REENTRANCY=RESOLVTRESOURCEYSETJMP_zSIGNALyHSOCKETZSTATSTDARGSTDBOOLSTDDEFSTDIOSTDLIBSTRING5STRINGS<STROPTShTCPrTGMATH$IN6SOCKETWCTYPESSZSTATSTDARGSTDBOOLSTDDEFSTDIOSTDLIBSTRING5STRINGS<STROPTShTCPrTGMATHzTIMETIMEBxTIMERSTIMESTYPESnTZFILEtUIOUNISTDUNIXIO:UNIXLIBUTIME|UTSNAME VARARGSWAIT!WCHAREWCTYPE 7GE\T6.4-000ww߭GE\#ifndef __ASSERT_LOADED#define __ASSERT_LOADEDM/******************************************************************************$** - Program Diagnostics**M*****************************************************************************,** Header introduced by the ANSI C StandardM*******************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq a nd the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N*******************************************************************************/#pragma __nostandard#include #ifdef __cplusplus extern "C" {#endif/*K** If the user has used /pointer_size=short or /pointer_size=long, we will5** allow long pointers to be used in function calls.*/#if __INITIAL_POINTER_SIZE # pragma __pointer_size __save# pragma __pointer_size 64#endif/*** Function prototypes*/7void __assert (char *__expr, char *__file, int __line);/*7** Define an assert macro based on NDEBUG and __STDC__*/ #undef assert #ifdef NDEBUG$# define assert(ignore) ((void) 0)#else4# if !defined (__STDC__) && !defined (__cplusplus)Q# define assert(expr) ((expr)?(void)0:(__assert("expr",__FILE__,__LINE__)))# elseP# define assert(expr) ((expr)?(void)0:(__assert(#expr,__FILE__,__LINE__))) # endif#endif/*%** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif#pragma __standard#endif /* __ASSERT_LOADED */wwGE\#ifndef __BITYPES_LOADED#define __BITYPES_LOADED 1M/******************************************************************************&** - basic integral types**M******************************************************************************* Header is nonstandardM*******************************************************************************F** Copyright Digital Equipment Corporation 1998. All rights reserve d.**B** Restricted Rights: Use, duplication, or disclosure by the U.S.F** Government is subject to restrictions as set forth in subparagraphF** (c) (1) (ii) of DFARS 252.227-7013, or in FAR 52.227-19, or in FAR&** 52.227-14 Alt. III, as applicable.**A** This software is proprietary to and embodies the confidentialD** technology of Digital Equipment Corporation. Possession, use, orG** copying of this software and media is authorized only pursuant to aD** valid written license from  Digital or an authorized sublicensor.**N********************************************************************************?** Copyright (c) 1993 Regents of the University of California.** All rights reserved.**L** Redistribution and use in source and binary forms are permitted providedJ** that: (1) source distributions retain this entire copyright notice andK** comment, and (2) distributions including binaries display the followingG** acknowledgement: ``This product includes software developed by theD** University of California, Berkeley and its contributors'' in theJ** documentation or other materials provided with the distribution and inJ** all advertising materials mentioning features or use of this software.L** Neither the name of the University nor the names of its contributors mayM** be used to endorse or promote products derived from this software without&** specific prior written permission.J** THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIEDH** WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF9** MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.**N*******************************************************************************/#pragma __nostandard/*B** Most of these definitions are in which we include1** first and then add those missing definitions.*/#include /*E** Ensure that the compiler will not emit diagnostics about "signed"J** keyword usage when in /STAND=VAXC mode (the reason for the diagnostics7** is that VAX C does not support the signed keyword).*/4#if ((__DECC_VER >= 50600000) && !defined(__DECCXX))# pragma __message __save.# pragma __message __disable (__SIGNEDKNOWN)#endif/*<** Basic integral types which are not defined in inttypes.h*/typedef signed char int8m_t;typedef unsigned char u_int8_t; typedef unsigned char u_int8m_t;typedef short int int16m_t;%typedef unsigned short int u_int16_t;&typedef unsigned short int u_int16m_t;typedef int int32m_t;typedef unsigned int u_int32_t; typedef unsigned int u_int32m_t;/*K** The VAX implementation is just a placeholder until the C9X work is done*/#ifdef __ALPHA typedef __int64 int64m_t;& typedef unsigned __int64 u_int64_t;& typedef unsigned __int64 uint64m_t;#else3 typedef struct { int __p1; int __p2; } int64m_t;F typedef struct { unsigned int __p1; unsigned int __p2; } u_int64_t;F typedef struct { unsigned int __p1; unsigned int __p2; } uint64m_t;#endif/*** Restore messages*/4#if ((__DECC_VER >= 50600000) && !defined(__DECCXX))# pragma __message __restore#endif#pragma __standard#endif /* __BITYPES_LOADED */wwOGE\#ifndef __BUILTINS_LOADED#define __BUILTINS_LOADED 1M/******************************************************************************<** - Prototypes for platform specific builtins**M**************************** *************************************************** Header is nonstandardM*******************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N*******************************************************************************/#pragma __nostandard #include #ifdef __cplusplus extern "C" {#endif#if __INITIAL_POINTER_SIZE # pragma __pointer_size __save# pragma __pointer_size 32#endif/*>** This header file begins with the following three sections:**** OpenVMS AXP !** OpenVMS AXP with __X_FLOAT*** OpenVMS VAX DEC C Only (No DEC C++)*//*E** Certain OpenVMS header files expect the __PAL builtins to accept D** 64-bit pointers regardless of whether the /POINTER_SIZE is used E** or not. To allow this, we will define a typedef to be used with ** those prototypes.*/#ifdef __ALPHA# ifndef ___VOID__PTR64# define ___VOID__PTR64 1## ifdef __INITIAL_POINTER_SIZE## if __INITIAL_POINTER_SIZE)# pragma __pointer_size __save%# pragma __pointer_size 64# else2# pragma __required_pointer_size __save.# pragma __required_pointer_size 64# endif( typedef void * ___void__ptr64;3 typedef const void * __const_void__ptr64;## if __INITIAL_POINTER_SIZE,# pragma __pointer_size __restore# else5# pragma __required_pointer_size __restore# endif #  else2 typedef unsigned __int64 ___void__ptr64; # endif # endif#endif#if defined(__VMS)H/***********************************************************************H** typedefs for return values of built-ins common for VAX and Alpha **H***********************************************************************/>typedef enum {_bbcci_oldval_1, _bbcci_oldval_0} _BBCCI_STATUS;>typedef enum {_bbssi_oldval_0, _bbssi_oldval_1} _BBSSI_STATUS;Otypedef enum {_insqi_inserted_ma ny, _insqi_not_inserted, _insqi_inserted_only}  _INSQI_STATUS;Ktypedef enum {_insque_inserted_only, _insque_inserted_many} _INSQUE_STATUS;Ftypedef enum {_probe_not_accessible, _probe_accessible} _PROBE_STATUS;itypedef enum {_remqi_removed_more, _remqi_not_removed, _remqi_removed_empty, _remqi_empty} _REMQI_STATUS;Ytypedef enum {_remque_removed_more, _remque_removed_empty, _remque_empty} _REMQUE_STATUS;#endif /* defined(__VMS) */J/*********************************************** *************************/&#if defined(__ALPHA) && defined(__VMS)J/************************************************************************//*2** The following builtins were added in DEC C V5.2*/:#if (__DECC_VER >= 50200000) || (__DECCXX_VER >= 50200000)A /************************************************************8 ** DEC C builtins for atomic/interlocked operationsA ************************************************************* **K ** These functions are not easi !ly/efficiently implemented using inlineO ** assembly code, and so the compiler has builtin knowledge of their namesO ** and signatures in order to generate fast and reliable code (e.g. it mayF ** generate loops with tests arranged for branch prediction using6 ** out-of-line branch targets for failure paths). **N ** The _RETRY variants store a non-zero status if the operation completesJ ** successfully within the specified number of retries. The variants8 ** "without _RETRY do not return until they succeed. **O ** The following operations do not in themselves generate Memory Barriers.I ** The user is expected to code explicitly any Memory Barriers whereI ** needed using inline assembly code, e.g. asm("mb"), or asm("wmb"). **O ** Many of these builtins perform essentially the same operations as otherH ** builtins having similar names but with the ATOMIC or INTERLOCKEDO ** appearing in a different position. The fo #llowing group with the ATOMICJ ** or INTERLOCKED first offer several usability improvements over theL ** older versions with the ATOMIC or INTERLOCKED appearing later in theF ** name. The older versions are retained for compatibility only. **M ** Usability problems with the older builtins that are addressed by this+ ** newer set introduced in DEC C V5.2: **C ** Old versions did not provide the pre-updated value, and N ** provided status even with $ infinite retry, in which case the builtinH ** does not return until it succeeds. New versions provide theO ** old value, and only provide status when the limited-retry variant is ** used. **M ** Older versions generated memory barriers both before and after theK ** update. Newer versions allow the user to control memory barrier2 ** placement for the low-level primitives. **K ** Older versions did not provide for efficient spinlo%ck or countedM ** semaphore implementation. There are new higher-level spinlock andO ** counted semaphore operations that include a test of the stored valueM ** to control success, and generate memory barriers just after a lockB ** or resource is acquired, and just before it is release. */ /*> ** The following set of functions may pass long pointers. */# if __INITIAL_POINTER_SIZE# pragma __pointer_size 64 # endif /*L ** & Atomic update of location with integer operation, returning previous ** contents. */ int __ATOMIC_ADD_LONG3 (volatile void *__addr, int __expr);# int __ATOMIC_ADD_LONG_RETRYL (volatile void *__addr, int __expr, int __retry, int *__sts); __int64 __ATOMIC_ADD_QUAD7 (volatile void *__addr, __int64 __expr);# __int64 __ATOMIC_ADD_QUAD_RETRYP (volatile void *__addr, __int64 __expr, int __retry, int *_'_sts); int __ATOMIC_AND_LONG3 (volatile void *__addr, int __expr);# int __ATOMIC_AND_LONG_RETRYL (volatile void *__addr, int __expr, int __retry, int *__sts); __int64 __ATOMIC_AND_QUAD7 (volatile void *__addr, __int64 __expr);# __int64 __ATOMIC_AND_QUAD_RETRYP (volatile void *__addr, __int64 __expr, int __retry, int *__sts); int __ATOMIC_OR_LONG3 (volatile void *__addr, int __expr)(;" int __ATOMIC_OR_LONG_RETRYL (volatile void *__addr, int __expr, int __retry, int *__sts); __int64 __ATOMIC_OR_QUAD7 (volatile void *__addr, __int64 __expr);" __int64 __ATOMIC_OR_QUAD_RETRYP (volatile void *__addr, __int64 __expr, int __retry, int *__sts); /*> ** Just like __ATOMIC_ADD, but using +1 or -1 implicitly. */# int __ATOMIC_INCREMENT_LONG' (volatile void *__addr);) int __ATOM)IC_INCREMENT_LONG_RETRY@ (volatile void *__addr, int __retry, int *__sts);# __int64 __ATOMIC_INCREMENT_QUAD' (volatile void *__addr);) __int64 __ATOMIC_INCREMENT_QUAD_RETRY@ (volatile void *__addr, int __retry, int *__sts);# int __ATOMIC_DECREMENT_LONG' (volatile void *__addr);) int __ATOMIC_DECREMENT_LONG_RETRY@ (volatile void *__addr, int __retry, int *__sts);# __int64 __ATOMIC_DECREME*NT_QUAD' (volatile void *__addr);) __int64 __ATOMIC_DECREMENT_QUAD_RETRY@ (volatile void *__addr, int __retry, int *__sts); /*O ** Atomic replacement of location's contents, returning previous contents. */ int __ATOMIC_EXCH_LONG3 (volatile void *__addr, int __expr);$ int __ATOMIC_EXCH_LONG_RETRYL (volatile void *__addr, int __expr, int __retry, int *__sts); __int64 __ATOMIC_EXCH_QUAD7 + (volatile void *__addr, __int64 __expr);$ __int64 __ATOMIC_EXCH_QUAD_RETRYP (volatile void *__addr, __int64 __expr, int __retry, int *__sts); /*M ** Interlocked "test for bit clear and then clear". Returns non-zero if ** bit was already clear. */( int __INTERLOCKED_TESTBITCC_QUAD5 (volatile void *__addr, int __bitpos);. int __INTERLOCKED_TESTBITCC_QUAD_RETRYN (volatile void *__addr, int __bitpos, int __r,etry, int *__sts); /*M ** Interlocked "test for bit set and then set". Returns non-zero if bit ** was already set. */( int __INTERLOCKED_TESTBITSS_QUAD5 (volatile void *__addr, int __bitpos);. int __INTERLOCKED_TESTBITSS_QUAD_RETRYN (volatile void *__addr, int __bitpos, int __retry, int *__sts); /*M ** Acquire/release binary spinlock based on low-order bit of a longword.I ** NOTE: Memory barrier generated after l-ock, before unlock. _RETRYB ** variant returns non-zero on success within retry attempts. */ void __LOCK_LONG' (volatile void *__addr); int __LOCK_LONG_RETRY4 (volatile void *__addr, int __retry); void __UNLOCK_LONG' (volatile void *__addr); /*M ** Acquire/release counted semaphore based on positive value of longword1 ** indicating number of resources available. **I ** NOTE: Memory barri.er generated after acquisition, before release.I ** _RETRY variant returns non-zero on success within retry attempts. */ void __ACQUIRE_SEM_LONG' (volatile void *__addr);$ int __ACQUIRE_SEM_LONG_RETRY4 (volatile void *__addr, int __retry); void __RELEASE_SEM_LONG' (volatile void *__addr); /*D ** Done with the set of functions which may pass long pointers. */# if __INITIAL_POINTER_SIZE# pragma _/_pointer_size 32 # endifD#endif /* (__DECC_VER >= 50200000) || (__DECCXX_VER >= 50200000) *//*** xxxQUE Mapping TablesI** These tables map the _PAL returned values into VAX C expected values.*/8#define __xxxQUE_MAP_ALPHA_TO_VAX(z) ((0x12 >> (z)) & 3)>#define __REMQxI_MAP_ALPHA_TO_VAX(z) (((0x0c >> (z)) + 1) & 3)/*7** All longword queue operations take 32-bit pointers.*/#ifdef __INITIAL_POINTER_SIZE)# pragma __required_pointer_size __save%# pragma __require 0d_pointer_size 32#endif/* "** Insertion into longword queues*/Nint __PAL_INSQHIL (void *__head, void *__new); /* At head, interlocked */Nint __PAL_INSQTIL (void *__head, void *__new); /* At tail, interlocked */Oint __PAL_INSQUEL (void *__pred, void *__new); /* At pred, interlocked */ Nint __PAL_INSQUEL_D (void **__pred, void *__new); /* At pred, indirectly */Nint __PAL_INSQHILR (void *__head, void *__new); /* At head, interlocked */Nint __PAL_INSQTILR (void 1 *__head, void *__new); /* At tail, interlocked *//* %** Removal from from longword queues*/Nint __PAL_REMQHIL (void *__head, void **__rem); /* At head, interlocked */Nint __PAL_REMQTIL (void *__head, void **__rem); /* At tail, interlocked */Nint __PAL_REMQUEL (void *__entr, void **__rem); /* At entr, interlocked */Nint __PAL_REMQUEL_D (void **__entr, void **__rem); /* At entr, indirectly */Nint __PAL_REMQHILR (void *__head, void **__rem); /* At head, interlocked */2Nint __PAL_REMQTILR (void *__head, void **__rem); /* At tail, interlocked *//*7** All quadword queue operations take 64-bit pointers.*/#ifdef __INITIAL_POINTER_SIZE%# pragma __required_pointer_size 64#endif/* "** Insertion into quadword queues*/Nint __PAL_INSQHIQ (void *__head, void *__new); /* At head, interlocked */Nint __PAL_INSQTIQ (void *__head, void *__new); /* At tail, interlocked */Nint __PAL_INSQUEQ (void *__pred, void *__new); /* At pred, 3interlocked */Nint __PAL_INSQUEQ_D (void **__pred, void *__new); /* At pred, indirectly */Nint __PAL_INSQHIQR (void *__head, void *__new); /* At head, interlocked */Nint __PAL_INSQTIQR (void *__head, void *__new); /* At tail, interlocked *//* ** Removal from quadword queues*/Nint __PAL_REMQHIQ (void *__head, void **__rem); /* At head, interlocked */Nint __PAL_REMQTIQ (void *__head, void **__rem); /* At tail, interlocked */Nint __PAL_REMQUEQ (void *__entr, void *4*__rem); /* At entr, interlocked */Nint __PAL_REMQUEQ_D (void **__entr, void **__rem); /* At entr, indirectly */Nint __PAL_REMQHIQR (void *__head, void **__rem); /* At head, interlocked */Nint __PAL_REMQTIQR (void *__head, void **__rem); /* At tail, interlocked */ /*.** Restore the original required_pointer_size*/#ifdef __INITIAL_POINTER_SIZE,# pragma __required_pointer_size __restore#endif/*:** The following set of functions may pass long pointers.*/#if __IN 5ITIAL_POINTER_SIZE#pragma __pointer_size 64#endif/* ** Move from Processor Register*/Punsigned int __PAL_MFPR_ASTEN (void); /* AST Enable */Punsigned int __PAL_MFPR_ASTSR (void); /* AST Summary Register */Pvoid * __PAL_MFPR_ESP (void); /* Executive Stack Pointer */Pint __PAL_MFPR_FEN (void); /* Floating Point Enable */Pint __PAL_MFPR_IPL (void); /* Interrupt Priority Level 6*/P__int64 __PAL_MFPR_MCES (void); /* Machine Check Error Summary */Pvoid * __PAL_MFPR_PCBB (void); /* Priv Context Block Base */P__int64 __PAL_MFPR_PRBR (void); /* Processor Base Register */Pint __PAL_MFPR_PTBR (void); /* Page Table Base Register */Pvoid * __PAL_MFPR_SCBB (void); /* System Control Block Base */Punsigned int __PAL_MFPR_SISR (void); /* Software Int Summ Register */Pvoid * 7 __PAL_MFPR_SSP (void); /* Supervisor Stack Pointer */P__int64 __PAL_MFPR_TBCHK (void *__addr); /* Translation Buffer Check */Pvoid * __PAL_MFPR_USP (void); /* User Stack Pointer */Pvoid * __PAL_MFPR_VPTB (void); /* Virtual Page Table */P__int64 __PAL_MFPR_WHAMI (void); /* Who Am I *//*** Move to Processor Register*/Pvoid __PAL_MTPR_ASTEN (unsigned int __mask); /* AST Enable 8 */Pvoid __PAL_MTPR_ASTSR (unsigned int __mask); /* AST Summary Register */Pvoid __PAL_MTPR_DATFX (int __value); /* Data Alignment Trap Fixup */Pvoid __PAL_MTPR_ESP (void *__addr); /* Executive Stack Pointer */Pvoid __PAL_MTPR_FEN (int __value); /* Floating Point Enable */Pvoid __PAL_MTPR_IPIR (__int64 __number); /* Interprocessor Inter Req */Pint __PAL_MTPR_IPL (int __value); /* Interrupt Priority Level 9*/Pvoid __PAL_MTPR_MCES (__int64 __value); /* Machine Check Error Summary */Pvoid __PAL_MTPR_PRBR (__int64 __value); /* Processor Base Register */Pvoid __PAL_MTPR_SCBB (void *__addr); /* System Control Block Base */Pvoid __PAL_MTPR_SIRR (int __level); /* Software Inter Req Register */Pvoid __PAL_MTPR_SSP (int *__addr); /* Supervisor Stack Pointer */Pvoid __PAL_MTPR_TBIA (void); /* User Stack Pointer */Pvoid __PAL :_MTPR_TBIAP (void); /* T Buffer Inval All Process */Pvoid __PAL_MTPR_TBIS (___void__ptr64 __addr); /* T Buffer Inval Single */Pvoid __PAL_MTPR_TBISD (___void__ptr64 __addr); /* T Buffer Inval Single Data */Pvoid __PAL_MTPR_TBISI (___void__ptr64 __addr); /* T Buffer Inval Single Instr */Gvoid __PAL_MTPR_USP (void *__addr); /* User Stack Pointer */Gvoid __PAL_MTPR_VPTB (void *__addr); /* Virtual Page Table *//*!** Probe Read/Write Acessibility;*/Hint __PAL_PROBER(const void *__base_address, int __offset, char __mode);Hint __PAL_PROBEW(const void *__base_address, int __offset, char __mode);/*** Change Mode */?void __PAL_CHME(void); /* Executive */?void __PAL_CHMK(void); /* Kernel */?void __PAL_CHMS(void); /* Supervisor */?void __PAL_CHMU(void); /* User *//* ** Load/Store Quadword Physical*/Iunsigned __int64< __PAL_LDQP(void *__addr); /* Load */Ivoid __PAL_STQP(void *__addr, unsigned __int64 __value); /* Store *//*@** Done with the set of functions which may pass long pointers.*/#if __INITIAL_POINTER_SIZE#pragma __pointer_size 32#endif/*** Cache Flush*/void __PAL_CFLUSH(int __value);/*** Drain Aborts*/void __PAL_DRAINA(void);/*** Read Processor Status*/#unsigned __int64 __PAL_RD_PS(void);/*** Swap AST Enable*/1unsign=ed int __PAL_SWASTEN(int __new_state_mask);/*)** Write Processor Status Software Field*/ void __PAL_WR_PS_SW(int __mask);/*'** Convert from G-Floating to Quadword*/#__int64 __CVTGQ(double __operand1);/*1** Convert from G-Floating to F-Floating Chopped*/#float __CVTGF_C(double __operand1);/*** Add Floating Point Chopped*/6float __ADDF_C(float __operand1, float __operand2);6double __ADDG_C(double __operand1, double __operand2);/*#** Subtract Floating >Point Chopped*/6float __SUBF_C(float __operand1, float __operand2);6double __SUBG_C(double __operand1, double __operand2);/*#** Multiply Floating Point Chopped*/6float __MULF_C(float __operand1, float __operand2);6double __MULG_C(double __operand1, double __operand2);/*!** Divide Floating Point Chopped*/6float __DIVF_C(float __operand1, float __operand2);6double __DIVG_C(double __operand1, double __operand2);/*=** Macros for translation from VAX C to DEC C ALP ?HA builtins*/E#define _BBCCI(position, address) __TESTBITCCI((address), (position))E#define _BBSSI(position, address) __TESTBITSSI((address), (position)):#define _INSQHI(new_entry, head) \> ((0x12 >> (__PAL_INSQHIL((head), (new_entry))+2)) & 3):#define _INSQTI(new_entry, head) \> ((0x12 >> (__PAL_INSQTIL((head), (new_entry))+2)) & 3)A#define _INSQUE(new_entry, predecessor) \E ((0x12 >> (__P @AL_INSQUEL((predecessor), (new_entry))+1)) & 3)>#define _REMQHI(head, removed_entry) \O (((0x0c >> (__PAL_REMQHIL((head), (void **)(removed_entry))+1))+1) & 3)>#define _REMQTI(head, removed_entry) \O (((0x0c >> (__PAL_REMQTIL((head), (void **)(removed_entry))+1))+1) & 3)?#define _REMQUE(entry, removed_entry) \L ((0x12 >> (__PAL_REMQUEL((entry), (void **)(removed_entry))+1)) & 3)P#define _PROABER(mode, offset, address) __PAL_PROBER((address), (offset), (mode))P#define _PROBEW(mode, offset, address) __PAL_PROBEW((address), (offset), (mode))/*6** __ALLOCA builtin - allocate n-bytes from the stack*/"void * __ALLOCA(unsigned int __x);/*?** The remaining functions can handle accepting long pointers.*/#if __INITIAL_POINTER_SIZE#pragma __pointer_size 64#endif/*3** UMULH Builtin - Unsigned Quadword Multiply High*/Munsigned __int64 __UMULH(unsigned __int64 __oper1,B unsigned __int64 __oper2);/*** op_ATOMIC_size Builtins**5** Note: There is one optional retry count parameter*/ 5int __ADD_ATOMIC_LONG(void *__addr, int __expr, ...);5int __ADD_ATOMIC_QUAD(void *__addr, int __expr, ...);5int __AND_ATOMIC_LONG(void *__addr, int __expr, ...);5int __AND_ATOMIC_QUAD(void *__addr, int __expr, ...);4int __OR_ATOMIC_LONG(void *__addr, int __expr, ...);4int __OR_ATOMIC_QUAD(void *__addr, int __expr, ...);/*** TESTBITxxI**5** Note: CThere is one optional retry count parameter*/4int __TESTBITCCI(void *__addr, int __position, ...);4int __TESTBITSSI(void *__addr, int __position, ...);/* ** Add Aligned Word Interlocked*/1int __ADAWI(short __src, volatile short *__dest);/*** Trap Barrier Instruction*/void __TRAPB(void);/*** Read Cycle Counter*/unsigned __int64 __RPCC(void);/*$** Halt the Processor. (Privileged)*/void _HALT(void);void __PAL_HALT(void);/*** Generate Trap*/=voDid __PAL_GENTRAP(unsigned __int64 __encoded_software_trap);/*** Breakpoint*/void __PAL_BPT(void);/* ** Bugcheck*/void __PAL_BUGCHK(void);/*** Swap Privileged Context*/ void __PAL_SWPCTX(void *__addr);/* ** Copy Sign*/6float __CPYSF (float __operand1, float __operand2);6double __CPYS (double __operand1, double __operand2);/*** Copy Sign Negate*/6float __CPYSNF(float __operand1, float __operand2);6double __CPYSN (double __operand1, double __Eoperand2);/*** Copy Sign Exponent*/6float __CPYSEF(float __operand1, float __operand2);6double __CPYSE (double __operand1, double __operand2);/*'** Convert from T-Floating to Quadword*/#__int64 __CVTTQ(double __operand1);/*1** Convert from T-Floating to S-Floating Chopped*/#float __CVTTS_C(double __operand1);/*** Add Floating Point Chopped*/6float __ADDS_C(float __operand1, float __operand2);6double __ADDT_C(double __operand1, double __operand2);/*F#** Subtract Floating Point Chopped*/6float __SUBS_C(float __operand1, float __operand2);6double __SUBT_C(double __operand1, double __operand2);/*#** Multiply Floating Point Chopped*/6float __MULS_C(float __operand1, float __operand2);6double __MULT_C(double __operand1, double __operand2);/*!** Divide Floating Point Chopped*/6float __DIVS_C(float __operand1, float __operand2);6double __DIVT_C(double __operand1, double __operand2);/*** Memory Barrier*/voGid __MB(void);/*** Instruction Memory Barrier*/void __PAL_IMB(void);/*** Compare, Store Long/Quad*/int __CMP_STORE_LONG= (volatile void *__src, int __oldval, int __newval, ! volatile void *__dst);int __CMP_STORE_QUADE (volatile void *__src, __int64 __oldval, __int64 __newval, ! volatile void *__dst);/*J** The following intrinsics were added in DEC C V5.7 and DIGITAL C++ V6.0*/:#if (__DECC_VER >= 50700000) || (_H_DECCXX_VER >= 60000000)' __int64 _popcnt (unsigned __int64);' __int64 _poppar (unsigned __int64);' __int64 _leadz (unsigned __int64);' __int64 _trailz (unsigned __int64);8# pragma intrinsic (_popcnt, _poppar, _leadz, _trailz)D#endif /* (__DECC_VER >= 50700000) || (__DECCXX_VER >= 60000000) *//*8** Reset the pointer size prior to leaving this section*/#if __INITIAL_POINTER_SIZE#pragma __pointer_size 32#endif#endif /* __ALPHA && __VMS */J/***I*********************************************************************/<#if defined(__ALPHA) && defined(__VMS) && defined(__X_FLOAT)J/************************************************************************//*'** Convert from X-Floating to Quadword*/(__int64 __CVTXQ(long double __operand1);/*1** Convert from X-Floating to T-Floating Chopped*/)double __CVTXT_C(long double __operand1);/*** Add Floating Point Chopped*/Elong double __ADDX_C(long double __operand1, long doubJle __operand2);/*#** Subtract Floating Point Chopped*/Elong double __SUBX_C(long double __operand1, long double __operand2);/*#** Multiply Floating Point Chopped*/Elong double __MULX_C(long double __operand1, long double __operand2);/*!** Divide Floating Point Chopped*/Elong double __DIVX_C(long double __operand1, long double __operand2);+#endif /* __ALPHA && __VMS && __X_FLOAT */J/************************************************************************/7K#if defined(__VAX) && defined(__VMS) && defined(__DECC)J/************************************************************************//*0** The following builtin was added in DEC C V6.0*/#if (__DECC_VER >= 60000000)& void * __ALLOCA(unsigned int __x);#endif/*2** The following builtins were added in DEC C V5.2*/#if (__DECC_VER >= 50200000) /*$ ** Processor Register Management */E typedef enum {_value_replaced, _value_not_replaced} _MTPR_STATUS;8 void _LMFPR(int __register_num, void *__destination);< _MTPR_STATUS _MTPR(int __new_value, int __register_num); /* ** Processor control */ void _HALT(void); /* ** General Register query */; typedef enum {_R0, _R1, _R2, _R3, _R4, _R5, _R6, _R7,M _R8, _R9, _R10, _R11, _AP, _FP, _SP, _PC} _REGISTER_NUMBER;> int _READ_GPR(_REGISTER_NUMBER __general_register_number);$#endif /* __DECC_VER >= 50200000 *//* ** Add Aligned Word IntMerlocked*/Ntypedef enum {_adawi_sum_neg=-1,_adawi_sum_zero,_adawi_sum_pos} _ADAWI_STATUS;1_ADAWI_STATUS _ADAWI(short __src, short *__dest);/*** Interlocked branch group*/3_BBCCI_STATUS _BBCCI(int __position, void *__addr);3_BBSSI_STATUS _BBSSI(int __position, void *__addr);/*** Find First bit group*/;typedef enum {_ff_bit_not_found, _ff_bit_found} _FF_STATUS;O_FF_STATUS _FFC(int __start, char __size, const void *__base, int *__position);O_FF_STATUS _FFS(int __start, chaNr __size, const void *__base, int *__position);/*** Insert into a queue group*/7_INSQI_STATUS _INSQHI(void *__new_entry, void *__head);7_INSQI_STATUS _INSQTI(void *__new_entry, void *__head);?_INSQUE_STATUS _INSQUE(void *__new_entry, void *__predecessor);/*** Character processing group*/Xunsigned short _LOCC(char __target, unsigned short __length, const char *__string, ...);Kvoid _MOVC3(unsigned short __length, const char *__src, char *__dest, ...);rvoid _MOVC5(unsign Oed short __srclen, const char *__src, char __fill, unsigned short __destlen, char *__dest, ...);lunsigned short _SCANC(unsigned short __length, const char *__string, const char *__table, char __mask, ...);Xunsigned short _SKPC(char __target, unsigned short __length, const char *__string, ...);lunsigned short _SPANC(unsigned short __length, const char *__string, const char *__table, char __mask, ...);/*&** Obtain the program status longword*/void _MOVPSL(void *__psl);/*** Probe mePmory group*/P_PROBE_STATUS _PROBER(char __mode, unsigned short __length, const void *__addr);P_PROBE_STATUS _PROBEW(char __mode, unsigned short __length, const void *__addr);/*** Remove from a queue group*/;_REMQI_STATUS _REMQHI(void *__head, void *__removed_entry);;_REMQI_STATUS _REMQTI(void *__head, void *__removed_entry);=_REMQUE_STATUS _REMQUE(void *__entry, void *__removed_entry);#endif /* __VAX && __VMS *//*%** Restore the users pointer context*/#if __INQITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif#pragma __standard #endif /* __BUILTINS_LOADED */wwg HE\#ifndef __COMPLEX_LOADED#define __COMPLEX_LOADED 1M/******************************************************************************'** - C99 complex data type**M*****************************************************************************)** Header introduced by the C99 StandardM********** R*******************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/**S under vendor's standard commercial license.**M******************************************************************************/#pragma __nostandard#include F#if !( defined(__ALPHA) && defined(__DECC) && __DECC_VER >= 60400000 )E# error "C99 header is not supported by this compiler."#elif __D_FLOATE# error "The complex data type is not supported in D_FLOAT format."#else#define complex _Complex/*= * Because the _Complex_I define is recursTive, we avoid it inA * vaxc mode - the compiler message saying the complex data typesB * are not supported in this language mode is what we want to see,' * not the recursive expansion message. */#if !defined(__VAXC)!# define _Complex_I _Complex_I #endif#define I _Complex_I2extern double complex cacos (double complex __z);1extern float complex cacosf (float complex __z);<extern long double complex cacosl (long double complex __z);2extern double complex casin (double compl Uex __z);1extern float complex casinf (float complex __z);<extern long double complex casinl (long double complex __z);2extern double complex catan (double complex __z);1extern float complex catanf (float complex __z);<extern long double complex catanl (long double complex __z);1extern double complex ccos (double complex __z);0extern float complex ccosf (float complex __z);;extern long double complex ccosl (long double complex __z);1extern double complex csin (double complex __z);0 Vextern float complex csinf (float complex __z);;extern long double complex csinl (long double complex __z);1extern double complex ctan (double complex __z);0extern float complex ctanf (float complex __z);;extern long double complex ctanl (long double complex __z);3extern double complex cacosh (double complex __z);2extern float complex cacoshf (float complex __z);=extern long double complex cacoshl (long double complex __z);3extern double complex casinh (double complex __z);2extern W float complex casinhf (float complex __z);=extern long double complex casinhl (long double complex __z);3extern double complex catanh (double complex __z);2extern float complex catanhf (float complex __z);=extern long double complex catanhl (long double complex __z);2extern double complex ccosh (double complex __z);1extern float complex ccoshf (float complex __z);<extern long double complex ccoshl (long double complex __z);2extern double complex csinh (double complex __z);1extern f Xloat complex csinhf (float complex __z);<extern long double complex csinhl (long double complex __z);2extern double complex ctanh (double complex __z);1extern float complex ctanhf (float complex __z);<extern long double complex ctanhl (long double complex __z);1extern double complex cexp (double complex __z);0extern float complex cexpf (float complex __z);;extern long double complex cexpl (long double complex __z);1extern double complex clog (double complex __z);0extern float compl Yex clogf (float complex __z);;extern long double complex clogl (long double complex __z);!#if defined(_MATH_H_DEFINED_CABS)2# pragma __message ("Temporary restriction: " \9 " defined incompatible declarations " \= "for cabs(), cabsf(), and cabsl() using struct types. " \9 "To get correct c99 declarations for these " \= "functions, you must #include before the " \ "#include of .")#else# define cabsl MATH$CABS_X# ifZ __IEEE_FLOAT!# define cabs MATH$HYPOT_T!# define cabsf MATH$HYPOT_S# else!# define cabs MATH$HYPOT_G!# define cabsf MATH$HYPOT_F # endif- extern double cabs (double complex __z);, extern float cabsf (float complex __z);8 extern long double cabsl (long double complex __z);#endifEextern double complex cpow (double complex __x, double complex __y);Cextern float complex cpowf (float complex __x, float complex __y);;extern long double [complex cpowl (long double complex __x,$ long double complex __y);2extern double complex csqrt (double complex __z);1extern float complex csqrtf (float complex __z);<extern long double complex csqrtl (long double complex __z);*extern double carg (double complex __z);)extern float cargf (float complex __z);4extern long double cargl (long double complex __z);+extern double cimag (double complex __z);*extern float cimagf (float complex __z);5extern long double cimagl ( \long double complex __z);1extern double complex conj (double complex __z);0extern float complex conjf (float complex __z);;extern long double complex conjl (long double complex __z);2extern double complex cproj (double complex __z);1extern float complex cprojf (float complex __z);<extern long double complex cprojl (long double complex __z);+extern double creal (double complex __z);*extern float crealf (float complex __z);5extern long double creall (long double complex __z);X]#endif /* defined(__ALPHA) && defined(__DECC) && __DECC_VER >= 60400000 && !__D_FLOAT */#pragma __standard#endif /* __COMPLEX_LOADED */wwHE\#ifndef __CTYPE_LOADED#define __CTYPE_LOADEDM/******************************************************************************=** - Character Type Classification Macros/Routines**M*****************************************************************************,** Header introduced by the ANSI C StandardM********** ^*********************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government_/** under vendor's standard commercial license.**N*******************************************************************************/#pragma __nostandard#include #ifdef __cplusplus extern "C" {#endif/*K** 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/*%** 4.3.1 Character Testin`g Functions*/int isalnum (int);int isalpha (int);int iscntrl (int);int isdigit (int);int isgraph (int);int islower (int);int isprint (int);int ispunct (int);int isspace (int);int isupper (int);int isxdigit (int);/**** 4.3.2 Character Case Mapping Functions*/int tolower (int);int toupper (int);O/********************************************************************************** OpenVMS V6.2 and later**O****************************a**************************************************/#if __CRTL_VER >= 60200000*# define __ctypet (decc$$ga___ctypet)*# define __ctypea (decc$$gl___ctypea)-# define __isclocale (decc$$gl___isclocale) # pragma __extern_model __save)# pragma __extern_model __strict_refdef /*A ** Classmask array __ctypet is declared as a pointer in order? ** to prevent BADSUBSCRIPT message which otherwise would beE ** issued by the compiler when one of the is* functions isb calledB ** with EOF and, accordingly, __ISFUNCTION macro below expands ** into __ctypet[-1] */+ extern const unsigned int * __ctypet ; extern int __ctypea ; extern int __isclocale ;## pragma __extern_model __restore# define __UPPER 0x1# define __LOWER 0x2# define __DIGIT 0x4# define __SPACE 0x8# define __PUNCT 0x10# define __CNTRL 0x20# define __XDIGIT 0x40# define __PRINT 0x80# define __ALPcHABET 0x100# define __ALNUM 0x104# define __GRAPH 0x200# define __BLANK 0X400"# define __ISALPHABET (isalpha)"# define __ISCNTRL (iscntrl)"# define __ISUPPER (isupper)"# define __ISLOWER (islower)"# define __ISDIGIT (isdigit)"# define __ISSPACE (isspace)"# define __ISPUNCT (ispunct)## define __ISXDIGIT (isxdigit)"# define __ISPRINT (isprint)"# define __ISGRAPH (isgraph)"# define __ISALNUM (isalnum)L d# define __ISFUNCTION(c,p) (__ctypea?__ctypet[(int)(c)]&__##p:__IS##p(c))-# define iscntrl(c) __ISFUNCTION(c, CNTRL)-# define isalnum(c) __ISFUNCTION(c, ALNUM)0# define isalpha(c) __ISFUNCTION(c, ALPHABET)-# define isdigit(c) __ISFUNCTION(c, DIGIT)-# define isgraph(c) __ISFUNCTION(c, GRAPH)-# define islower(c) __ISFUNCTION(c, LOWER)-# define isprint(c) __ISFUNCTION(c, PRINT)-# define ispunct(c) __ISFUNCTION(c, PUNCT)-# define isspace(c) __ISFUNCTION(c, SePACE).# define isxdigit(c) __ISFUNCTION(c, XDIGIT)-# define isupper(c) __ISFUNCTION(c, UPPER)9# define __IS_LOWER(c) (((c) >= 'a' && (c) <= 'z')?1:0)9# define __IS_UPPER(c) (((c) >= 'A' && (c) <= 'Z')?1:0)/* ** X/Open extensions*/ 9# if defined(_XOPEN_SOURCE) || !defined(_ANSI_C_SOURCE)Z# define _toupper(c) (__isclocale? (__IS_LOWER(c) ? (c) & 0xDF: (c)): (toupper)(c))Z# define _tolower(c) (__isclocale? (__IS_UPPER(c) ? (c) | 0x20: (c)): (tolower)(cf)) int isascii (int); int toascii (int);1# define isascii(c) ((unsigned)(c) <= 0x7F)&# define toascii(c) ((c) & 0x7F) # endif#endifO/********************************************************************************** Prior to OpenVMS V6.2**O******************************************************************************/#if __CRTL_VER < 60200000%# define __ctype (*decc$ga___ctype) # pragma __extern_model __save)# pragma __extergn_model __strict_refdef! extern const char __ctype [];## pragma __extern_model __restore# define _U 0x1# define _L 0x2# define _D 0x4# define _S 0x8# define _P 0x10# define _C 0x20# define _X 0x40# define _B 0x80# ifdef __DECC# pragma __message __save(# pragma __message __disable (__CHECK) # endif$ static int __iscntrl (int __c) {% /* Check explicitly for EOF */6 return __c < 0 ? 0 : __ctype [__c & 0xFF] & _C; h}# define iscntrl __iscntrl# ifdef __DECC# pragma __message __restore # endif># define isalnum(c) (__ctype [(c) & 0xFF] & (_U | _L | _D))9# define isalpha(c) (__ctype [(c) & 0xFF] & (_U | _L))2# define isdigit(c) (__ctype [(c) & 0xFF] & _D)C# define isgraph(c) (__ctype [(c) & 0xFF] & (_P | _U | _L | _D))2# define islower(c) (__ctype [(c) & 0xFF] & _L)H# define isprint(c) (__ctype [(c) & 0xFF] & (_P | _U | _L | _D | _B))2# define ispunct(c) (__ctypie [(c) & 0xFF] & _P)2# define isspace(c) (__ctype [(c) & 0xFF] & _S)2# define isupper(c) (__ctype [(c) & 0xFF] & _U)2# define isxdigit(c) (__ctype [(c) & 0xFF] & _X)/* ** X/Open extensions*/ 9# if defined(_XOPEN_SOURCE) || !defined(_ANSI_C_SOURCE)# define _ctype_ __ctype int isascii (int);0# define isascii(c) ((unsigned)(c) <= 0x7F)%# define toascii(c) ((c) & 0x7F)I# define _toupper(c) (((c) >= 'a' && (c) <= 'z') ? (c) & 0xDF : (c))I# j define _tolower(c) (((c) >= 'A' && (c) <= 'Z') ? (c) | 0x20 : (c)) # endif#endif/*%** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif#pragma __standard#endif /* __CTYPE_LOADED */wwsHE\#ifndef __CURSES_LOADED#define __CURSES_LOADED 1M/******************************************************************************3** - Curses screen manag kement functions**M******************************************************************************* Header is nonstandardM*******************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commlercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N*******************************************************************************/#pragma __nostandard#include #ifdef __cplusplus extern "C" {#endif#if __INITIAL_POINTER_SIZE # pragma __pointer_size __save# pragma __pointer_size 32#endif/*+** Using __VMS_CURSmES implies _VMS_CURSES */2#if defined(__VMS_CURSES) && !defined(_VMS_CURSES)# define _VMS_CURSES 1#endif/*/** Using __BSD44_CURSES implies _BSD44_CURSES */6#if defined(__BSD44_CURSES) && !defined(_BSD44_CURSES)# define _BSD44_CURSES 1#endif/*** Default to _VMS_CURSES*/4#if !defined(_BSD44_CURSES) && !defined(_VMS_CURSES)# define _VMS_CURSES 1#endif/*E** BSD Curses is only available on OpenVMS Alpha as of OpenVMS V7.0.**E** While this may appea nr to be an incompatible change, the number ofL** problems discovered in the BSD Curses package shipped as part of the DECL** C RTL in versions of OpenVMS prior to V7.0 has led us to conclude that aE** correct program could not be built using it. We have changed theI** default to be _VMS_CURSES for those applications which are targettingD** systems prior to OpenVMS V7.0 and also utilize curses functions.***/,#if defined(_BSD44_CURSES) && defined(__VAX)D# error " BSD 4.4 Curses pacokage not yet available on OpenVMS VAX"#endif5#if defined(_BSD44_CURSES) && (__CRTL_VER < 70000000)N# error " BSD 4.4 Curses package not available on OpenVMS Alpha before V7.0"#endif/*G** Disable the following messages prior to including the header files.*/#pragma __message __save-#pragma __message __disable (__MISALGNDSTRCT)+#pragma __message __disable (__MISALGNDMEM)(#pragma __message __disable (__MACROEXT)/*M** Perform includes necessary for each of the curses packpages. This is doneJ** here because we do not want to use any #pragmas prior to the includes.*/#ifdef _VMS_CURSES # include # include 5# if !(__DECC_MODE_COMMON) && !(__DECC_MODE_STRICT)# include # endif#else# include # include # include #endif/*A** All structures should be member aligned on natural boundaries*/!#pragma __member_alignment __save#pragma __member_alignment/*<q** Definitions common to both _VMS_CURSES and _BSD44_CURSES*/*#define ERR (0) /* Error return */*#define OK (1) /* Success return */ #ifndef TRUE# define TRUE (1)#endif #ifndef FALSE# define FALSE (0)#endif/*I** Define macros which give the user the correct dereferencing of global&** variables defined in the DEC C RTL*/#ifdef __ALPHA$# define LINES decc$ga_LINES## define COLS decc$ga_COLS%# define stdscr decc$ga_stdrscr%# define curscr decc$ga_curscr#else'# define LINES (*decc$ga_LINES)&# define COLS (*decc$ga_COLS)(# define stdscr (*decc$ga_stdscr)(# define curscr (*decc$ga_curscr)#endif#ifdef _VMS_CURSES# ifdef __ALPHA$# define stdkb decc$ga_stdkb$# define stdpb decc$ga_stdpb# else'# define stdkb (*decc$ga_stdkb)'# define stdpb (*decc$ga_stdpb) # endif#endif #ifdef _VMS_CURSES </*******************s***************************************/</* Header file for _VMS_CURSES (VAX and Alpha) */</**********************************************************//*** */#define reg register/*** */#define _SUBWIN 0001#define _ENDLINE 0002#define _FULLWIN 0004#define _SCROLLWIN 0010#define _FLUSH 0020#define _STANDOUT 0200/*=** Values used in lower byte of the _win_st _flags structure*//#define _BLINK 4 /* SMG$M_BLINK *//#dtefine _BOLD 1 /* SMG$M_BOLD *//#define _REVERSE 2 /* SMG$M_REVERSE *//#define _UNDERLINE 8 /* SMG$M_UNDERLINE *//*;** Values used in the _flags field in the _kb_st structure*/#define _NOECHO 001#define _NONL 002#define _NOCRMODE 004#define _NORAW 010/*$** Buffer size used by SMG routines*/#define SMG_BUFSIZ 512/*** Define a _win_st structure*/!#pragma __member_alignment __save##pragma __nomember_alignument __wordstruct _win_st { int _cur_y, _cur_x; int _max_y, _max_x; int _beg_y, _beg_x; /*D ** Low byte of _flags contains rendition and the upper byte are; ** values such as _ENDLINE, _SCROLLWIN etc (see above) */ short _flags;* char _clear, _leave, _scroll, _wrap; char **_y; short *_firstch, *_lastch;- struct _win_st *_next, *_parent, *_child; int _id;};$#pragma __member_alignment __restore/*** Devfine a _kb_st structure*/struct _kb_st { /*3 ** Identifier of the keyboard. Passed to SMG. */ int _id; /*' ** Flags can be raw, break etc...  */ unsigned char _flags;  /* ** Descriptor use for input */ struct { unsigned short length; unsigned char type;# ifdef __cplusplus! unsigned char _class; # else unsigned char class; # endif char *address;w } _buffer_desc; /*? ** The number of bytes read in but not yet returned to the@ ** application. An example of this is using RAW mode whereA ** several characters are read in on a single getch, but theB ** application must call getch several times to get each one. */ int _count; /*G ** Pointer to next byte to return to user. This may or may not beE ** equal to the address field in the above descriptor when input ** is buffered.x */ char *_ptr;};/*** Define a _pb_st structure*/2#if !(__DECC_MODE_COMMON) && !(__DECC_MODE_STRICT) struct _pb_st { int _id; int _rows, _cols; union smgdef *_attr; int _attr_size; };#endif!#define _KEYBOARD struct _kb_st"#define WINDOW struct _win_st!#define _PASTEBOARD struct _pb_st/* ** Curses external declarations*/#pragma __extern_model __save&#pragma __extern_model __strict_refdef<extern yWINDOW * curscr; /* Current screen */<extern WINDOW * stdscr; /* Standard screen */<extern int COLS; /* Columns on the screen */<extern int LINES; /* Lines on the screen */<extern _KEYBOARD * stdkb; /* Standard keyboard */<extern _PASTEBOARD * stdpb; /* Standard pasteboard */ #pragma __extern_model __restore/*L** The following non-stdscr functions are defined as macros which use the w@** form of the func ztions, passing stdscr as the first argument.*/2#define addch(ch) waddch (stdscr,ch)2#define addstr(s) waddstr (stdscr,s)/#define clear() wclear (stdscr)3#define clrattr(a) wclrattr (stdscr,a)2#define clrtobot() wclrtobot (stdscr)2#define clrtoeol() wclrtoeol (stdscr)/#define delch() wdelch (stdscr)2#define deleteln() wdeleteln (stdscr)/#define erase() werase (st {dscr)/#define getch() wgetch (stdscr)2#define getstr(s) wgetstr (stdscr,s).#define inch() winch (stdscr)1#define insch(c) winsch (stdscr,c)2#define insertln() winsertln (stdscr)2#define insstr(s) winsstr (stdscr,s)2#define move(y,x) wmove (stdscr,y,x)1#define refresh() wrefresh (stdscr)3#define setattr(a) wsetattr (stdscr,a)2#define standout() ws |tandout (stdscr)2#define standend() wstandend (stdscr) 8#define mvaddch(y,x,ch) mvwaddch (stdscr,y,x,ch)5#define mvgetch(y,x) mvwgetch (stdscr,y,x):#define mvaddstr(y,x,str) mvwaddstr (stdscr,y,x,str):#define mvinsstr(y,x,str) mvwinsstr (stdscr,y,x,str):#define mvgetstr(y,x,str) mvwgetstr (stdscr,y,x,str)4#define mvinch(y,x) mvwinch (stdscr,y,x)5#define mvdelch(y,x) mvwdelch (stdscr,y,x)8#define mvinsch(y,x,ch) } mvwinsch (stdscr,y,x,ch)8#define mvdeleteln(y,x) mvwdeleteln (stdscr,y,x)4#define mvcur(ly,lx,ny,nx) wmove (stdscr,ny,nx)L#define mvwaddch(win,y,x,ch) (wmove(win,y,x)==ERR ? ERR : waddch(win,ch))I#define mvwgetch(win,y,x) (wmove(win,y,x)==ERR ? ERR : wgetch(win))N#define mvwinsstr(win,y,x,str) (wmove(win,y,x)==ERR ? ERR : winsstr(win,str))N#define mvwgetstr(win,y,x,str) (wmove(win,y,x)==ERR ? ERR : wgetstr(win,str))H#define mvwinch(win,y,x) (wmove(win,y,x)= ~=ERR ? ERR : winch(win))I#define mvwdelch(win,y,x) (wmove(win,y,x)==ERR ? ERR : wdelch(win))L#define mvwinsch(win,y,x,ch) (wmove(win,y,x)==ERR ? ERR : winsch(win,ch))L#define mvwdeleteln(win,y,x) (wmove(win,y,x)==ERR ? ERR : wdeleteln(win))2#define clearok(win,bf) (win->_clear = bf)2#define leaveok(win,bf) (win->_leave = bf)3#define scrollok(win,bf) (win->_scroll = bf)1#define wrapok(win,bf) (win->_wrap = bf)W#define flushok(win,bf) (bf ? win->_flags |= _FLUSH : (win->_flags &= ~_FLUSH))@#define getyx(win,y,x) y = win->_cur_y, x = win->_cur_x/*** Terminal input mode macros*//#define echo() (stdkb->_flags &= ~_NOECHO)/#define noecho() (stdkb->_flags |= _NOECHO).#define raw() (stdkb->_flags &= ~_NORAW).#define noraw() (stdkb->_flags |= _NORAW)-#define nl() (stdkb->_flags &= ~_NONL)-#define nonl() (stdkb->_flags |= _NONL);#define crmode() ((stdkb->_flags &= ~_NOCRMODE), nonl())2#define nocrmode() (stdkb->_flags |= _NOCRMODE)/*I** Create 'private' typedefs that are sensitive to pointer size and mustG** use short pointers. These typedefs are used when refering to these)** types when in 64 bit pointer context.*/$ typedef WINDOW * __WINDOW_ptr32;/*H** We are done defining things which must always be short pointers. IfH** the user has used /pointer_size=short or /pointer_size=long, we will5** allow long pointers to be used in function calls.*/#if __INITIAL_POINTER_SIZE# pragma __pointer_size 64#endif/*E** The DEC C RTL always allocates WINDOW structure in 32 bit memory.*/__WINDOW_ptr32 initscr (void);U__WINDOW_ptr32 newwin (int __numlines, int __numcols, int __begin_y, int __begin_x);d__WINDOW_ptr32 subwin (WINDOW *__win, int __numlines, int __numcols, int __begin_y, int __begin_x);/*N** The following functions have two interfaces, one for 32 and one for 64 bit ** pointers.*/ #if __INITIAL_POINTER_SIZE == 32# pragma __pointer_size 32#endif1 char *longname (char *termbuf, char *__name);#if __INITIAL_POINTER_SIZE# pragma __pointer_size 324 char *_longname32 (char *termbuf, char *__name);# pragma __pointer_size 644 char *_longname64 (char *termbuf, char *__name);#endif/*** Function prototypes*/=int box (WINDOW *__win, char __vert, char __hor);$int delwin (WINDOW *__win);int endwin (void);J int mvwaddstr (WINDOW *__win, int __vert, int __horz, char *__str );@int mvwin (WINDOW *__win, int __st_row, int __st_col);5int overlay (WINDOW *__win1, WINDOW *__win2);5int overwrite (WINDOW *__win1, WINDOW *__win2);/int printw (char *__format_spec, ...);/int scanw (char *__format_spec, ...);$int scroll (WINDOW *__win);$int touchwin (WINDOW *__win);/int waddch (WINDOW *__win, char __ch);1int waddstr (WINDO W *__win, char *__str);$int wclear (WINDOW *__win);0int wclrattr (WINDOW *__win, int __attr);$int wclrtobot (WINDOW *__win);$int wclrtoeol (WINDOW *__win);$int wdelch (WINDOW *__win);$int wdeleteln (WINDOW *__win);$int werase (WINDOW *__win);$int wgetch (WINDOW *__win);1int wgetstr (WINDOW *__win, char *__str);$char winch (WINDOW *__win);/int winsch (WINDOW *__win, char __ch);$int winsertln (WINDOW *__win);Iint winsstr (WINDOW *, const char *); /* OpenVMS extension */6int wmove (WINDOW *__win, int __y, int __x);>int wprintw (WINDOW *__win, char *__format_spec, ...);$int wrefresh (WINDOW *__win);>int wscanw (WINDOW *__win, char *__format_spec, ...);0int wsetattr (WINDOW *__win, int __attr);$int wstandend (WINDOW *__win);$int wstandout (WINDOW *__win);#endif /* _VMS_CURSES */ #ifdef _BSD44_CURSES</******* ***************************************************/</* Header file for _BSD44_CURSES (Alpha Only) */</**********************************************************/</* */</* Documentation on the 4.4BSD curses package can be */</* found in: */</* */</* "Screen Updating and Cursor Movement */</* Optimization: A Library Package" */</* */</* by Kenneth C.R.C. Arnold */</* */</**********************************************************//*8** Pointers to termcap fields used by BSD curses package*/#define AE decc$ga_bsd_ae#define AL decc$ga_bsd_al #define al decc$ga_bsd_al2#define AS decc$ga_bsd_as#define AM decc$ga_bsd_am #define BC decc$ga_bsd_bc #define BS decc$ga_bsd_bs #define BT decc$ga_bsd_bt #define CA decc$ga_bsd_ca #define CD decc$ga_bsd_cd #define CE decc$ga_bsd_ce #define CL decc$ga_bsd_cl #define CM decc$ga_bsd_cm #define CR decc$ga_bsd_cr #define CS decc$ga_bsd_cs #define DA decc$ga_bsd_da #define DB decc$ga_bsd_db #define DC decc$ga_bsd_dc #define DL decc$ga_bsd_dl #define dl decc$ga_bsd_dl2#define DM decc$ga_bsd_dm #define DO decc$ga_bsd_do #define ED decc$ga_bsd_ed #define EI decc$ga_bsd_ei #define EO decc$ga_bsd_eo #define GT decc$ga_bsd_gt #define HC decc$ga_bsd_hc #define HO decc$ga_bsd_ho #define HZ decc$ga_bsd_hz #define IC decc$ga_bsd_ic #define IM decc$ga_bsd_im #define IN decc$ga_bsd_in #define IP decc$ga_bsd_ip #define K0 decc$ga_bsd_k0 #define K1 decc$ga_bsd_k1 #define K2 decc$ga_bsd_k2 #define K3 decc$ga_bsd_k3 #define K4 decc$ga_bsd_k4 #define K5 decc$ga_bsd_k5 #define K6 decc$ga_bsd_k6 #define K7 decc$ga_bsd_k7 #define K8 decc$ga_bsd_k8 #define K9 decc$ga_bsd_k9 #define KD decc$ga_bsd_kd #define KE decc$ga_bsd_ke #define KH decc$ga_bsd_kh #define KL decc$ga_bsd_kl #define KR decc$ga_bsd_kr #define KS decc$ga_bsd_ks #define KU decc$ga_bsd_ku #define LL decc$ga_bsd_ll #define MA decc$ga_bsd_ma #define MB decc$ga_bsd_mb #define MD decc$ga_bsd_md#define ME decc$ga_bsd_me#define MI decc$ga_bsd_mi #define MR decc$ga_bsd_mr#define MS decc$ga_bsd_ms #define NC decc$ga_bsd_nc #define ND decc$ga_bsd_nd #define NL decc$ga_bsd_nl #define NS decc$ga_bsd_ns #define OS decc$ga_bsd_os #define PC decc$ga_bsd_pc #define RC decc$ga_bsd_rc #define SC decc$ga_bsd_sc #define SE decc$ga_bsd_se #define SF decc$ga_bsd_sf #define sf decc$ga_bsd_sf2#define SO decc$ga_bsd_so #define SR decc$ga_bsd_sr #define sr decc$ga_bsd_sr2#define TA decc$ga_bsd_ta #define TE decc$ga_bsd_te #define TI decc$ga_bsd_ti #define UC decc$ga_bsd_uc #define UE decc$ga_bsd_ue #define UL decc$ga_bsd_ul #define UP decc$ga_bsd_up #define US decc$ga_bsd_us #define VB decc$ga_bsd_vb #define VE decc$ga_bsd_ve #define VS decc$ga_bsd_vs #define XB decc$ga_bsd_xb #define XN decc$ga_bsd_xn #define XS decc$ga_bsd_xs #define XT decc$ga_bsd_xt #define XX decc$ga_bsd_xx /*.** Possible params to specific termcap fields*/*#define AL_PARM decc$ga_bsd_al_parm *#define DL_PARM decc$ga_bsd_dl_parm ,#define DOWN_PARM decc$ga_bsd_down_parm ,#define LEFT_PARM decc$ga_bsd_left_parm -#define RIGHT_PARM decc$ga_bsd_right_parm *#define UP_PARM decc$ga_bsd_up_parm /*** BSD boolean fields*/,#define  UPPERCASE decc$ga_bsd_uppercase '#define NONL decc$ga_bsd_nonl +#define Def_term decc$ga_bsd_def_term )#define My_term decc$ga_bsd_my_term)#define __unctrl decc$ga_bsd__unctrl,#define __unctrllen decc$ga_bsd__unctrllen)#define ttytype decc$ga_bsd_ttytype/*A** The following #defines and #includes are present for backward@** compatibility only. They should not be used in future code.**&** START BACKWARD COMPATIBILITY ONLY.*/#ifndef _CURSES_PRIVATE# define bool char# define reg register# define _BSD_VA_LIST_ ...*# define _puts(s) tputs(s,0,__cputchar)%# define _putchar(c) __cputchar(c)# define crmode() cbreak()!# define nocrmode() nocbreak()3# if !defined __U_INT && !defined _DECC_V4_SOURCE# define __U_INT typedef __u_int u_int; # endif#endif>extern char GT; /* Gtty indicates tabs */>extern char NONL; /* Term can't hack LF doing a CR */>extern char UPPERCASE; /* Terminal is uppercase only */>extern int My_term; /* Use Def_term regardless */>extern char *Def_term; /* Default terminal type *//*** Termcap capabilities*/Fextern char AM,BS,CA,DA,EO,HC,IN,MI,MS,NC,NS,OS,PC,UL,XB,XN,XT,XS,XX;Pextern char *AE,*AL,*AS,*BC,*BT,*CD,*CE,*CL,*CM,*CR,*CS,*DC,*DL,*DM,*DO,*ED,*EI,P *K0,*K1,*K2,*K3,*K4,*K5,*K6,*K7,*K8,*K9,*HO,*IC,*IM,*IP,*KD,*KE,*KH,P *KL,*KR,*KS,*KU,*LL,*MA,*MB,*MD,*ME,*MR,*ND,*NL,*RC,*SC,*SE,*SF,*SO,H *SR,*TA,*TE,*TI,*UC,*UE,*UP,*US,*VB,*VS,*VE,*al,*dl,*sf,*sr,I *AL_PARM,*DL_PARM,*UP_PARM,*DOWN_PARM,*LEFT_PARM,*RIGHT_PARM;&/* END BACKWARD COMPATIBILITY ONLY. *//*** 8-bit ASCII characters*/+#define unctrl(c) __unctrl[(c) & 0xff]/#define unctrllen(ch) __unctrllen[(ch) & 0xff]>extern char *__unctrl[256]; /* Control strings */>extern char __unctrllen[256]; /* Control strings length */ /*G** A window is an array of __LINE structures pointed to by the 'lines'D** pointer. A line is an array of __LDATA structures pointed to by** the 'line' pointer.**D** IMPORTANT: the __LDATA structure must NOT induce any padding,soD** if new fields are added -- padding fields with *constant values*F** should ensure that the compiler will not generate any padding when>** storing an array of __LDATA structures. This is to enableA** consistent use of memcmp,and memcpy for comparing and copying ** arrays.*/typedef struct {. char ch; /* the actual character */. char attr; /* attributes of character */ } __LDATA;%#define __LDATASIZE (sizeof(__LDATA))H#define A_STANDOUT 0x01 /* For wattron,wattroff,wattrset */#define A_UNDERLINE 0x02#define A_REVERSE 0x04#define A_BLINK 0x08#define A_BOLD 0x10H#define A_DIM A_BOLD /* dim not avaiable, make it bold */H#define A_ALTCHARSET 0x20 /* Use alternate character set */#define A_NORMAL 0x00H#define __STANDOUT A_STANDOUT /* Added characters are standout. */typedef struct {J __size_t *firstchp, *lastchp; /* First and last chngd columns ptrs */J __LDATA *line; /* Pointer to the line text. */J __size_t firstch, lastch; /* First and last changed columns. */ __u_int flags;J __u_int hash; /* Hash value for the line. */ } __LINE;H#define __ISDIRTY 0x01 /* Line is dirty. */H#define __ISPASTEOL 0x02 /* Cursor is past end of line */H#define __FORCEPAINT 0x04 /* Force a repaint of the line *//* G** Although fields within the window structure should never be changedG** by application code, some of the fields are useful for applications** to have read access to.**C** BSD 4.4 code removed the "_" from structure member names so forG** upward c ompatability, defines of the names including the underscore** have been made.*/typedef struct __window {I struct __window *nextp; /* Subwindows list and parent */I struct __window *orig; /* */I __LINE **lines; /* Array of pointers to the lines */I __LINE *lspace; /* line space (for cleanup) */I __LDATA *wspace; /* window space (for cleanup) */I __size_t begy, begx; /* Window home */I __size_t cury, curx; /* Current y, x coordinates */I __size_t maxy, maxx; /* Maximum values for cury, curx */ __u_int flags;I __u_int w_nodelay; /* non-blocking used with nodelay routine */I short ch_off; /* x offset for firstch/lastch. */I char attrs; /* character attributes for new char */I /* See __LDATA section for valid values */ } WINDOW;/****/#define _begy begy#define _begx begx#define _cury cury#define _curx curx#define _maxy maxy#define _maxx maxx#define _flags flags#define _attrs attrs/* ** Curses external declarations*/<extern WINDOW * curscr; /* Current screen */<extern WINDOW * stdscr; /* Standard screen */<extern int COLS; /* Columns on the screen */<extern int LINES; /* Lines on the screen */<extern char * ttytype; /* Full name of terminal *//****/D#define __ENDLINE 0x001 /* End of screen */D#define __FLUSH 0x002 /* Fflush(stdout) after refresh */D#define __FULLLINE 0x004 /* Line width = terminal width */D#define __FULLWIN 0x008 /* Window is a screen */D#define __IDLINE 0x010 /* Insert/delete sequences */D #define __SCROLLWIN 0x020 /* Last char will scroll window */D#define __SCROLLOK 0x040 /* Scrolling ok */D#define __CLEAROK 0x080 /* Clear on next refresh */D#define __WSTANDOUT 0x100 /* Standout (attributes) window */E#define __LEAVEOK 0x200 /* If curser left */ /*$** Standard screen pseudo functions**D** Original BSD 4.4 sources with a check for decc$$scr_is_tty added**L** The following non-stdscr f unctions are defined as macros which use the w@** form of the functions, passing stdscr as the first argument.*/!extern unsigned decc$$scr_is_tty;x#define addbytes(s,n) (!decc$$scr_is_tty ? ERR : __waddbytes(stdscr,s,n,(stdscr->attrs == A_NORMAL) ? 0 : 1))N#define addch(ch) (!decc$$scr_is_tty ? ERR : waddch(stdscr,ch))Q#define addnstr(s,n) (!decc$$scr_is_tty ? ERR : waddnstr(stdscr,s,n))#define addstr(s) (!decc$$scr_is_tty ? ERR : __waddbytes(stdscr,s,strlen(s),(stdscr->attrs == A_NORMAL) ? 0 : 1))O#define attron(at) (!decc$$scr_is_tty ? ERR : wattron(stdscr,at))P#define attroff(at) (!decc$$scr_is_tty ? ERR : wattroff(stdscr,at))P#define attrset(at) (!decc$$scr_is_tty ? ERR : wattrset(stdscr,at))K#define clear() (!decc$$scr_is_tty ? ERR : wclear(stdscr))P#define clrattr(at) (!decc$$scr_is_tty ? ERR : wclrattr(stdscr,at))N#define clrtobot() (!decc$$scr_is_tty ? ERR : wclrtobot(stdscr))N#define clrtoeol() (!decc$$scr_is_tty ? ERR : wclrtoeol(stdscr))K#define delch() (!decc$$scr_is_tty ? ERR : wdelch(stdscr))N#define deleteln() (!decc$$scr_is_tty ? ERR : wdeleteln(stdscr))K#define erase() (!decc$$scr_is_tty ? ERR : werase(stdscr))/#define getch() wgetch(stdscr)2#define getstr(s) wgetstr(stdscr,s)J#define inch() (!decc$$s cr_is_tty ? ERR : winch(stdscr))N#define insch(ch) (!decc$$scr_is_tty ? ERR : winsch(stdscr,ch))/*!** Digital only extension to BSD*/O#define insstr(s) (!decc$$scr_is_tty ? ERR : winsstr (stdscr,s))N#define insertln() (!decc$$scr_is_tty ? ERR : winsertln(stdscr))N#define move(y,x) (!decc$$scr_is_tty ? ERR : wmove(stdscr,y,x))M#define refresh() (!decc$$scr_is_tty ? ERR : wrefresh(stdscr))P#define setattr(at) (!decc$$scr_is_tty ? ERR : wsetattr(stdscr,at))N#define standend() (!decc$$scr_is_tty ? ERR : wstandend(stdscr))N#define standout() (!decc$$scr_is_tty ? ERR : wstandout(stdscr))n#define waddbytes(w,s,n) (!decc$$scr_is_tty ? ERR : __waddbytes(w,s,n,(w->attrs == A_NORMAL) ? 0 : 1))v#define waddstr(w,s) (!decc$$scr_is_tty ? ERR : __waddbytes(w,s,strlen(s),(w->attrs == A_NORMAL) ? 0 : 1))/*2** Standard screen plus movement pseudo functions*/X#define mvaddbytes(y,x,s,n) (!decc$$scr_is_tty ? ERR : mvwaddbytes(stdscr,y,x,s,n))T#define mvaddch(y,x,ch) (!decc$$scr_is_tty ? ERR : mvwaddch(stdscr,y,x,ch))W#define mvaddnstr(y,x,s,n) (!decc$$scr_is_tty ? ERR : mvwaddnstr(stdscr,y,x,s,n))T#define mvaddstr(y,x,s) (!decc$$scr_is_tty ? ERR : mvwaddstr(stdscr,y,x,s))Q#define mvdelch(y,x) (!decc$$scr_is_tty ? ERR : mvwdelch(stdscr,y,x))Q#define mvgetch(y,x) (!decc$$scr_is_tty ? ERR : mvwgetch(stdscr,y,x))T#define mvgetstr(y,x,s) (!decc$$scr_is_tty ? ERR : mvwgetstr(stdscr,y,x,s))P#define mvinch(y,x) (!decc$$scr_is_tty ? ERR : mvwinch(stdscr,y,x))S#define mvinsch(y,x,c) (!decc$$scr_is_tty ? ERR : mvwinsch(stdscr,y,x,c))/*!** Digital only extension to BSD*/U#define mvinsstr(y,x,s) (!decc$$scr_is_tty ? ERR : mvwinsstr (stdscr,y,x,s))p#define mvwaddbytes(w,y,x,s,n) (wmove(w,y,x) == ERR ? ERR : __waddbytes(w,s,n,(w->attrs == A_NORMAL) ? 0 : 1))K#define mvwaddch(w,y,x,ch) (wmove(w,y,x) == ERR ? ERR : waddch(w,ch))N#define mvwaddnstr(w,y,x,s,n) (wmove(w,y,x) == ERR ? ERR : waddnstr(w,s,n))x#define mvwaddstr(w,y,x,s) (wmove(w,y,x) == ERR ? ERR : __waddbytes(w,s,strlen(s),(w->attrs == A_NORMAL) ? 0 : 1))H#define mvwdelch(w,y,x) (wmove(w,y,x) == ERR ? ERR : wdelch(w))H#define mvwgetch(w,y,x) (wmove(w,y,x) == ERR ? ERR : wgetch(w))K#define mvwgetstr(w,y,x,s) (wmove(w,y,x) == ERR ? ERR : wgetstr(w,s))G#define mvwinch(w,y,x) (wmove(w,y,x) == ERR ? ERR : winch(w))J#define mvwinsch(w,y,x,c) (wmove(w,y,x) == ERR ? ERR : winsch(w,c))/*!** Digital only extension to BSD*/I#define mvwinsstr(w,y,x,s) (wmove(w,y,x)==ERR ? ERR : winsstr(w,s))/*** Psuedo functions*/`#define clearok(w,bf) ((bf) ? ((w)->flags |= __CLEAROK) : ((w)->flags &= ~__CLEAROK))\#define flushok(w,bf) ((bf) ? ((w)->flags |= __FLUSH) : ((w)->flags &= ~__FLUSH))@#define getyx(w,y,x) (y) = (w)->cury,(x) = (w)->curx`#define leaveok(w,bf) ((bf) ? ((w)->flags |= __LEAVEOK) : ((w)->flags &= ~__LEAVEOK))b#define scrollok(w,bf) ((bf) ? ((w)->flags |= __SCROLLOK) : ((w)->flags &= ~__SCROLLOK))S#define winch(w) ((w)->lines[(w)->cury]->line[(w)->curx].ch & 0177)/*I** Create 'private' typedefs that are sensitive to pointer size and mustG** use short pointers. These typedefs are used when refering to these)** types when in 64 bit pointer context.*/$ typedef WINDOW * __WINDOW_ptr32;/*F** Switch back to 32-bit pointer size to define those functions which%** are resticted to 32-bit pointers.*/#if __INITIAL_POINTER_SIZE# pragma __pointer_size 32#endif/*?** The callback routines for tputs is always a 32 bit address.*/'typedef void (*__tputs_callback) (int);/*3** Define macros for mapping to decc$ entry points*/3#define fullname(p1,p2)  decc$bsd_fullname(p1,p2).#define getcap(p1) decc$bsd_getcap(p1)3#define longname(p1,p2) decc$bsd_longname(p1,p2)2#define tgetstr(p1,p2) decc$bsd_tgetstr(p1,p2)/*F** The following functions are restricted to 32 bit pointers. If youH** have a need to use the 64 bit interface, the names of the proceduresB** to call are function prototyped in the 64 bit section and have+** names of the form decc$_bsd_fullname64.*/!char *fullname (char *, char *);char *getcap (char *);!char *longname (char *, char *);(char *tgetstr (__char_ptr64, char **);/*H** We are done defining things which must always be short pointers. IfH** the user has used /pointer_size=short or /pointer_size=long, we will5** allow long pointers to be used in function calls.*/#if __INITIAL_POINTER_SIZE# pragma __pointer_size 64#endif/*K** Define the 64 bit specific interfaces for those users needing access toI** them. There is no "transparent" way to access these. Compiling withE** the /pointer_size=64 qualifier does not automatically call these.*/#if __INITIAL_POINTER_SIZE2 char *decc$_bsd_fullname64 (char *, char *);* char *decc$_bsd_getcap64 (char *);2 char *decc$_bsd_longname64 (char *, char *);3 char *decc$_bsd_tgetstr64 (char *, char **);#endif/*3** Define macros for mapping to decc$ entry points*/5#define __cputchar decc$bsd__cputcharC#define __waddbytes(p1,p2,p3,p4) decc$bs d__waddbytes(p1,p2,p3,p4)8#define baudrate(p1) decc$bsd_baudrate(p1)9#define box(p1,p2,p3) decc$bsd_box(p1,p2,p3)7#define cbreak(_p1) decc$bsd_cbreak(_p1)6#define delwin(p1) decc$bsd_delwin(p1)5#define echo(_p1) decc$bsd_echo(_p1)2#define endwin decc$bsd_endwin:#define erasechar(_p1) decc$bsd_erasechar(_p1)9#define gettmode(_p1) decc$bsd_gettmode(_p1)8#define idlok(p1, p2) decc$bsd_idlok(p1,p2)8#define initscr(_p1) decc$bsd_initscr(_p1)9#define killchar(_p1) decc$bsd_killchar(_p1);#define mvwin(p1,p2,p3) decc$bsd_mvwin(p1,p2,p3)3#define nl(_p1) decc$bsd_nl(_p1)9#define nocbreak(_p1) decc$bsd_nocbreak(_p1):#define nodelay(p1,p2) decc$bsd_nodelay(p1,p2)7#define noecho(_p1) decc$bsd_noecho(_p1)5#define nonl(_p1) decc$bsd_nonl(_p1) 6#define noraw(_p1) decc$bsd_noraw(_p1):#define overlay(p1,p2) decc$bsd_overlay(p1,p2)<#define overwrite(p1,p2) decc$bsd_overwrite(p1,p2)4#define raw(_p1) decc$bsd_raw(_p1)8#define resetty(_p1) decc$bsd_resetty(_p1)8#define savetty(_p1) decc$bsd_savetty(_p1)6#define scroll(p1) decc$bsd_scroll(p1)7#define setterm(p1) decc$bsd_setterm(p1):#define tgetent(p1,p2) decc$bs d_tgetent(p1,p2)8#define tgetflag(p1) decc$bsd_tgetflag(p1)7#define tgetnum(p1) decc$bsd_tgetnum(p1);#define tgoto(p1,p2,p3) decc$bsd_tgoto(p1,p2,p3)8#define touchwin(p1) decc$bsd_touchwin(p1);#define tputs(p1,p2,p3) decc$bsd_tputs(p1,p2,p3)9#define waddch(p1,p2) decc$bsd_waddch(p1,p2);#define wattroff(p1,p2) decc$bsd_wattroff(p1,p2):#define wattron(p1,p2) decc$bsd_wattron(p1,p2);#define wattrset(p1,p2) decc$bsd_wattrset(p1,p2)6#define wclear(p1) decc$bsd_wclear(p1);#define wclrattr(p1,p2) decc$bsd_wclrattr(p1,p2)9#define wclrtobot(p1) decc$bsd_wclrtobot(p1)9#define wclrtoeol(p1) decc$bsd_wclrtoeol(p1)6#define wdelch(p1) decc$bsd_wdelch(p1)9#define wdeleteln(p1) decc$bsd_wdeleteln(p1)6#define werase(p1) decc$bsd_werase(p1)6#define wgetch(p1) decc$bs d_wgetch(p1):#define wgetstr(p1,p2) decc$bsd_wgetstr(p1,p2)9#define winsch(p1,p2) decc$bsd_winsch(p1,p2)9#define winsertln(p1) decc$bsd_winsertln(p1):#define winsstr(p1,p2) decc$bsd_winsstr(p1,p2);#define wmove(p1,p2,p3) decc$bsd_wmove(p1,p2,p3)8#define wrefresh(p1) decc$bsd_wrefresh(p1);#define wsetattr(p1,p2) decc$bsd_wsetattr(p1,p2)9#define wstandend(p1) decc$bsd_wstandend(p1)9#define w standout(p1) decc$bsd_wstandout(p1)>#define mvcur(p1,p2,p3,p4) decc$bsd_mvcur(p1,p2,p3,p4)?#define newwin(p1,p2,p3,p4) decc$bsd_newwin(p1,p2,p3,p4)B#define subwin(p1,p2,p3,p4,p5) decc$bsd_subwin(p1,p2,p3,p4,p5)B#define touchline(p1,p2,p3,p4) decc$bsd_touchline(p1,p2,p3,p4)?#define touchoverlap(p1,p2) decc$bsd_touchoverlap(p1,p2)>#define waddnstr(p1,p2,p3) decc$bsd_waddnstr(p1,p2,p3)/*M** Define macros for mapping to decc$ entry points (floating point specific)*/ #if __X_FLOAT&# if __G_FLOAT /* g-float */*# define printw decc$gxbsd_printw)# define scanw decc$gxbsd_scanw+# define wprintw decc$gxbsd_wprintw*# define wscanw decc$gxbsd_wscanw,# define mvprintw decc$gxbsd_mvprintw-# define mvwprintw decc$gxbsd_mvwprintw,# define mvscanw decc$gxbsd_mvscanw ,# define mvwscanw decc$gxbsd_mvwscanw)# elif __IEEE_FLOAT /* ieee-float */*# d efine printw decc$txbsd_printw)# define scanw decc$txbsd_scanw+# define wprintw decc$txbsd_wprintw*# define wscanw decc$txbsd_wscanw,# define mvprintw decc$txbsd_mvprintw-# define mvwprintw decc$txbsd_mvwprintw,# define mvscanw decc$txbsd_mvscanw ,# define mvwscanw decc$txbsd_mvwscanw&# else /* d-float */*# define printw decc$dxbsd_printw)# define scanw decc$dxbsd_scanw+# define wprintw  decc$dxbsd_wprintw*# define wscanw decc$dxbsd_wscanw,# define mvprintw decc$dxbsd_mvprintw-# define mvwprintw decc$dxbsd_mvwprintw,# define mvscanw decc$dxbsd_mvscanw ,# define mvwscanw decc$dxbsd_mvwscanw # endif#else&# if __G_FLOAT /* g-float */(# define printw decc$bsd_printw'# define scanw decc$bsd_scanw)# define wprintw decc$bsd_wprintw(# define wscanw decc$bsd_wscanw*# define mvprintw decc$bsd_mvprintw+# define mvwprintw decc$bsd_mvwprintw*# define mvscanw decc$bsd_mvscanw *# define mvwscanw decc$bsd_mvwscanw)# elif __IEEE_FLOAT /* ieee-float */)# define printw decc$tbsd_printw(# define scanw decc$tbsd_scanw*# define wprintw decc$tbsd_wprintw)# define wscanw decc$tbsd_wscanw+# define mvprintw decc$tbsd_mvprintw,# define mvwprintw decc$tbsd_mvwprintw+# define mvscanw decc$tbsd_mvscanw +# define mvwscanw decc$tbsd_mvwscanw&# else /* d-float */)# define printw decc$dbsd_printw(# define scanw decc$dbsd_scanw*# define wprintw decc$dbsd_wprintw)# define wscanw decc$dbsd_wscanw+# define mvprintw decc$dbsd_mvprintw,# define mvwprintw decc$dbsd_mvwprintw+# define mvscanw decc$dbsd_mvscanw +# define mvwscanw decc$dbsd_mvwscanw # endif#endif/*** Public function prototypes*/void __cputchar (int);:int __waddbytes (WINDOW *, const char *, int, int);/*E** The DEC C RTL always allocates WINDOW structure in 32 bit memory.*/__WINDOW_ptr32 initscr (void);,__WINDOW_ptr32 newwin (int, int, int, int);6__WINDOW_ptr32 subwin (WINDOW *, int, int, int, int);/*J** The return values of these functions are pointers to character strings:** allocated by the CRTL and are always 32 bit addresses.*/"__char_ptr32 wstandend (WINDOW *);"__char_ptr32 wstandout (WINDOW *);*__char_ptr32 tgoto (char *, int, int);/*** Public function prototypes*/int baudrate (void);,int box (WINDOW *, int, int);int cbreak (void);"int delwin (WINDOW *);int erasechar (void);int echo (void);int endwin (void);int gettmode (void);'void idlok (WINDOW *, int);int killchar (void);,int mvcur (int, int, int, int);5int mvprintw (int, int, const char *, ...);5int mvscanw (int, int, const char *, ...);,int mvwin (WINDOW *, int, int);?int mvwprintw (WINDOW *, int, int, const char *, ...);?int mvwscanw (WINDOW *, int, int, const char *, ...);int nl (void);int nocbreak (void);Lint nodelay (WINDOW *, const int); /* OpenVMS extension */int noecho (void);int nonl (void);in t noraw (void);,int overlay (WINDOW *, WINDOW *);,int overwrite (WINDOW *, WINDOW *);+int printw (const char *, ...);int raw (void);int resetty (void);int savetty (void);+int scanw (const char *, ...);"int scroll (WINDOW *); int setterm (char *);1int touchline (WINDOW *, int, int, int);,int touchoverlap (WINDOW *, WINDOW *);"int touchwin (WIND OW *);'int waddch (WINDOW *, int);5int waddnstr (WINDOW *, const char *, int);"int wclear (WINDOW *);"int wclrtobot (WINDOW *);"int wclrtoeol (WINDOW *);"int wdelch (WINDOW *);"int wdeleteln (WINDOW *);"int werase (WINDOW *);"int wgetch (WINDOW *);*int wgetstr (WINDOW *, char *);'int winsch (WINDOW *, int);Lint winsstr (WINDOW *, const char *); /* OpenVMS extension */"int winsertln (WINDOW *);,int wmove (WINDOW *, int, int);5int wprintw (WINDOW *, const char *, ...);"int wrefresh (WINDOW *);5int wscanw (WINDOW *, const char *, ...);'int wclrattr (WINDOW *, int);'int wsetattr (WINDOW *, int);'int wattron (WINDOW *, int);'int wattroff (WINDOW *, int);'int wattrset (WINDOW *, int); /*** Termcap functions*/(int tgetent (char *, char *); int tgetnum (char *); int tgetflag (char *);7void tputs (char *, int, __tputs_callback);/*J** The following routines, savetty and resetty are left in only as stubs.*/int resetty();int savetty();#endif /* _BSD44_CURSES */ /*%** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif#pragma __message __restore$#pragma __member_alignment __restore#pragma __standard#endif /* __CURSES_LOADED */ww3!HE\#ifndef __C_ASM_LOADED#define __C_ASM_LOADED 1#pragma __nostandardL#if defined(__ALPHA) && ((!defined(__DECCXX)) || (__DECCXX_VER >= 50300000))M/******************************************************************************6** - Prototypes for asm intrinsic functions**M******************************************************************************* Header is nons tandardM*******************************************************************************M** Copyright Digital Equipment Corporation 1994, 1997. All rights reserved.**B** Restricted Rights: Use, duplication, or disclosure by the U.S.F** Government is subject to restrictions as set forth in subparagraphF** (c) (1) (ii) of DFARS 252.227-7013, or in FAR 52.227-19, or in FAR&** 52.227-14 Alt. III, as applicable.**A** This software is proprietary to and embodies the confidentialD** technology of Digital Equipment Corporation. Possession, use, orG** copying of this software and media is authorized only pursuant to aD** valid written license from Digital or an authorized sublicensor.**N*******************************************************************************/#include #ifdef __cplusplus extern "C" {#endif##if defined(__INITIAL_POINTER_SIZE))# pragma __required_pointer_size __save%# pragma __required_pointer_size 32#endif /*:** DEC C supports in-line assembly code, commonly called** ASMs on UNIX platforms.**F** Like builtin-functions, ASMs are implemented with a function-callI** syntax. But unlike built-in functions, to use ASMs you must includeI** this header file containing prototypes for the three types?** of ASMs, and the #pragma intrinsic preprocessor directive:**A** __int64 asm(const char*, ...); // integer return, e.g. MULQJ** float fasm(const char*, ...); // sing le precision return, e.g. MULSJ** double dasm(const char*, ...); // double precision return, e.g. MULT(** #pragma intrinsic (asm, fasm, dasm)**** Parameters:**G** The first argument to the asm, fasm, or dasm function containsJ** the instruction(s) to be generated inline, using the metalanguageG** (see below) that describes the interpretation of the arguments)** and the instructions themselves.**G** Subsequent arguments provide the source and desti nation valuesK** (if any) for the instruction being generated, and any other valuesM** used in the generated instructions. These values are made availableK** to the instructions via the normal argument passing conventions ofK** the calling standard (e.g. the first integer argument is available** in register R16).**** Return value:**E** The choice of which function you call determines the type ofE** the function value if the function is u sed in an expression.E** But it is up to the user-written instructions to ensure thatB** the intended value of that type is placed in the registerD** mandated by the calling standard for that type in order for<** the value to be made available to the calling code.**H** Note that the #pragma intrinsic directive is required. It notifiesF** the compiler that these functions are not user-defined functions,@** and that special processing should be applied to analyze at>** compile-time the first argument and generate machine-code=** instructions as specified by the contents of the string.**I** The metalanguage for the argument references has the following form:**/** : 0** | /** | **)** : "$" number**3** : "%" **%** : number.** | 6** | "f" number | "F" number6** | "r" number | "R" number**=** : // argument registers: R16-R21F** "a0" | "a1" | "a2" | "a3" | "a4" | "a5"**K** // return value: R0 or F0, depending on type#** | "v0"**E** // scratch registers: R1, R22-R24, R28 ?** | "t0" | "t1" | "t2" | "t3" | "t4"**8** // save registers: R2-R15M** | "s0" | "s1" | "s2" | "s3" | "s4" | "s5" | "s6"G** | "s7" | "s8" | "s7" | "s8" | "s9" | "s10"4** | "s11" | "s12" | "s13"**4** // stack pointer: R30:** | "sp" | "SP" | "$sp" | "$SP"**K** | "RA" | "ra" // return addr: R26K** | "PV" | "pv" // procedure value: R27K** | "AI" | "ai" // arg info: R25K** | "FP" | "fp" // frame pointer: R29L** | "RZ" | "rz" | "zero" // sink/source: R31 == 0**?** Syntactically, the metalanguage can appear anywhere within** an instruction sequence.**A** The literal string that contains instructions, operands, and/** metalanguage must follow the general form:**2** : H** | ";" &** | error8** | error**4** : instruction_operand*** | directive****B** An instruction_operand is generally recognized as an assemblyD** language instruction separated by whitespace from a sequence of** comma-separated operands.**A** You can code multiple instruction sequences into one literalA** string, separating them by semicolons. Since the C languageA** concatentates adjacent string literals into a single string,?** successive instructions can be written as separate stringsC** one-per-line as is normally done in assembly language, as longE** as each instruction is terminated by a semicolon as shown in the** examples.**>** T here are semantic and syntax rules associated with ASMs:**A** o The first argument to an ASM call is interpreted as theD** instructions to be assembled in the metalanguage, and must>** be fully understood by the compiler at compile time.F** Therefore, it must be a literal string (or a macro expandingK** to a literal string) and not a runtime value containing a string.J** Thus the following are not allowed: indirections, table lookups,-** struct ure de-references, and so on.**>** o The remaining arguments are loaded into the argument?** registers like normal function arguments, except thatE** the SECOND argument to the ASM call is treated as the FIRST8** argument for purposes of the calling standard.**C** For example, in the following test, the six arguments areD** loaded into arg registers a0 through a5, and the result ofC** each subexpression is stored in the value return registe rG** v0. Since v0 is the calling-standard's return value registerC** (R0 for an integer function) the result of the final mulq.** is the value returned by the "call":**,** if (asm("mulq %a0, %a1, %v0;",** "mulq %a2, %v0, %v0;",** "mulq %a3, %v0, %v0;",** "mulq %a4, %v0, %v0;"H** "mulq %a5, %v0, %v0;", 1, 2, 3, 4, 5, 6) != 720){** error_cnt++;+** printf ("Test failed\n");** }**A** o A return register must be specified in the metalanguage9** for the result to appear in the expected place.**A** The following example does not work. There is no valueF** loaded into the floating-point return register. Furthermore,F** it results in a compile-time warning stating that r2 is usedE** before it is set, because the arguments are loaded into the(** arg registers and not into r2:**5** z = fasm("mulq %r2, %a1 %r5", x=10, y=5);**2** A correct version of the above would be:***** z = fasm("mulq %a0, %a1, %a1;"(** "stq %a1, 0(%a2);"(** "ldt %f0, 0(%a2);":** "cvtqf %f0, %f0;", x=10, y=5, &temp);**=** Note that the memory location used for the transfer=** from integer to floating register is made available?** to the asm code by passing as an argument the addressA** of a variable allocated in the C code for that purpose.**>** o For intructions that do not take any argument and do>** not have a return type, leave out the arguments. For** example:**** asm("mb");*//*** Function prototypes**?** Note that there is no support for 64 bit character pointers*/ __int64 asm (const char *,...);!double dasm (const char *, ...); float fasm (const char*, ...);#pragma intrinsic(asm)#pragma intrinsic(dasm)#pragma intrinsic(fasm)/*%** Restore the users pointer context*/##if defined(__INITIAL_POINTER_SIZE),# pragma __required_pointer_size __restore#endif#ifdef __cplusplus }#endif"#endif /* __ALPHA && !_DECCXX */#pragma __standard#endif /* __C_ASM_LOADED */ww/'HE\#ifndef ____DECC_TYPES_LOADED/*J** Note, that for decc$types.h header we cannot use the name of the headerI** file with leading underscores as protecting macro, as w e usually do inL** our public header files, because the file name contains dollar sign whichG** 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_LOADEDM/******************************************************************************J** This header file is included by all header files. The purpose of thisG** header file is to include those things which are either done by allC** header files or introduce no name space violations by doing so.**M*****************************************************************************7** Header not defined by any specification or standardM*******************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N*******************************************************************************/#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 < 1N# undef _POSIX_C_SOURCE /* Use _POSIX_C_SOURCE with a value of 1 */N# define _POSIX_C_SOURCE 1 /* instead of _POSIX_SOURCE (obsolete) */ # endif# endif7# 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/*K** 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/*N** The DEC C RTL relies on the use of extern_prefix support in the compilers.N** The scenario of a customer getting these new headers via DEC C++, while atH** 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/UIDB** was introduced with the intention to merge this functionality ?** into some future (currently unspecified) release of OpenVMS'** Alpha following OpenVMS Alpha V7.3.**C** POSIX-style GID requires 32-bit gid_t datatype. On a version ofB** OpenVMS Alpha which supports POSIX-style GID/UID, 32-bit gid_t=** becomes a default meaning, that unless _DECC_SHORT_GID_T,I** _VMS_V6_SOURCE or _DECC_V4_SOURCE macro is defined, gid_t is declared3** as 'unsigned int' rather than 'unsigned short'.**G** Since the exact version of OpenV MS Alpha into which the support forH** POSIX-style GID/UID will be merged into has not been determined yet,F** we provide __COE_SYSTEM macro which allows to request 32-bit gid_tI** datatype on a version of VMS other than OpenVMS Alpha V7.2-6C1. Note,J** that defining the __COE_SYSTEM macro on a system that does not supportF** POSIX-style GID/UID, can result in generating a code which may not** execute correctly.**D** Note also, that 32-bit gid_t datatype requires the compiler that ** supports external prefixing.*/#ifndef __USE_LONG_GID_Ti# 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/*M** Define typedefs which are used throughout the header files. Pointer size0** is only allowed on OpenVMS Alpha after V7.0.*/#ifdef __INITIAL_POINTER_SIZE# if __INITIAL_POINTER_SIZE5# if (__CRTL_VER < 70000000) || !defined __ALPHAM# error " Pointer size usage not permitted before OpenVMS Alpha V7.0" # endif## pragma __pointer_size __save# pragma __pointer_size 32 # endif#endif /*J ** 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;2 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;4 typedef unsigned short * __unsigned_short_ptr32;@ typedef const unsigned short * __const_unsigned_short_ptr32;% typedef char ** __char_ptr_ptr32;3 typedef char * const * __char_ptr_const_ptr32;#ifdef __ALPHA$ typedef __int64 * __int64_ptr32;0 typedef const __int64 * __const_int64_ptr32;#endif#ifndef __NULL6# 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;3 typedef char * const * __char_ptr_const_ptr64; typedef void * __void_ptr64;, typedef const void * __const_void_ptr64;& typedef __size_t * __size_t_ptr64;2 typedef const __size_t * __const_size_t_ptr64;& typedef __wchar_t * __wchar_ptr64;2 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 */wwJ-HE\#ifndef __DESCRIP_LOADED#define __DESCRIP_LOADED 1M/******************************************************************************1** - VMS Argument Descriptor Formats**M******************************************************************************* Header is nonstandardM*******************************************************************************M** Copyright Digital Equipment Corporation 1993, 1997. All rights reserved.**B** Restricted Rights: Use, duplication, or disclosure by the U.S.F** Government is subject to restrictions as set forth in subparagraphF** (c) (1) (ii) of DFARS 252.227-7013, or in FAR 52.227-19, or in FAR&** 52.227-14 Alt. III, as applicable.**A** This software is proprietary to and embodies the confidentialD** technology of Digital Equipment Corporation. Possession, use, orG** copying of this software and media is authorized only pursuant to aD** valid written license from Digital or an authorized sublicensor.**N*******************************************************************************/#pragma __nostandard#ifdef __cplusplus extern "C" {#endif#ifdef __INITIAL_POINTER_SIZE(# pragma __required_pointer_size __save$# pragma __required_pointer_size 32#endif/*(** Default to member aligned structures*/!#pragma __member_alignment __save#pragma __member_alignment/*7 * 32-BIT DESCRIPTOR DEFINITIONS (64-bit forms follow) *//*] * Descriptor Prototype - each class of descriptor consists of at least the following fields: */struct dsc$descriptor{g unsigned short dsc$w_length; /* specific to descriptor class; typically a 16-bit (unsigned) length */0 unsigned char dsc$b_dtype; /* data type code */7 unsigned char dsc$b_class; /* descriptor class code */B char *dsc$a_pointer; /* address of first byte of data element */};/* * Fixed-Length Descriptor: */struct dsc$descriptor_s{> unsigned short dsc$w_length; /* length of data item in bytes,3 or if dsc$b_dtype is DSC$K_DTYPE_V, bits,E or if dsc$b_dtype is DSC$K_DTYPE_P, digits (4 bits each) */0 unsigned char dsc$b_dtype; /* data type code */G unsigned char dsc$b_class; /* descriptor class code = DSC$K_CLASS_S */B char *dsc$a_pointer; /* address of first byte of data storage */};/* * Dynamic String Descriptor: */struct dsc$descriptor_d{> unsigned short dsc$w_length; /* length of data item in bytes,3 or if dsc$b_dtype is DSC$K_DTYPE_V, bits,E or if dsc$b_dtype is DSC$K_DTYPE_P, digits (4 bits each) */0 unsigned char dsc$b_dtype; /* data type code */G unsigned char dsc$b_class; /* descriptor class code = DSC$K_CLASS_D */B char *dsc$a_pointer; /* address of first byte of data storage */};/* * Array Descriptor: */struct dsc$descriptor_a{E unsigned short dsc$w_length; /* length of an array element in bytes,3 or if dsc$b_dtype is DSC$K_DTYPE_V, bits,E or if dsc$b_dtype is DSC$K_DTYPE_P, digits (4 bits each) */0 unsigned char dsc$b_dtype; /* data type code */G unsigned char dsc$b_class; /* descriptor class code = DSC$K_CLASS_A */I char *dsc$a_pointer; /* address of first actual byte of data storage */N char dsc$b_scale; /* signed power-of-two or -ten multiplier, as specified byI dsc$v_fl_binscale, to convert from internal to external form */b unsigned char dsc$b_digits; /* if nonzero, number of decimal digits in internal representation */#pragma __nomember_alignment struct {/ unsigned : 3; /* reserved; must be zero */^ unsigned dsc$v_fl_binscale : 1; /* if set, dsc$b_scale is a power-of-two, otherwise, -ten */V unsigned dsc$v_fl_redim : 1; /* if set, indicates the array can be redimensioned */T unsigned dsc$v_fl_column : 1; /* if set, indicates column-major order (FORTRAN) */X unsigned dsc$v_fl_coeff : 1; /* if set, indicates the multipliers block is present */S unsigned dsc$v_fl_bounds : 1; /* if set, indicates the bounds block is present */' } dsc$b_aflags; /* array flag bits */#pragma __member_alignment6 unsigned char dsc$b_dimct; /* number of dimensi ons */= unsigned long dsc$l_arsize; /* total size of array in bytes,E or if dsc$b_dtype is DSC$K_DTYPE_P, digits (4 bits each) */ /*T * One or two optional blocks of information may follow contiguously at this point;U * the first block contains information about the dimension multipliers (if present,T * dsc$b_aflags.dsc$v_fl_coeff is set), the second block contains information aboutS * the dimension bounds (if present, dsc$b_aflags.dsc$v_fl_bounds is set). If theT * bounds information is present, the multipliers information must also be present. *3 * The multipliers block has the following format:I * char *dsc$a_a0; Address of the element whose subscripts are all zero? * long dsc$l_m [DIMCT]; Addressing coefficients (multipliers) *. * The bounds block has the following format: * struct * { * long dsc$l_l; Lower bound * long dsc$l_u; Upper bound * } dsc$bounds [DIMCT]; *: * (DIMCT represents the value contained in dsc$b_dimct.) */};/* * Procedure Descriptor: */struct dsc$descriptor_p{M unsigned short dsc$w_length; /* length associated with the function value */? unsigned char dsc$b_dtype; /* function value data type code */G unsigned char dsc$b_class; /* descriptor class code = DSC$K_CLASS_P */> int (*dsc$a_pointer)(); /* address of function entry mask */};/* * Decimal String Descriptor: */struct dsc$descriptor_sd{> unsigned short dsc$w_length; /* length of data item in byte s,3 or if dsc$b_dtype is DSC$K_DTYPE_V, bits,E or if dsc$b_dtype is DSC$K_DTYPE_P, digits (4 bits each) */0 unsigned char dsc$b_dtype; /* data type code */H unsigned char dsc$b_class; /* descriptor class code = DSC$K_CLASS_SD */B char *dsc$a_pointer; /* address of first byte of data storage */N char dsc$b_scale; /* signed power-of-two or -ten multiplier, as specified byI dsc$v_fl_binscale, to convert from internal to external form */b unsigned char dsc$b_digits; /* if nonzero, number of decimal digits in internal representation */#pragma __nomember_alignment struct {. unsigned : 3; /* reserved; must be zero */^ unsigned dsc$v_fl_binscale : 1; /* if set, dsc$b_scale is a power-of-two, otherwise, -ten */. unsigned : 4; /* reserved; must be zero */( } dsc$b_sflags; /* scalar flag bits */#pragma __member_alignment- unsigned : 8; /* reserved; must be zero */};/*" * Noncontiguous Array Descriptor: */struct dsc$descriptor_nca {E unsigned short dsc$w_length; /* length of an array element in bytes,3 or if dsc$b_dtype is DSC$K_DTYPE_V, bits,E or if dsc$b_dtype is DSC$K_DTYPE_P, digits (4 bits each) */0 unsigned char dsc$b_dtype; /* data type code */I unsigned char dsc$b_class; /* descriptor class code = DSC$K_CLASS_NCA */I char *dsc$a_pointer; /* address of first actual byte of data storage */N char dsc$b_scale; /* signed power-of-two or -ten multiplier, as specified byI dsc$v_fl_b inscale, to convert from internal to external form */b unsigned char dsc$b_digits; /* if nonzero, number of decimal digits in internal representation */#pragma __nomember_alignment struct {/ unsigned : 3; /* reserved; must be zero */^ unsigned dsc$v_fl_binscale : 1; /* if set, dsc$b_scale is a power-of-two, otherwise, -ten */2 unsigned dsc$v_fl_redim : 1; /* must be zero */0 unsigned : 3; /* reserved; must be zero */' } dsc$b_aflags; /* array flag bits */#pragma __member _alignment6 unsigned char dsc$b_dimct; /* number of dimensions */b unsigned long dsc$l_arsize; /* if elements are actually contiguous, total size of array in bytes,E or if dsc$b_dtype is DSC$K_DTYPE_P, digits (4 bits each) */ /*V * Two blocks of information must follow contiguously at this point; the first blockS * contains information about the difference between the addresses of two adjacentS * elements in each dimension (the stride). The second block contains information * about the dimension bounds. */ * The strides block has the following format:J * char *dsc$a_a0; Address of the element whose subscripts are all zero* * unsigned long dsc$l_s [DIMCT]; Strides *. * The bounds block has the following format: * struct * { * long dsc$l_l; Lower bound * long dsc$l_u; Upper bound * } dsc$bounds [DIMCT]; *: * (DIMCT represents the value contained in dsc$b_dimct.) */};/*Z * The Varying String Descriptor and Varying String Array Descriptor are used with strings * of the following form: * * struct * {@ * unsigned short CURLEN; The current length of BODY in bytesE * char BODY [MAXSTRLEN]; A fixed-length area containing the string * }; *Y * where MAXSTRLEN is the value contained in the dsc$w_maxstrlen field in the descriptor. *//* * Varying String Descriptor: */struct dsc$descriptor_vs{f unsigned short dsc$w_maxstrlen; /* maximum length of the BODY field of the varying string in bytes */A unsigned char dsc$b_dtype; /* data type code = DSC$K_DTYPE_VT */H unsigned char dsc$b_class; /* descriptor class code = DSC$K_CLASS_VS */N char *dsc$a_pointer; /* address of the CURLEN field of the varying string */};/*# * Varying String Array Descriptor: */struct dsc$descriptor_vsa{d unsigned short dsc$w_maxstrlen; /* maximum length of the BODY field of an array element in bytes */A unsigned char dsc$b_dtype; /* data type code = DSC$K_DTYPE_VT */I uns igned char dsc$b_class; /* descriptor class code = DSC$K_CLASS_VSA */I char *dsc$a_pointer; /* address of first actual byte of data storage */N char dsc$b_scale; /* signed power-of-two or -ten multiplier, as specified byI dsc$v_fl_binscale, to convert from internal to external form */b unsigned char dsc$b_digits; /* if nonzero, number of decimal digits in internal representation */#pragma __nomember_alignment struct {/ unsigned : 3; /* reserved; must be zero */^ unsign ed dsc$v_fl_binscale : 1; /* if set, dsc$b_scale is a power-of-two, otherwise, -ten */2 unsigned dsc$v_fl_redim : 1; /* must be zero */0 unsigned : 3; /* reserved; must be zero */' } dsc$b_aflags; /* array flag bits */#pragma __member_alignment6 unsigned char dsc$b_dimct; /* number of dimensions */d unsigned long dsc$l_arsize; /* if elements are actually contiguous, total size of array in bytes */ /*V * Two blocks of information must follow contiguously at this point; the first blockS * contains information about the difference between the addresses of two adjacentS * elements in each dimension (the stride). The second block contains information * about the dimension bounds. */ * The strides block has the following format:J * char *dsc$a_a0; Address of the element whose subscripts are all zero* * unsigned long dsc$l_s [DIMCT]; Strides *. * The bounds block has the following format: * struct * { * long dsc$l_l; Lower bound * long dsc$l_u; Upper bound * } dsc$bounds [DIMCT]; *: * (DIMCT represents the value contained in dsc$b_dimct.) */};/*# * Unaligned Bit String Descriptor: */struct dsc$descriptor_ubs{? unsigned short dsc$w_length; /* length of data item in bits */A unsigned char dsc$b_dtype; /* data type code = DSC$K_DTYPE_VU */I unsigned char dsc$b_class; /* descriptor class code = DSC$K_CLASS_UBS */@ char *dsc$a_base; /* address to which dsc$l_pos is relative */R long dsc$l_pos; /* bit position relative to dsc$a_base of first bit in string */};/*" * Unaligned Bit Array Descriptor: */struct dsc$descriptor_uba{? unsigned short dsc$w_length; /* length of data item in bits */A unsigned char dsc$b_dtype; /* data type code = DSC$K_DTYPE_VU */I unsigned char dsc$b_class; /* descriptor class code = DSC$K_CLASS_UBA */K char *dsc$a_base; /* address to which effective bit offset is relative */1 char dsc$b_scale; /* reserved; must be zero */: unsigned char dsc$b_digits; /* reserved; must be zero */#pragma __nomember_alignment struct {/ unsigned : 3; /* reserved; must be zero */4 unsigned dsc$v_fl_binscale : 1; /* must be zero */2 unsigned dsc$v_fl_redim : 1; /* must be zero */0 unsigned : 3; /* reserved; must be zero */' } dsc$b_aflags; /* array flag bits */#pragma __member_alignment6 unsigned char dsc$b_dimct; /* number of dimensions */> unsigned long dsc$l_arsize; /* total size of array in bits */ /*X * Three blocks of information must follow contiguously at this point; the first blockW * contains information about the difference between the bit addresses of two adjacentS * elements in each dimension (the stride). The second block contains informationR * about the dimension bounds. The third block is the relative bit position with? * respect to dsc$a_base of the first actual bit of the array. */ * The strides block has the following format:M * long dsc$l_v0; Bit offset of the element whose subscripts are all zero,# * with respect to dsc$a_base* * unsigned long dsc$l_s [DIMCT]; Strides *. * The bounds block has the following format: * struct * { * long dsc$l_l; Lower bound * long dsc$l_u; Upper bound * } dsc$bounds [DIMCT]; *, * The last block has the following format: * long dsc$l_pos; *: * (DIMCT represents the value contained in dsc$b_dimct.) */ };/*! * String with Bounds Descriptor: */struct dsc$descriptor_sb{= unsigned short dsc$w_length; /* length of string in bytes */@ unsigned char dsc$b_dtype; /* data type code = DSC$K_DTYPE_T */H unsigned char dsc$b_class; /* descriptor class code = DSC$K_CLASS_SB */B char *dsc$a_pointer; /* address of first byte of data storage */% long dsc$l_sb_l1; /* lower bound */% long dsc$l_sb_u1; /* upper bound */};/*/ * Unaligned Bit String with Bounds Descriptor: */struct dsc$descriptor_ubsb{? unsigned short dsc$w_length; /* length of data item in bits */A unsigned char dsc$b_dtype; /* data type code = DSC$K_DTYPE_VU */J unsigned char dsc$b_class; /* descriptor class code = DSC$K_CLASS_UBSB */@ char *dsc$a_base; /* address to which dsc$l_pos is relative */R long dsc$l_pos; /* bit position relative to dsc$a_base of first bit in string */' long dsc$l_ubsb_l1; /* lower bound */' long dsc$l_ubsb_u1; /* upper bound */};/* * Codes for dsc$b_dtype: *//* * Atomic data types: */*#define DSC$K_DTYPE_Z 0 /* unspecified */I#define DSC$K_DTYPE_BU 2 /* byte (unsigned); 8-bit unsigned quantity */J#define DSC$K_DTYPE_WU 3 /* word (unsigned); 16-bit unsigned quantity */N#define DSC$K_DTYPE_LU 4 /* longword (unsigned); 32-bit unsigned quantity */N#define DSC$K_DTYPE_QU 5 /* quadword (unsigned); 64-bit unsigned quantity */P#define DSC$K_DTYPE_OU 25 /* octaword (unsigned); 128-bit unsigned quantity */Z#define DSC$K_DTYPE_B 6 /* byte integer (signed); 8-bit signed 2's-complement integer */[#define DSC$K_DTYPE_W 7 /* word integer (signed); 16-bit signed 2's-complement integer */_#define DSC$K_DTYPE_L 8 /* longword integer (signed); 32-bit signed 2's-complement integer */_#define DSC$K_DTYPE_Q 9 /* quadword integer (signed); 64-bit signed 2's-complement integer */a#define DSC$K_DTYPE_O 26 /* octaword integer (signed); 128-bit signed 2's-complement integer */S#define DSC$K_DTYPE_F 10 /* F_floating; 32-bit single-precision floating point */S#define DSC$K_DTYPE_D 11 /* D_floating; 64-bit double-precision floating point */S#define DSC$K_DTYPE_G 27 /* G_floating; 64-bit double-precision floating point */W#define DSC$K_DTYPE_H 28 /* H_floating; 128-bit quadruple-precision floating point */3#define DSC$K_DTYPE_FC 12 /* F_floating complex */3#define DSC$K_DTYPE_DC 13 /* D_floating complex */3#define DSC$K_DTYPE_GC 29 /* G_floating complex */3#define DSC$K_DTYPE_HC 30 /* H_floating complex */>#define DSC$K_DTYPE_CIT 31 /* COBOL Intermediate Temporary */ /* * String data types: */g#define DSC$K_DTYPE_T 14 /* character string; a single 8-bit character or a sequence of characters */^#define DSC$K_DTYPE_VT 37 /* varying character string; 16-bit count, followed by a string */9#define DSC$K_DTYPE_NU 15 /* numeric string, unsigned */C#define DSC$K_DTYPE_NL 16 /* numeric string, left separate sign */G#define DSC$K_DTYPE_NLO 17 /* numeric string, left overpunched sign */D#define DSC$K_DTYPE_NR 18 /* numeric string, right separate sig n */H#define DSC$K_DTYPE_NRO 19 /* numeric string, right overpunched sign */;#define DSC$K_DTYPE_NZ 20 /* numeric string, zoned sign */5#define DSC$K_DTYPE_P 21 /* packed decimal string */1#define DSC$K_DTYPE_V 1 /* aligned bit string */5#define DSC$K_DTYPE_VU 34 /* unaligned bit string *//* * IEEE data types: */;#define DSC$K_DTYPE_FS 52 /* IEEE float basic single S */G#define DSC$K_DTYPE_FT 53 /* IEEE float basic double T */C#define DSC$K_DTYPE_FSC 54 /* I EEE float basic single S complex */C#define DSC$K_DTYPE_FTC 55 /* IEEE float basic double T complex *//* * Miscellaneous data types: */9#define DSC$K_DTYPE_ZI 22 /* sequence of instructions */6#define DSC$K_DTYPE_ZEM 23 /* procedure entry mask */,#define DSC$K_DTYPE_DSC 24 /* descriptor */7#define DSC$K_DTYPE_BPV 32 /* bound procedure value */3#define DSC$K_DTYPE_BLV 33 /* bound label value */8#define DSC$K_DTYPE_ADT 35 /* absolute date and time *//* * Reserved data type codes:( * codes 38-191 are reserved to DIGITAL;S * codes 160-191 are reserved to DIGITAL facilities for facility-specific purposes;J * codes 192-255 are reserved for DIGITAL's Computer Special Systems Group) * and for customers for their own use. *//* * Codes for dsc$b_class: */6#define DSC$K_CLASS_S 1 /* fixed-length descriptor */8#define DSC$K_CLASS_D 2 /* dynamic string descriptor */Q/* DSC$K_CLASS_V ** variable buffer descriptor; reserved for use by DIGITAL *//#define DSC$K_CLASS_A 4 /* array descriptor */3#define DSC$K_CLASS_P 5 /* procedure descriptor */E/* DSC$K_CLASS_PI ** procedure incarnation descriptor; obsolete */P/* DSC$K_CLASS_J ** label descriptor; reserved for use by the VMS Debugger */A/* DSC$K_CLASS_JI ** label incarnation descriptor; obsolete */9#define DSC$K_CLASS_SD 9 /* decimal string descriptor */@#define DSC$K_CLASS_NCA 10 /* noncontiguous array descriptor */:#define DSC$K_CLASS_VS 11 /* varying string descriptor */ A#define DSC$K_CLASS_VSA 12 /* varying string array descriptor */A#define DSC$K_CLASS_UBS 13 /* unaligned bit string descriptor */@#define DSC$K_CLASS_UBA 14 /* unaligned bit array descriptor */>#define DSC$K_CLASS_SB 15 /* string with bounds descriptor */N#define DSC$K_CLASS_UBSB 16 /* unaligned bit string with bounds descriptor *//*# * Reserved descriptor class codes:( * codes 15-191 are reserved to DIGITAL;S * codes 160-191 are reserved to DIGITAL facilities for facility-specific purposes;J * codes 192-255 are reserved for DIGITAL's Computer Special Systems Group) * and for customers for their own use. *//*: * A simple macro to construct a 32-bit string descriptor: */z#define $DESCRIPTOR(name,string) struct dsc$descriptor_s name = { sizeof(string)-1, DSC$K_DTYPE_T, DSC$K_CLASS_S, string }/*! * 64-BIT DESCRIPTOR DEFINITIONS  */#ifdef __INITIAL_POINTER_SIZE"#pragma __required_pointer_size 64/*d * 64-bit Descriptor Prototype - each class of descriptor consists of at least the following fields: */struct dsc64$descriptor{Q unsigned short dsc64$w_mbo; /* must-be-one field overlays 16-bit length field */2 unsigned char dsc64$b_dtype; /* data type code */9 unsigned char dsc64$b_class; /* descriptor class code */J long dsc64$l_mbmo; /* must-be-minus-one field overlays 32-bit pointer */7 unsigned __int64 dsc64$q_length; /* quadword length */E char *dsc64$pq_pointer; /* address of first byte of data storage */};/*" * 6 4-bit Fixed-Length Descriptor: */struct dsc64$descriptor_s{Q unsigned short dsc64$w_mbo; /* must-be-one field overlays 16-bit length field */2 unsigned char dsc64$b_dtype; /* data type code */K unsigned char dsc64$b_class; /* descriptor class code = DSC64$K_CLASS_S */J long dsc64$l_mbmo; /* must-be-minus-one field overlays 32-bit pointer */B unsigned __int64 dsc64$q_length; /* length of data item in bytes,7 or if dsc64$b_dtype is DSC64$K_DTYPE_V, bits,I or if dsc6 4$b_dtype is DSC64$K_DTYPE_P, digits (4 bits each) */E char *dsc64$pq_pointer; /* address of first byte of data storage */};/*$ * 64-bit Dynamic String Descriptor: */struct dsc64$descriptor_d{Q unsigned short dsc64$w_mbo; /* must-be-one field overlays 16-bit length field */2 unsigned char dsc64$b_dtype; /* data type code */K unsigned char dsc64$b_class; /* descriptor class code = DSC64$K_CLASS_D */J long dsc64$l_mbmo; /* must-be-minus-one field overlays 32-bit pointer */B  unsigned __int64 dsc64$q_length; /* length of data item in bytes,7 or if dsc64$b_dtype is DSC64$K_DTYPE_V, bits,I or if dsc64$b_dtype is DSC64$K_DTYPE_P, digits (4 bits each) */E char *dsc64$pq_pointer; /* address of first byte of data storage */};/* * 64-bit Array Descriptor: */struct dsc64$descriptor_a{Q unsigned short dsc64$w_mbo; /* must-be-one field overlays 16-bit length field */2 unsigned char dsc64$b_dtype; /* data type code */K unsigned char  dsc64$b_class; /* descriptor class code = DSC64$K_CLASS_A */J long dsc64$l_mbmo; /* must-be-minus-one field overlays 32-bit pointer */I unsigned __int64 dsc64$q_length; /* length of an array element in bytes,7 or if dsc64$b_dtype is DSC64$K_DTYPE_V, bits,I or if dsc64$b_dtype is DSC64$K_DTYPE_P, digits (4 bits each) */E char *dsc64$pq_pointer; /* address of first byte of data storage */P char dsc64$b_scale; /* signed power-of-two or -ten multiplier, as specified byK  dsc64$v_fl_binscale, to convert from internal to external form */d unsigned char dsc64$b_digits; /* if nonzero, number of decimal digits in internal representation */#pragma __nomember_alignment struct {1 unsigned : 3; /* reserved; must be zero */b unsigned dsc64$v_fl_binscale : 1; /* if set, dsc64$b_scale is a power-of-two, otherwise, -ten */X unsigned dsc64$v_fl_redim : 1; /* if set, indicates the array can be redimensioned */X unsigned dsc64$v_fl_column : 1; /* if set, indicates column-major order (FORTRAN) */\ unsigned dsc64$v_fl_coeff : 1; /* if set, indicates the multipliers block is present */W unsigned dsc64$v_fl_bounds : 1; /* if set, indicates the bounds block is present */) } dsc64$b_aflags; /* array flag bits */#pragma __member_alignment8 unsigned char dsc64$b_dimct; /* number of dimensions */F unsigned long dsc64$l_mbz; /* MBZ field to preserve quad alignment */B unsigned __int64 dsc64$q_arsize; /* total size of array in bytes,I  or if dsc64$b_dtype is DSC64$K_DTYPE_P, digits (4 bits each) */ /*T * One or two optional blocks of information may follow contiguously at this point;U * the first block contains information about the dimension multipliers (if present,X * dsc64$b_aflags.dsc64$v_fl_coeff is set), the second block contains information aboutW * the dimension bounds (if present, dsc64$b_aflags.dsc64$v_fl_bounds is set). If theT * bounds information is present, the multipliers information must also be present. *3 * The multipliers block has the following format:S * char *dsc64$pq_a0; (quad) Address of the element whose subscripts are all zeroD * __int64 dsc64$q_m [DIMCT]; Addressing coefficients (multipliers) *. * The bounds block has the following format: * struct * {# * __int64 dsc64$q_l; Lower bound# * __int64 dsc64$q_u; Upper bound * } dsc64$bounds [DIMCT]; *< * (DIMCT represents the value contained in dsc64$b_dimct.) */};/* * 64-bit Proc edure Descriptor: */struct dsc64$descriptor_p{Q unsigned short dsc64$w_mbo; /* must-be-one field overlays 16-bit length field */A unsigned char dsc64$b_dtype; /* function value data type code */K unsigned char dsc64$b_class; /* descriptor class code = DSC64$K_CLASS_P */J long dsc64$l_mbmo; /* must-be-minus-one field overlays 32-bit pointer */Q unsigned __int64 dsc64$q_length; /* length associated with the function value */A int (*dsc64$pq_pointer)(); /* address of function entry mask */};/*$ * 64-bit Decimal String Descriptor: */struct dsc64$descriptor_sd{Q unsigned short dsc64$w_mbo; /* must-be-one field overlays 16-bit length field */2 unsigned char dsc64$b_dtype; /* data type code */L unsigned char dsc64$b_class; /* descriptor class code = DSC64$K_CLASS_SD */J long dsc64$l_mbmo; /* must-be-minus-one field overlays 32-bit pointer */B unsigned __int64 dsc64$q_length; /* length of data item in bytes,7 or if dsc64$b_dtype is DSC64$K_DTYPE_V, bits,I or if dsc64$b_dtype is DSC64$K_DTYPE_P, digits (4 bits each) */E char *dsc64$pq_pointer; /* address of first byte of data storage */P char dsc64$b_scale; /* signed power-of-two or -ten multiplier, as specified byK dsc64$v_fl_binscale, to convert from internal to external form */d unsigned char dsc64$b_digits; /* if nonzero, number of decimal digits in internal representation */#pragma __nomember_alignment struct {. unsigned : 3; /* reserved; must be zero */b unsigned dsc64$v_fl_binscale : 1; /* if set, dsc64$b_scale is a power-of-two, otherwise, -ten */. unsigned : 4; /* reserved; must be zero */* } dsc64$b_sflags; /* scalar flag bits */#pragma __member_alignment- unsigned : 8; /* reserved; must be zero */F unsigned long dsc64$l_mbz; /* MBZ field to preserve quad alignment */};/*) * 64-bit Noncontiguous Array Descriptor: */struct dsc64$descriptor_nca{Q unsigned short dsc64$w_mbo; /* must-be-one field overlays 16-bit length field */2 unsigned char dsc64$b_dtype; /* data type code */M unsigned char dsc64$b_class; /* descriptor class code = DSC64$K_CLASS_NCA */J long dsc64$l_mbmo; /* must-be-minus-one field overlays 32-bit pointer */I unsigned __int64 dsc64$q_length; /* length of an array element in bytes,7 or if dsc64$b_dtype is DSC64$K_DTYPE_V, bits,I or if dsc64$b_dtype is DSC64$K_DTYPE_P, digits (4 bits each) */E char *dsc64$pq_pointer; /* address of first byte of data storage */ P char dsc64$b_scale; /* signed power-of-two or -ten multiplier, as specified byK dsc64$v_fl_binscale, to convert from internal to external form */d unsigned char dsc64$b_digits; /* if nonzero, number of decimal digits in internal representation */#pragma __nomember_alignment struct {/ unsigned : 3; /* reserved; must be zero */b unsigned dsc64$v_fl_binscale : 1; /* if set, dsc64$b_scale is a power-of-two, otherwise, -ten */3 unsigned dsc64$v_fl_redim : 1; /* must be zero  */0 unsigned : 3; /* reserved; must be zero */) } dsc64$b_aflags; /* array flag bits */#pragma __member_alignment8 unsigned char dsc64$b_dimct; /* number of dimensions */F unsigned long dsc64$l_mbz; /* MBZ field to preserve quad alignment */g unsigned __int64 dsc64$q_arsize; /* if elements are actually contiguous, total size of array in bytes,I or if dsc64$b_dtype is DSC64$K_DTYPE_P, digits (4 bits each) */ /*V * Two blocks of information must follow contiguously at th is point; the first blockS * contains information about the difference between the addresses of two adjacentS * elements in each dimension (the stride). The second block contains information * about the dimension bounds. */ * The strides block has the following format:T * char *dsc64$pq_a0; (quad) Address of the element whose subscripts are all zero' * __int64 dsc64$q_s [DIMCT]; Strides *. * The bounds block has the following format: * struct * {$ * __int64 dsc64$q_l; Lower bound$ * __int64 dsc64$q_u; Upper bound * } dsc64$bounds [DIMCT]; *< * (DIMCT represents the value contained in dsc64$b_dimct.) */};/*Z * The Varying String Descriptor and Varying String Array Descriptor are used with strings * of the following form: * * struct * {@ * unsigned short CURLEN; The current length of BODY in bytesE * char BODY [MAXSTRLEN]; A fixed-length area containing the string * }; *[ * where MAXSTRLEN is the value contained in the dsc64$w_maxstrlen field in the descriptor. *//*$ * 64-bit Varying String Descriptor: */struct dsc64$descriptor_vs{Q unsigned short dsc64$w_mbo; /* must-be-one field overlays 16-bit length field */E unsigned char dsc64$b_dtype; /* data type code = DSC64$K_DTYPE_VT */L unsigned char dsc64$b_class; /* descriptor class code = DSC64$K_CLASS_VS */J long dsc64$l_mbmo; /* must-be-minus-one field overlays 32-bit pointer */j unsigned __int64 dsc64$q_maxstrlen; /* maximu m length of the BODY field of the varying string in bytes */Q char *dsc64$pq_pointer; /* address of the CURLEN field of the varying string */};/** * 64-bit Varying String Array Descriptor: */struct dsc64$descriptor_vsa{Q unsigned short dsc64$w_mbo; /* must-be-one field overlays 16-bit length field */E unsigned char dsc64$b_dtype; /* data type code = DSC64$K_DTYPE_VT */M unsigned char dsc64$b_class; /* descriptor class code = DSC64$K_CLASS_VSA */J long dsc64$l_mbmo; /* must-be-minus-one field overlays 32-bit pointer */j unsigned __int64 dsc64$q_maxstrlen; /* maximum length of the BODY field of the varying string in bytes */L char *dsc64$pq_pointer; /* address of first actual byte of data storage */P char dsc64$b_scale; /* signed power-of-two or -ten multiplier, as specified byK dsc64$v_fl_binscale, to convert from internal to external form */d unsigned char dsc64$b_digits; /* if nonzero, number of decimal digits in internal representation */#pragma __no member_alignment struct {/ unsigned : 3; /* reserved; must be zero */b unsigned dsc64$v_fl_binscale : 1; /* if set, dsc64$b_scale is a power-of-two, otherwise, -ten */3 unsigned dsc64$v_fl_redim : 1; /* must be zero */0 unsigned : 3; /* reserved; must be zero */) } dsc64$b_aflags; /* array flag bits */#pragma __member_alignment8 unsigned char dsc64$b_dimct; /* number of dimensions */F unsigned long dsc64$l_mbz; /* MBZ field to preserve quad alignment */i unsigned __int64 dsc64$q_arsize; /* if elements are actually contiguous, total size of array in bytes */ /*V * Two blocks of information must follow contiguously at this point; the first blockS * contains information about the difference between the addresses of two adjacentS * elements in each dimension (the stride). The second block contains information * about the dimension bounds. */ * The strides block has the following format:T * char *dsc64$pq_a0; (quad) Address of the element whose subscripts are all zero' * __int64 dsc64$q_s [DIMCT]; Strides *. * The bounds block has the following format: * struct * {$ * __int64 dsc64$q_l; Lower bound$ * __int64 dsc64$q_u; Upper bound * } dsc64$bounds [DIMCT]; *< * (DIMCT represents the value contained in dsc64$b_dimct.) */};/** * 64-bit Unaligned Bit String Descriptor: */struct dsc64$descriptor_ubs{Q unsigned short dsc64$w_mbo; /* must-be-one field overlays 16-bit length field */E unsig ned char dsc64$b_dtype; /* data type code = DSC64$K_DTYPE_VU */M unsigned char dsc64$b_class; /* descriptor class code = DSC64$K_CLASS_UBS */J long dsc64$l_mbmo; /* must-be-minus-one field overlays 32-bit pointer */D unsigned __int64 dsc64$q_length; /* length of data item in bits */E char *dsc64$pq_base; /* address to which dsc64$l_pos is relative */Y __int64 dsc64$q_pos; /* bit position relative to dsc64$a_base of first bit in string */};/*) * 64-bit Unaligned Bit Array Descript or: */struct dsc64$descriptor_uba{Q unsigned short dsc64$w_mbo; /* must-be-one field overlays 16-bit length field */E unsigned char dsc64$b_dtype; /* data type code = DSC64$K_DTYPE_VU */M unsigned char dsc64$b_class; /* descriptor class code = DSC64$K_CLASS_UBA */J long dsc64$l_mbmo; /* must-be-minus-one field overlays 32-bit pointer */D unsigned __int64 dsc64$q_length; /* length of data item in bits */N char *dsc64$pq_base; /* address to which effective bit offset is relative */ !3 char dsc64$b_scale; /* reserved; must be zero */< unsigned char dsc64$b_digits; /* reserved; must be zero */#pragma __nomember_alignment struct {/ unsigned : 3; /* reserved; must be zero */6 unsigned dsc64$v_fl_binscale : 1; /* must be zero */3 unsigned dsc64$v_fl_redim : 1; /* must be zero */0 unsigned : 3; /* reserved; must be zero */) } dsc64$b_aflags; /* array flag bits */#pragma __member_alignment8 unsigned char dsc64$b_dimct; /* number of dimensions */F uns"igned long dsc64$l_mbz; /* MBZ field to preserve quad alignment */C unsigned __int64 dsc64$q_arsize; /* total size of array in bits */ /*X * Three blocks of information must follow contiguously at this point; the first blockW * contains information about the difference between the bit addresses of two adjacentS * elements in each dimension (the stride). The second block contains informationR * about the dimension bounds. The third block is the relative bit position withA * respect #to dsc64$a_base of the first actual bit of the array. */ * The strides block has the following format:R * __int64 dsc64$q_v0; Bit offset of the element whose subscripts are all zero,% * with respect to dsc64$a_base' * __int64 dsc64$q_s [DIMCT]; Strides *. * The bounds block has the following format: * struct * {$ * __int64 dsc64$q_l; Lower bound$ * __int64 dsc64$q_u; Upper bound * } dsc64$bounds [DIMCT]; *, * The last block has the following forma$t: * __int64 dsc64$q_pos; *< * (DIMCT represents the value contained in dsc64$b_dimct.) */ };/*( * 64-bit String with Bounds Descriptor: */struct dsc64$descriptor_sb{Q unsigned short dsc64$w_mbo; /* must-be-one field overlays 16-bit length field */D unsigned char dsc64$b_dtype; /* data type code = DSC64$K_DTYPE_T */L unsigned char dsc64$b_class; /* descriptor class code = DSC64$K_CLASS_SB */J long dsc64$l_mbmo; /* must-be-minus-one field overlays 32-bit pointer */B u%nsigned __int64 dsc64$q_length; /* length of string in bytes */D char *dsc64$pq_pointer;/* address of first byte of data storage */* __int64 dsc64$q_sb_l1; /* lower bound */* __int64 dsc64$q_sb_u1; /* upper bound */};/*6 * 64-bit Unaligned Bit String with Bounds Descriptor: */struct dsc64$descriptor_ubsb{Q unsigned short dsc64$w_mbo; /* must-be-one field overlays 16-bit length field */E unsigned char dsc64$b_dtype; /* data type code = DSC64$K_DTYPE_VU */N unsigned char dsc &64$b_class; /* descriptor class code = DSC64$K_CLASS_UBSB */J long dsc64$l_mbmo; /* must-be-minus-one field overlays 32-bit pointer */D unsigned __int64 dsc64$q_length; /* length of data item in bits */E char *dsc64$pq_base; /* address to which dsc64$l_pos is relative */Y __int64 dsc64$q_pos; /* bit position relative to dsc64$a_base of first bit in string */+ __int64 dsc64$q_ubsb_l1;/* lower bound */+ __int64 dsc64$q_ubsb_u1;/* upper bound */};/* * Codes for dsc64$b_dtype: ' *//* * Atomic data types: */,#define DSC64$K_DTYPE_Z 0 /* unspecified */K#define DSC64$K_DTYPE_BU 2 /* byte (unsigned); 8-bit unsigned quantity */L#define DSC64$K_DTYPE_WU 3 /* word (unsigned); 16-bit unsigned quantity */P#define DSC64$K_DTYPE_LU 4 /* longword (unsigned); 32-bit unsigned quantity */P#define DSC64$K_DTYPE_QU 5 /* quadword (unsigned); 64-bit unsigned quantity */R#define DSC64$K_DTYPE_OU 25 /* octaword (unsigned); 128-bit unsigned quantity */\#define DSC64$(K_DTYPE_B 6 /* byte integer (signed); 8-bit signed 2's-complement integer */]#define DSC64$K_DTYPE_W 7 /* word integer (signed); 16-bit signed 2's-complement integer */a#define DSC64$K_DTYPE_L 8 /* longword integer (signed); 32-bit signed 2's-complement integer */a#define DSC64$K_DTYPE_Q 9 /* quadword integer (signed); 64-bit signed 2's-complement integer */c#define DSC64$K_DTYPE_O 26 /* octaword integer (signed); 128-bit signed 2's-complement integer */U#define DSC64$K_DTYPE_F 10 )/* F_floating; 32-bit single-precision floating point */U#define DSC64$K_DTYPE_D 11 /* D_floating; 64-bit double-precision floating point */U#define DSC64$K_DTYPE_G 27 /* G_floating; 64-bit double-precision floating point */Y#define DSC64$K_DTYPE_H 28 /* H_floating; 128-bit quadruple-precision floating point */5#define DSC64$K_DTYPE_FC 12 /* F_floating complex */5#define DSC64$K_DTYPE_DC 13 /* D_floating complex */5#define DSC64$K_DTYPE_GC 29 /* G_floating complex */5#define DS *C64$K_DTYPE_HC 30 /* H_floating complex */@#define DSC64$K_DTYPE_CIT 31 /* COBOL Intermediate Temporary *//* * String data types: */i#define DSC64$K_DTYPE_T 14 /* character string; a single 8-bit character or a sequence of characters */`#define DSC64$K_DTYPE_VT 37 /* varying character string; 16-bit count, followed by a string */;#define DSC64$K_DTYPE_NU 15 /* numeric string, unsigned */E#define DSC64$K_DTYPE_NL 16 /* numeric string, left separate sign */I#define DSC64$K_DTYP +E_NLO 17 /* numeric string, left overpunched sign */F#define DSC64$K_DTYPE_NR 18 /* numeric string, right separate sign */J#define DSC64$K_DTYPE_NRO 19 /* numeric string, right overpunched sign */=#define DSC64$K_DTYPE_NZ 20 /* numeric string, zoned sign */7#define DSC64$K_DTYPE_P 21 /* packed decimal string */3#define DSC64$K_DTYPE_V 1 /* aligned bit string */7#define DSC64$K_DTYPE_VU 34 /* unaligned bit string *//* * IEEE data types: */=#define DSC64$K_DTYPE_FS 52 /* IEE ,E float basic single S */G#define DSC64$K_DTYPE_FT 53 /* IEEE float basic double T */E#define DSC64$K_DTYPE_FSC 54 /* IEEE float basic single S complex */E#define DSC64$K_DTYPE_FTC 55 /* IEEE float basic double T complex *//* * Miscellaneous data types: */;#define DSC64$K_DTYPE_ZI 22 /* sequence of instructions */8#define DSC64$K_DTYPE_ZEM 23 /* procedure entry mask */.#define DSC64$K_DTYPE_DSC 24 /* descriptor */9#define DSC64$K_DTYPE_BPV 32 /* bound procedure val-ue */5#define DSC64$K_DTYPE_BLV 33 /* bound label value */:#define DSC64$K_DTYPE_ADT 35 /* absolute date and time *//* * Reserved data type codes:( * codes 38-191 are reserved to DIGITAL;S * codes 160-191 are reserved to DIGITAL facilities for facility-specific purposes;J * codes 192-255 are reserved for DIGITAL's Computer Special Systems Group) * and for customers for their own use. *//* * Codes for dsc64$b_class: */8#define DSC64$K_CLASS_S 1 /* fixed-length descrip .tor */:#define DSC64$K_CLASS_D 2 /* dynamic string descriptor */S/* DSC64$K_CLASS_V ** variable buffer descriptor; reserved for use by DIGITAL */1#define DSC64$K_CLASS_A 4 /* array descriptor */5#define DSC64$K_CLASS_P 5 /* procedure descriptor */F/* DSC64$K_CLASS_PI ** procedure incarnation descriptor; obsolete */R/* DSC64$K_CLASS_J ** label descriptor; reserved for use by the VMS Debugger */B/* DSC64$K_CLASS_JI ** label incarnation descriptor; obsolete */;#define DSC64$K_CLAS/S_SD 9 /* decimal string descriptor */B#define DSC64$K_CLASS_NCA 10 /* noncontiguous array descriptor */<#define DSC64$K_CLASS_VS 11 /* varying string descriptor */C#define DSC64$K_CLASS_VSA 12 /* varying string array descriptor */C#define DSC64$K_CLASS_UBS 13 /* unaligned bit string descriptor */B#define DSC64$K_CLASS_UBA 14 /* unaligned bit array descriptor */@#define DSC64$K_CLASS_SB 15 /* string with bounds descriptor */P#define DSC64$K_CLASS_UBSB 16 /* unaligned bit string with 0bounds descriptor *//*# * Reserved descriptor class codes:( * codes 15-191 are reserved to DIGITAL;S * codes 160-191 are reserved to DIGITAL facilities for facility-specific purposes;J * codes 192-255 are reserved for DIGITAL's Computer Special Systems Group) * and for customers for their own use. *//*: * A simple macro to construct a 64-bit string descriptor: */#define $DESCRIPTOR64(name,string) struct dsc64$descriptor_s name = { 1, DSC64$K_DTYPE_T, DSC64$K_CLASS_S, -1, siz1eof(string)-1, string }/*3 * A macro to distinguish a 64-bit descriptor: */#define $is_desc64(desc) ((((struct dsc64$descriptor *)desc)->dsc64$l_mbmo == -1) && (((struct dsc64$descriptor *)desc)->dsc64$w_mbo == 1))'#endif /* __INITIAL_POINTER_SIZE */#ifdef __cplusplus }#endif$#pragma __member_alignment __restore#ifdef __INITIAL_POINTER_SIZE+# pragma __required_pointer_size __restore#endifC#pragma __standard /* This file uses non-ANSI-Standard feat2ures */#endif /* __DESCRIP_LOADED */wwBHE\#ifndef __DIRENT_LOADED#define __DIRENT_LOADEDM/******************************************************************************1** - Directory manipulation functions**M*******************************************************************************1** Header introduced by the ISO POSIX-1 Standard**K** Definitions in this header file may not be available on all versions ofK** OpenVMS. See the DEC C Ru 3ntime Library reference manual for specifics.**M*******************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical 4Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N*******************************************************************************/#pragma __nostandard#include #ifdef __cplusplus extern "C" {#endif/*K** 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# pragma5 __pointer_size 32#endif/*1** The type ino_t is an _XOPEN_SOURCE extension.*/5#if defined _XOPEN_SOURCE || !defined _POSIX_C_SOURCE# ifndef __INO_T # define __INO_T typedef __ino_t ino_t; # endif#endif/*M** The definition of the dirent structure has extensions when being compiled** using _XOPEN_SOURCE.*/!#pragma __member_alignment __save#pragma __member_alignment struct dirent {- char d_name[256]; /* name of entry */8# if defined _6XOPEN_SOURCE || !defined _POSIX_C_SOURCEB __ino_t d_ino[3]; /* file serial number (vms-style inode) */ # endif };$#pragma __member_alignment __restore/*G** Data structure returned by opendir() function. A pointer to one ofI** these is returned by opendir() and is used by the the other routines.F** The contents of this structure do not have to be visible to users.*/typedef struct _dirdesc DIR;/*F** Define a private typedef used to indicate a short pointer to7 a DIR3** structure which is always returned by the CRTL.*/typedef DIR * __DIR_ptr32;.typedef struct dirent * __struct_dirent_ptr32;/*I** The only pointer permitted to be a 64 bit pointer is the name of the G** directory being opened. All structure pointers are pointers to DECI** C RTL allocated memory. We will define a 64 bit character pointer to'** be used in the function prototypes.*/#if __INITIAL_POINTER_SIZE# pragma __pointer_size 64#endif/*=** If on 8OpenVMS V7.0 or higher, provide function prototypes=** (dirent functions have been added in version V7.0 of VMS)*/#if __CRTL_VER >= 70000000*__DIR_ptr32 opendir (const char *dirname);+__struct_dirent_ptr32 readdir (DIR * dirp);void rewinddir (DIR *dirp);int closedir (DIR *dirp);/*** X/Open extensions*/5#if defined _XOPEN_SOURCE || !defined _POSIX_C_SOURCE+ void seekdir (DIR *dirp, long int loc);! long int telldir (DIR *dirp);#endif&#endif /* if __C9RTL_VER >= 70000000 */#if __CRTL_VER > 70300000## if __INITIAL_POINTER_SIZE == 32 # pragma __pointer_size 32 # endif7 int readdir_r(DIR * __dirp, struct dirent *__entry,, struct dirent **__result);# if __INITIAL_POINTER_SIZE # pragma __pointer_size 32> int _readdir_r32(DIR * __dirp, struct dirent *__entry,3 struct dirent **__result); # pragma __pointer_size 64> int _readdir_r64(DIR * __dirp, s:truct dirent *__entry,3 struct dirent **__result); # endif%#endif /* if __CRTL_VER > 70300000 *//*%** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif#pragma __standard#endif /* __DIRENT_LOADED */wwӳEHE\#ifndef __DLFCN_LOADED#define __DLFCN_LOADEDM/******************************************************************************** - Dynamic linking**M*******************************************************************************1** Header introduced by the X/Open Specification**K** Definitions in this header file may not be available on all versions ofK** OpenVMS. See the DEC C Runtime Library reference manual for specifics.**M*******************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registe <red in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N*******************************************************************************/#pragma __nostandard=#include #ifdef __cplusplus extern "C" {#endif/*K** 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/*5** Define the mode parameters to the dlopen function*/#define RTLD_LAZY 1#define RTLD_NOW 2/*** Function prototypes*/.void *dlopen (const char *pathname, int mode);->void *dlsym (void *handle, const char *name);int dlclose (void *handle);char *dlerror (void);/*%** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif#pragma __standard#endif /* __DLFCN_LOADED */ww HHE\#ifndef __ERRNO_LOADED#define __ERRNO_LOADEDM/******************************************************************************!** - Error definition ?s**M*****************************************************************************,** Header introduced by the ANSI C StandardM*******************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** @Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N*******************************************************************************/#pragma __nostandard#include #ifdef __cplusplus extern "C" {#endif#if __INITIAL_POINTER_SIZE # pragma __pointer_size __save# pragma __pointer_size 32#endif/*K** Create 'publAic' typedefs that are either insensitive to pointer size or>** are sensitive to pointer size and must use short pointers.*/J#define EPERM 1 /* Not owner */J#define ENOENT 2 /* No such file or directory */J#define ESRCH 3 /* No such process */J#define EINTR 4 /* Interrupted system call */J#define EIO 5 /* I/O error B*/J#define ENXIO 6 /* No such device or address */J#define E2BIG 7 /* Arg list too long */J#define ENOEXEC 8 /* Exec format error */J#define EBADF 9 /* Bad file number */J#define ECHILD 10 /* No children */J#define EAGAIN 11 /* No more processes */J#define ENOMEM 12 /* Not enough cCore */J#define EACCES 13 /* Permission denied */J#define EFAULT 14 /* Bad address */J#define ENOTBLK 15 /* Block device required */J#define EBUSY 16 /* Mount device busy */J#define EEXIST 17 /* File exists */J#define EXDEV 18 /* Cross-device link */J#define ENODEV D 19 /* No such device */J#define ENOTDIR 20 /* Not a directory */J#define EISDIR 21 /* Is a directory */J#define EINVAL 22 /* Invalid argument */J#define ENFILE 23 /* File table overflow */J#define EMFILE 24 /* Too many open files */J#define ENOTTY 25 /* Not a typewriter E */J#define ETXTBSY 26 /* Text file busy */J#define EFBIG 27 /* File too large */J#define ENOSPC 28 /* No space left on device */J#define ESPIPE 29 /* Illegal seek */J#define EROFS 30 /* Read-only file system */J#define EMLINK 31 /* Too many links */J#define EPIPE 32 /* Broken pipFe */J#define EDOM 33 /* Math argument */J#define ERANGE 34 /* Result too large */J#define EWOULDBLOCK 35 /* I/O stream empty */J#define EINPROGRESS 36 /* Operation now in progress */J#define EALREADY 37 /* Operation already in progress */J#define ENOTSOCK 38 /* Socket operation on non-socket */J#define EDESTADDRRGEQ 39 /* Destination address required */J#define EMSGSIZE 40 /* Message too long */J#define EPROTOTYPE 41 /* Protocol wrong type for socket */J#define ENOPROTOOPT 42 /* Protocol not available */J#define EPROTONOSUPPORT 43 /* Protocol not supported */J#define ESOCKTNOSUPPORT 44 /* Socket type not supported */J#define EOPNOTSUPP 45 /* Operation not supported on socket H */K#define EPFNOSUPPORT 46 /* Protocol family not supported */ J#define EAFNOSUPPORT 47 /* Address family not supported */J#define EADDRINUSE 48 /* Address already in use */J#define EADDRNOTAVAIL 49 /* Can't assign requested address */J#define ENETDOWN 50 /* Network is down */J#define ENETUNREACH 51 /* Network is unreachable */J#define ENETRESET 52 /* NetworIk dropped connection on reset */J#define ECONNABORTED 53 /* Software caused connection abort */J#define ECONNRESET 54 /* Connection reset by peer */J#define ENOBUFS 55 /* No buffer space available */J#define EISCONN 56 /* Socket is already connected */J#define ENOTCONN 57 /* Socket is not connected */J#define ESHUTDOWN 58 /* Can't send after socket shutdown */K#define ETOOMAJNYREFS 59 /* Too many references: can't splice */ J#define ETIMEDOUT 60 /* Connection timed out */J#define ECONNREFUSED 61 /* Connection refused */J#define ELOOP 62 /* Too many levels of symbolic links */J#define ENAMETOOLONG 63 /* File name too long */J#define EHOSTDOWN 64 /* Host is down */J#define EHOSTUNREACH 65 /* No route to host K */J#define ENOTEMPTY 66 /* Directory not empty */J#define EPROCLIM 67 /* Too many processes */J#define EUSERS 68 /* Too many users */J#define EDQUOT 69 /* Disk quota exceeded */J#define ENOMSG 70 /* No message of desired type */J#define EIDRM 71 /* Identifier removed */J#define EALIGN 72 /* AlLignment error */J#define ESTALE 73 /* Stale NFS file handle */J#define EREMOTE 74 /* Too many levels of remote in path */J#define ENOLCK 75 /* No locks available */J#define ENOSYS 76 /* Function not implemented */J#define EFTYPE 77 /* Inappropriate operation for file type */J#define ECANCELED 78 /* Operation canceled */J#define EFMAIL 79 /* Cannot start operation */J#define EINPROG 80 /* Asynchronous operation in progress */J#define ENOTSUP 81 /* Function not implemented */J#define EDEADLK 82 /* Resource deadlock avoided */J#define ENWAIT 83 /* No waiting processes */J#define EILSEQ 84 /* Illegal byte sequence */J#define EBADCAT 85 /* Bad message catalogue formNat [1] */J#define EBADMSG 86 /* Corrupted message detected */#ifndef __HIDE_FORBIDDEN_NAMESJ#define __ERRNO_MAX 86 /* MUST equal largest errno value */J#define EVMSERR 65535 /* error for non-translatable VMS errors */#endif/*** Function prototypes*/Nint *CMA$TIS_ERRNO_GET_ADDR (void); /* UNIX style error code */Nint *CMA$TIS_VMSERRNO_GET_ADDR (void); /* VMS error (errno == EVMSERR) */.void CMA$TIS_ERRNO_SETO_VALUE (int __value);.void CMA$TIS_VMSERRNO_SET_VALUE (int __value);/*H** In strict ANSI compilation mode, the dollar sign ('$') is not allowedJ** in identifier names. This jacket routine provides an ANSI-compliant way** to access errno.*/8#if defined(__DECCXX) && (__DECCXX_VER >= 60000000) && \E (defined(__STD_STRICT_ANSI) || defined(__STD_STRICT_ANSI_ERRORS))8inline static int *__CXX_CMA_TIS_ERRNO_GET_ADDR(void) { & return CMA$TIS_ERRNO_GET_ADDR(); }#endif/*H** P The CMA function prototypes are defined as uppercase for applicationH** programs which compile using /NAMES=AS_IS. The CMA shareable images$** only offer the uppercase symbol.**F** Define lowercase names using a macro such that applications which C** already compile with either /STANDARD=ANSI or /STANDARD=RELAXED%** continue to successfully compile.*/9#define cma$tis_errno_get_addr CMA$TIS_ERRNO_GET_ADDR<#define cma$tis_vmserrno_get_addr CMA$TIS_VMSERRNO_GET_ADDR:#define cmQa$tis_errno_set_value CMA$TIS_ERRNO_SET_VALUE=#define cma$tis_vmserrno_set_value CMA$TIS_VMSERRNO_SET_VALUE/*4** Define macros for accessing errno and vaxc$errno*/8#if defined(__DECCXX) && (__DECCXX_VER >= 60000000) && \E (defined(__STD_STRICT_ANSI) || defined(__STD_STRICT_ANSI_ERRORS))8# define errno (*__CXX_CMA_TIS_ERRNO_GET_ADDR())#else2# define errno (*CMA$TIS_ERRNO_GET_ADDR())#endif1#define vaxc$errno (*CMA$TIS_VMSERRNO_GET_ADDR())/*R%** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif#pragma __standard#endif /* __ERRNO_LOADED */wwTMHE\#ifndef __ERRNODEF_LOADED#define __ERRNODEF_LOADED 1M/******************************************************************************J** - VMS Status Code Equivalents for UNIX-style Error Codes **M************************************************** S***************************** Header is nonstandardM*******************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** TechTnical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N*******************************************************************************/#pragma __nostandard#include #ifdef __cplusplus extern "C" {#endif/*** Extern model*/#pragma __extern_model __save$#pragma __extern_model __globalvalue/*!** Define the external constants*/Iextern C$_EPERM; /* not owner U */Iextern C$_ENOENT; /* no such file or directory */Iextern C$_ESRCH; /* no such process */Iextern C$_EINTR; /* interrupted system call */Iextern C$_EIO; /* i/o error */Iextern C$_ENXIO; /* no such device or address */Iextern C$_E2BIG; /* arg list too long */Iextern C$_ENOEXEC; V/* exec format error */Iextern C$_EBADF; /* bad file number */Iextern C$_ECHILD; /* no children */Iextern C$_EAGAIN; /* no more processes */Iextern C$_ENOMEM; /* not enough core */Iextern C$_EACCES; /* permission denied */Iextern C$_EFAULT; /* bad address */IexWtern C$_ENOTBLK; /* block device required */Iextern C$_EBUSY; /* mount device busy */Iextern C$_EEXIST; /* file exists */Iextern C$_EXDEV; /* cross-device link */Iextern C$_ENODEV; /* no such device */Iextern C$_ENOTDIR; /* not a directory */Iextern C$_EISDIR; /* is a directory X */Iextern C$_EINVAL; /* invalid argument */Iextern C$_ENFILE; /* file table overflow */Iextern C$_EMFILE; /* too many open files */Iextern C$_ENOTTY; /* not a typewriter */Iextern C$_ETXTBSY; /* text file busy */Iextern C$_EFBIG; /* file too large */Iextern C$_ENOSPC; Y /* no space left on device */Iextern C$_ESPIPE; /* illegal seek */Iextern C$_EROFS; /* read-only file system */Iextern C$_EMLINK; /* too many links */Iextern C$_EPIPE; /* broken pipe */Iextern C$_EDOM; /* math argument */Iextern C$_ERANGE; /* result too large */IZextern C$_EWOULDBLOCK; /* I/O operation would block channel */Iextern C$_EINPROGRESS; /* Operation now in progress */Iextern C$_EALREADY; /* Operation already in progress */Iextern C$_ENOTSOCK; /* Socket operation on non-socket */Iextern C$_EDESTADDRREQ; /* Destination address required */Iextern C$_EMSGSIZE; /* Message too long */Iextern C$_EPROTOTYPE; /* Protocol wrong type[ for socket */Iextern C$_ENOPROTOOPT; /* Protocol not available */Iextern C$_EPROTONOSUPPORT; /* Protocol not supported */Iextern C$_ESOCKTNOSUPPORT; /* Socket type not supported */Iextern C$_EOPNOTSUPP; /* Operation not supported on socket */Jextern C$_EPFNOSUPPORT; /* Protocol family not supported */ Iextern C$_EAFNOSUPPORT; /* Address family not supported */Iextern C$_EADDRINUSE; \ /* Address already in use */Iextern C$_EADDRNOTAVAIL; /* Can't assign requested address */Iextern C$_ENETDOWN; /* Network is down */Iextern C$_ENETUNREACH; /* Network is unreachable */Iextern C$_ENETRESET; /* Network dropped connection on reset */Iextern C$_ECONNABORTED; /* Software caused connection abort */Iextern C$_ECONNRESET; /* Connection reset by peer */]Iextern C$_ENOBUFS; /* No buffer space available */Iextern C$_EISCONN; /* Socket is already connected */Iextern C$_ENOTCONN; /* Socket is not connected */Iextern C$_ESHUTDOWN; /* Can't send after socket shutdown */Jextern C$_ETOOMANYREFS; /* Too many references: can't splice */ Iextern C$_ETIMEDOUT; /* Connection timed out */Iextern C$_ECONNREFUSED; /* Connection refuse^d */Iextern C$_ELOOP; /* Too many levels of symbolic links */Iextern C$_ENAMETOOLONG; /* File name too long */Iextern C$_EHOSTDOWN; /* Host is down */Iextern C$_EHOSTUNREACH; /* No route to host */Iextern C$_ENOTEMPTY; /* Directory not empty */Iextern C$_EPROCLIM; /* Too many processes */Iextern C$_EUSERS; _ /* Too many users */Iextern C$_EDQUOT; /* Disk quota exceeded */Iextern C$_ENOMSG; /* No message of desired type */Iextern C$_EIDRM; /* Identifier removed */Iextern C$_EALIGN; /* Alignment error */Iextern C$_ESTALE; /* Stale NFS file handle */Iextern C$_EREMOTE; /* Too many levels of remote in path *`/Iextern C$_ENOLCK; /* No locks available */Iextern C$_ENOSYS; /* Function not implemented */Iextern C$_EFTYPE; /* Inappropriate operation for file type */Iextern C$_ECANCELED; /* Operation canceled */Iextern C$_EFAIL; /* Cannot start operation */Iextern C$_EINPROG; /* Asynchronous operation in progress */Iextern C$_ENOTSUP; /* Function not im aplemented */Iextern C$_EDEADLK; /* Resource deadlock avoided */Iextern C$_ENWAIT; /* No waiting processes */Iextern C$_EILSEQ; /* Illegal byte sequence */Iextern C$_EBADCAT; /* Bad message catalogue format [1] */Iextern C$_EBADMSG; /* Corrupted message detected *//*** VMS-specific error codes*/Iextern C$_ERROR; /* C error condition b */Iextern C$_INV_FRAME; /* invalid frame while in fork state */Iextern C$_KILL; /* process killed, unimpl signal specified */Iextern C$_LONGJMP; /* longjump requested */Iextern C$_LONGJMP_FAILED; /* attempted longjmp failed *//*** New in OpenVMS V6.2*/#if __CRTL_VER >= 60200000Iextern C$_SIGUSR1; /* user signal 1 */Iextern C$_SIGUSR2; /* user signalc 2 */Iextern C$_LOCALEIDMISMAT; /* locale version doesn't match DEC C RTL */Iextern C$_LOCALEBAD; /* not a locale file */Iextern C$_LOCALEINCOMPLET; /* not all requested categories present */#endif/*** New in OpenVMS V7.0*/#if __CRTL_VER >= 70000000Iextern C$_SIG0; /* reserved to Digital */Iextern C$_SIGN; /* reserved to Digital */Iextern C$_SIGPIPE;d /* reserved to Digital */Iextern C$_SIGCHLD; /* reserved to Digital */Jextern C$_HOST_NOT_FOUND; /* Unknown host */ Iextern C$_TRY_AGAIN; /* Host name lookup failure */Iextern C$_NO_RECOVERY; /* Unknown server error */Iextern C$_NO_DATA; /* No data record of requested type */Iextern C$_NO_ADDRESS; /* No address associated with name e */Iextern C$_NO_TCP; /* Cannot find TCP routine or UCX$IPC_SHR */Iextern C$_NOSYSSHR; /* Link /NOSYSSHR disables image activate */Iextern C$_EXIT1; /* reserved to Digital */Iextern C$_EXIT255; /* reserved to Digital */Iextern C$_ILLSYSTDF; /* Illegal OpenVMS system TDF */Iextern C$_QSORT2BIG; /* Array passed to qsort function ... */#endif/*** New in OpenVMS V7.3*/f#if __CRTL_VER >= 70300000Iextern C$_SIGWINCH; /* reserved to Digital */#endif#ifdef __cplusplus }#endif #pragma __extern_model __restore#pragma __standard#endif /* __ERRNODEF_LOADED */wwOoSHE\#ifndef __FCNTL_LOADED#define __FCNTL_LOADEDM/******************************************************************************(** - File control information**M************************************************************** g***************1** Header introduced by the ISO POSIX-1 StandardM*******************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, ahndK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N*******************************************************************************/#pragma __nostandard #include #ifdef __cplusplus extern "C" {#endif#if __INITIAL_POINTER_SIZE # pragma __pointer_size __save# pragma __pointer_size 64#endif/* ** `cmd' values for fcntl()*/ #define F_DUPFD 0#define F_GETFDi 1#define F_SETFD 2#define F_GETFL 3#define F_SETFL 4#define F_GETLK 7#define F_SETLK 8#define F_SETLKW 9/* *** File descriptor flags used for fcntl()*/ #define FD_CLOEXEC 1/* 3** `l_type' values for record locking with fcntl()*/ #define F_RDLCK 1#define F_WRLCK 2#define F_UNLCK 3/* D** ISO POSIX-1 defines some values for the flags argument to open()A** and specifies that they reside here. For cojmpatibility with K** DEC C V5.0 and prior, the an old set of flags is duplicated in */ /* * ** This group is shared with  */ #ifndef O_RDONLY # define O_RDONLY 000# define O_WRONLY 001# define O_RDWR 002# define O_APPEND 010# define O_CREAT 01000# define O_TRUNC 02000# define O_EXCL 04000#endif /* # ** This group is not in file.h */ #define O_ACCMODE 0033#define O_NOCTTY 010000 /* notk implemented */#if __CRTL_VER >= 70000000# define O_NONBLOCK 0100000#endif/* K** X/Open specifies that this header defines mode_t, pid_t, off_t. DefineH** them for X/open mode, or for a default compilation, unless they wereC** previously defined or the user requested DECC V4 compatibility.*/5#if defined _XOPEN_SOURCE || !defined _POSIX_C_SOURCE5# if !defined __MODE_T && !defined _DECC_V4_SOURCE# define __MODE_T typedef __mode_t mode_t; # endifl4# if !defined __OFF_T && !defined _DECC_V4_SOURCE# define __OFF_T typedef __off_t off_t; # endif4# if !defined __PID_T && !defined _DECC_V4_SOURCE# define __PID_T typedef __pid_t pid_t; # endif /* ** Define seek modes. */# define SEEK_SET 0# define SEEK_CUR 1# define SEEK_END 2 /* > ** Constants for file status flags for open() and fcntl() */ 7# define O_SYNC 00040000 /* not impleme"mnted */#endif/* ** DEC C Extensions*/ #ifndef _POSIX_C_SOURCE /* < ** O_NDELAY is shared with . O_NONBLOCK is the+ ** standard flag for similar behavior. */ # ifndef O_NDELAY# define O_NDELAY 004# define O_NOWAIT 004 # endif#endif/*&** structure used in calls to fcntl()*/struct flock { short l_type; short l_whence; __off_t l_start; __off_t l_len; __pid_t l_pid;};/*#**n ISO POSIX-1 function prototypes*/'int fcntl (int __fd, int __cmd, ...); /* M ** The function open in DEC C V4.0 had a required mode_t parameter if inM ** strict ANSI mode. This is not standard conforming, so it it here for ** compatibility only. */ =#if defined _DECC_V4_SOURCE && defined __HIDE_FORBIDDEN_NAMESJ int open (const char *__file_spec, int __flags, __mode_t __mode, ...);#else9 int open (const char *__file_spec, int __flags, ...);#endoif/* L** DEC C extends creat with extra parameters when not in strict POSIX mode.*/#ifndef _POSIX_C_SOURCE> int creat (const char *__file_spec, __mode_t __mode, ...);#else9 int creat (const char *__file_spec, __mode_t __mode);#endif/*%** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif#pragma __standard#endif /* __FCNTL_LOADED */ww|VHE\#ifnde pf __FILE_LOADED#define __FILE_LOADED 1M/******************************************************************************=** - Manifest constants used by BSD open() function**M******************************************************************************* Header is nonstandardM*******************************************************************************M** Copyright Digital Equipment Corporation 1993, 1997. All rights reserved.**B** Restricted Rights: Use, duplic qation, or disclosure by the U.S.F** Government is subject to restrictions as set forth in subparagraphF** (c) (1) (ii) of DFARS 252.227-7013, or in FAR 52.227-19, or in FAR&** 52.227-14 Alt. III, as applicable.**A** This software is proprietary to and embodies the confidentialD** technology of Digital Equipment Corporation. Possession, use, orG** copying of this software and media is authorized only pursuant to aD** valid written license from Digital or an authorized sublicensor.**rN*******************************************************************************/#pragma __nostandard/* M** This group of constants is shared with , protected with O_RDONLY*/ #ifndef O_RDONLY # define O_RDONLY 000# define O_WRONLY 001# define O_RDWR 002# define O_APPEND 010# define O_CREAT 01000# define O_TRUNC 02000# define O_EXCL 04000#endif/* D** This group is shared with too, protected with O_NDELAY*/ s#ifndef O_NDELAY# define O_NDELAY 004# define O_NOWAIT 004#endif#pragma __standard#endif /* __FILE_LOADED */wwYHE\#ifndef __FLOAT_LOADED#define __FLOAT_LOADED 1M/******************************************************************************1** - Characteristics of floating types**M*****************************************************************************,** Header introduced by the ANSI C StandardM********************************** t*********************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's staundard commercial license.**N*******************************************************************************/#pragma __nostandard#include #ifdef __cplusplus extern "C" {#endif/*E** The following literals and routines are available on OpenVMS for 3** Alpha, but only after OpenVMS V7.1 or with C++.*/.#if defined __ALPHA && !defined _ANSI_C_SOURCE6# if (defined(__DECCXX) || (__CRTL_VER >= 70100000)) /*= ** Values for the IEEE Rounding Modves (IEEE ANSI Values) **( ** RZ = Round toward zero (chopped)3 ** RN = Round toward nearest (default, normal)' ** RP = Round toward plus infinity( ** RM = Round toward minus infinity */# define FP_RND_RZ 0# define FP_RND_RN 1# define FP_RND_RP 2# define FP_RND_RM 3 /* ** IEEE Constants */# ifdef _IEEE_FP## pragma __extern_model __save,# pragma __extern_model __strict_refdef' extern double decc$wgt_dinfinity;# extern double decc$gt_dqnan;# extern double decc$gt_dsnan;& extern float decc$gs_sinfinity;" extern float decc$gs_sqnan;" extern float decc$gs_ssnan;# if __X_FLOAT%# if (__CRTL_VER >= 60200000): extern long double decc$gx_long_dbl_infinity;# endif3 extern long double decc$gx_long_dbl_qnan;3 extern long double decc$gx_long_dbl_snan; # endif&# pragma __extern_model __restore,x# define DBL_INFINITY decc$gt_dinfinity$# define DBL_QNAN decc$gt_dqnan$# define DBL_SNAN decc$gt_dsnan,# define FLT_INFINITY decc$gs_sinfinity$# define FLT_QNAN decc$gs_sqnan$# define FLT_SNAN decc$gs_ssnan# if __X_FLOAT%# if (__CRTL_VER >= 60200000):# define LDBL_INFINITY decc$gx_long_dbl_infinity# else-# define LDBL_INFINITY DBL_INFINITY# endif1# define LDBL_QNAN decc$gx_long_dbl_qnan1# y define LDBL_SNAN decc$gx_long_dbl_snan # else,# define LDBL_INFINITY DBL_INFINITY$# define LDBL_QNAN DBL_QNAN$# define LDBL_SNAN DBL_SNAN # endif # endif /*! ** Macros to get decc$ names  */# if (__CRTL_VER < 70100000)2# define write_rnd(__p1) decc$write_rnd(__p1)$# define read_rnd decc$read_rnd # endif /*? ** Functions to read and write floating point rounding mode *// unsigned int write_rndz(unsigned int __rnd); unsigned int read_rnd(void); # endif#endif/*.** Rounding mode for floating point addition:*/#ifdef __BIASED_FLT_ROUNDS[# define FLT_ROUNDS (__BIASED_FLT_ROUNDS-1) /* use compiler generated value, if present */#else# define FLT_ROUNDS 1 #endif/*%** Radix of exponent representation:*/#define FLT_RADIX 2/*H** Number of FLT_RADIX digits in the mantissa including the hidden bit:*/#define __F_FLT_MANT_DIG 24#define {__G_DBL_MANT_DIG 53#ifdef __ALPHA#define __S_FLT_MANT_DIG 24#define __T_FLT_MANT_DIG 53#define __X_FLT_MANT_DIG 113#endif/**** Number of decimal digits of precision:*/#define __F_FLT_DIG 6#define __G_FLT_DIG 15#ifdef __ALPHA#define __S_FLT_DIG 6#define __T_FLT_DIG 15#define __X_FLT_DIG 33#endif/*E** Minimum negative integer such that FLT_RADIX raised to that power2** minus 1 is a normalized floating-poi|nt number:*/"#define __F_FLT_MIN_EXP (-127)##define __G_FLT_MIN_EXP (-1023)#ifdef __ALPHA"#define __S_FLT_MIN_EXP (-125)##define __T_FLT_MIN_EXP (-1021)$#define __X_FLT_MIN_EXP (-16381)#endif/*H** Minimum negative integer such that 10 raised to that power is in the/** range of normalized floating-point numbers:*/!#define __F_FLT_MIN_10_EXP (-38)"#define __G_FLT_MIN_10_EXP (-308)#ifdef __ALPHA!#define __S_FLT_MIN_10_EXP (-37)"#define __T_FLT_MIN_}10_EXP (-307)##define __X_FLT_MIN_10_EXP (-4931)#endif/*I** Maximum integer such that FLT_RADIX raised to that power minus 1 is a/** representable finite floating point number:*/#define __F_FLT_MAX_EXP 127 #define __G_FLT_MAX_EXP 1023#ifdef __ALPHA#define __S_FLT_MAX_EXP 128 #define __T_FLT_MAX_EXP 1024!#define __X_FLT_MAX_EXP 16384#endif/*H** Maximum integer such that 10 raised to that power is in the range of0** representable finite flo~ating-point numbers:*/#define __F_FLT_MAX_10_EXP 38#define __G_FLT_MAX_10_EXP 307#ifdef __ALPHA#define __S_FLT_MAX_10_EXP 38#define __T_FLT_MAX_10_EXP 308 #define __X_FLT_MAX_10_EXP 4932#endif/*7** Maximum representable finite floating-point number:*/*#define __F_FLT_MAX 1.7014117e+38f4#define __G_FLT_MAX 8.98846567431157854e+307#ifdef __ALPHA+#define __S_FLT_MAX 3.40282347e+38f4#define __T_FLT_MAX 1.79769313486231570e+308N#define __X_FLT_MAX 1.189731495357231765085759326628007016196477e4932l#endif/*H** The difference between 1.0 and the least value greater than 1.0 that5** is representable in the given floating-point type"** (i.e. 1.0 + epsilon != 1.0):*/6#define __F_FLT_EPSILON ((float)(1.0 / (1 << 23)))9#define __G_FLT_EPSILON (1.0 / (1 << 30) / (1 << 22))#ifdef __ALPHA+#define __S_FLT_EPSILON 1.19209290e-07f2#define __T_FLT_EPSILON 2.2204460492503131e-16K#define __X_FLT_EPSILON 1.9259299443872358530559779425849273185381e-34l#endif/*6** Minimum normalized positive floating-point number:*/=#define __F_FLT_MIN ((float) 2.93873587705571877e-39)4#define __G_FLT_MIN 5.56268464626800346e-309#ifdef __ALPHA+#define __S_FLT_MIN 1.17549435e-38f3#define __T_FLT_MIN 2.2250738585072014e-308]#define __X_FLT_MIN ((long double) 3.3621031431120935062626778173217526025981e-4932l)#endif/*J** Define the FLT values to be either the __S or __F values based on IEEE*/#if __IEEE_FLOAT,# define FLT_MANT_DIG __S_FLT_MANT_DIG'# define FLT_DIG __S_FLT_DIG+# define FLT_MIN_EXP __S_FLT_MIN_EXP.# define FLT_MIN_10_EXP __S_FLT_MIN_10_EXP+# define FLT_MAX_EXP __S_FLT_MAX_EXP.# define FLT_MAX_10_EXP __S_FLT_MAX_10_EXP'# define FLT_MAX __S_FLT_MAX+# define FLT_EPSILON __S_FLT_EPSILON'# define FLT_MIN __S_FLT_MIN#else,# define FLT_MANT_DIG __F_FLT_MANT_DIG'# define FLT_DIG __F_FLT_DIG+# define FLT_MIN_EXP __F_FLT_MIN_EXP.# define FLT_MIN_10_EXP __F_FLT_MIN_10_EXP+# define FLT_MAX_EXP __F_FLT_MAX_EXP.# define FLT_MAX_10_EXP __F_FLT_MAX_10_EXP'# define FLT_MAX __F_FLT_MAX+# define FLT_EPSILON __F_FLT_EPSILON'# define FLT_MIN __F_FLT_MIN#endif/*J** Define the DBL values to be either the __S or __F values based on IEEE*/#if __IEEE_FLOAT,#  define DBL_MANT_DIG __T_FLT_MANT_DIG'# define DBL_DIG __T_FLT_DIG+# define DBL_MIN_EXP __T_FLT_MIN_EXP.# define DBL_MIN_10_EXP __T_FLT_MIN_10_EXP+# define DBL_MAX_EXP __T_FLT_MAX_EXP.# define DBL_MAX_10_EXP __T_FLT_MAX_10_EXP'# define DBL_MIN __T_FLT_MIN#elif __G_FLOAT ,# define DBL_MANT_DIG __G_DBL_MANT_DIG'# define DBL_DIG __G_FLT_DIG+# define DBL_MIN_EXP __G_FLT_MIN_EXP.# define DBL_MIN_10_EXP __G_FLT_MIN_10_EXP+# define DBL_MAX_EXP __G_FLT_MAX_EXP.# define DBL_MAX_10_EXP __G_FLT_MAX_10_EXP'# define DBL_MIN __G_FLT_MIN#else# define DBL_MANT_DIG 56# define DBL_DIG 16+# define DBL_MIN_EXP __F_FLT_MIN_EXP.# define DBL_MIN_10_EXP __F_FLT_MIN_10_EXP+# define DBL_MAX_EXP __F_FLT_MAX_EXP.# define DBL_MAX_10_EXP __F_FLT_MAX_10_EXP3# define DBL_MIN 2.93873587705571877e-39#endif #if __IEEE_FLOAT'# define DBL_MAX __T_FLT_MAX#elif __G_FLOAT '# define DBL_MAX __G_FLT_MAX#else# ifndef __ALPHA3# define DBL_MAX 1.70141183460469229e+38# else9# define DBL_MAX 1.70141183460469213e+38 # endif#endif#if __IEEE_FLOAT+# define DBL_EPSILON __T_FLT_EPSILON2#elif __G_FLOAT || (__D_FLOAT && defined(__ALPHA))E# define DBL_EPSILON (1.0 / (1 << 20) / (1 << 16) / (1 << 16))#elseE# define DBL_EPSILON (1.0 / (1 << 23) / (1 << 16) / (1 << 16))#endif/*-** Define the LDBL values based on __X_FLOAT*/ #if __X_FLOAT,# define LDBL_MANT_DIG __X_FLT_MANT_DIG'# define LDBL_DIG __X_FLT_DIG+# define LDBL_MIN_EXP __X_FLT_MIN_EXP.# define LDBL_MIN_10_EXP __X_FLT_MIN_10_EXP+# define LDBL_MAX_EXP __X_FLT_MAX_EXP.# define LDBL_MAX_10_EXP __X_FLT_MAX_10_EXP'# define LDBL_MAX __X_FLT_MAX+# define LDBL_EPSILON __X_FLT_EPSILONM# define LDBL_MIN 3.3621031431120935062626778173217526025981e-4932l#else(# define LDBL_MANT_DIG DBL_MANT_DIG## define LDBL_DIG DBL_DIG'# define LDBL_MIN_EXP DBL_MIN_EXP*# define LDBL_MIN_10_EXP DBL_MIN_10_EXP'# define LDBL_MAX_EXP DBL_MAX_EXP*# define LDBL_MAX_10_EXP DBL_MAX_10_EXP## define LDBL_MAX DBL_MAX'# define LDBL_EPSILON DBL_EPSILON## define LDBL_MIN DBL_MIN#endif#ifdef __cplusplus }#endif#pragma __standard#endif /* __FLOAT_LOADED */ww/_HE\#ifndef __FP_LOADED#define __FP_LOADED 1M/******************************************************************************)** - ANSI C NCEG floating support**M*****************************************************************************M** Header defined by NCEG Floating-Point C Extensions WG14/N319 X3J11/94-003M*******************************************************************************.** Copyright 2000 Compaq Computer Corpo ration**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N*******************************************************************************/#pragma __nostandard#include #ifdef __cplusplus extern "C" {#endif#if __INITIAL_POINTER_SIZE # pragma __pointer_size __save# pragma __pointer_size 32#endif/*!** Relaxed refdef external model*/#pragma __extern_model __save'#pragma __extern_model __relaxed_refdef/*#** Naturally align all structures */!#pragma __member_alignment __save#pragma __member_alignment/* J** HUGE_VAL is +infinity or double max. Note that D float has 53 bits of"** precision on AXP and 56 on VAX*/ #if __G_FLOAT=# define HUGE_VAL 8.988465674311578540726371186585e+307#elif __IEEE_FLOAT6# if defined (_IEEE_FP) && (__CRTL_VER >= 60200000). extern double decc$gt_dbl_infinity;-# define HUGE_VAL decc$gt_dbl_infinity # else0# define HUGE_VAL 1.7976931348623158e+308 # endif#else# ifdef __ALPHA.# define HUGE_VAL 1.70141183460469213e+38# else.# define HUGE_VAL 1.70141183460469229e+38 # endif#endif/* 5** HUGE_VALL is either +infinity or long double max.*/ #if !__X_FLOAT# define HUGE_VALL HUGE_VAL4#elif defined (_IEEE_FP) && (__CRTL_VER >= 60200000)2 extern long double decc$gx_long_dbl_infinity;/# define HUGE_VALL decc$gx_long_dbl_infinity#elseI# define HUGE_VALL 1.189731495357231765085759326628007016196477e4932l #endif/* C** HUGE_VALF is either +infinity or float max for the correct type*/ #if __G_FLOAT || __D_FLOAT## define HUGE_VALF 1.7014117e+38f4#elif defined (_IEEE_FP) && (__CRTL_VER >= 60200000)( extern float decc$gs_float_infinity;+# define HUGE_VALF decc$gs_float_infinity#else$# define HUGE_VALF 3.40282347e+38f#endif/* J** INFINITY is either +infinity, or a floating constant that overflows atE** compile-time. 1.8e308 is larger than DBL_MAX for D, G or IEEE T.*/ 1#if defined(_IEEE_FP) && (__CRTL_VER >= 60200000)(# define INFINITY decc$gt_dbl_infinity#else# define INFINITY 1.8e308#endif/* L** Implementation's most efficient floating types at least as wide as floatF** and double respectively. Both VAX and Alpha AXP are single/double>** architectures and so float and double are efficient types.*/ typedef float float_t;typedef double double_t;/* L** NAN is defined to be a quiet NaN, if and only if quiet NaN is supported.*/ #ifdef _IEEE_FP" extern double decc$gt_dbl_nan;# define NAN decc$gt_dbl_nan#endif/* 1** Alpha Only Constants for use with fp_classify** L** fp_classify is a type-independent macro that uses the classify functionsJ** in . fp_classify returns one of FP_NAN, FP_INFINIT, FP_NORMAL** FP_SUBNORMAL or FP_ZERO*/ #ifdef __ALPHA# define FP_NAN 0# define FP_INFINITE 1# define FP_NORMAL 2# define FP_SUBNORMAL 3# define FP_ZERO 4 int fp_classf( float __x ); int fp_class( double __x );% int fp_c lassl( long double __x );# define fp_classify(x) ((sizeof(x)==sizeof(float))?fp_classf(x)>>1:(sizeof(x)==sizeof(double))?fp_class(x)>>1:fp_classl(x)>>1)#endif)#define __VALH(x) ((unsigned int *)&x)[1])#define __VALL(x) ((unsigned int *)&x)[0]/* \** signbit(x) -- nonzero iff size is negative (negative infinity, zeros and NaN's included)F** isfinite(x) -- nonzero iff x is finite (zero, subnormal or normal)Q** isnormal(x) -- nonzero iff x is normal (not zero, subnormal, infinit e or Nan)B** isnan(x) -- nonzero iff x is Not-A-Number (NaN) [defined only'** if not previously included*/ #if __IEEE_FLOAT.# define signbit(x) (__VALH(x) & 0x80000000)@# define isfinite(x) ((__VALH(x) & 0x7ff00000) != 0x7ff00000 )g# define isnormal(x) ( ((__VALH(x) & 0x7ff00000) != 0x7ff00000) && ((__VALH(x) & 0x7ff00000) != 0)) )1# if !defined __MATH_LOADED || !defined __ALPHAk# define isnan(x) ( ((__VALH(x) & 0x7ff00000) == 0x7ff00000) && ((__VALH(x) & 0xfffff) | __VALL(x)) ) # endif#else*# define signbit(x) (__VALL(x) & 0x8000)# define isfinite(x) 1# define isnormal(x) (x != 0)1# if !defined __MATH_LOADED || !defined __ALPHA# define isnan(x) 0 # endif#endif/* O** DECIMAL_DIG -- number of decimal digits such that conversion from double toO** string and back is the identify function if the conversion uses a string of** DECIMAL_DIG digits.*/ #if __D_FLOAT && defined(__VAX)# define DECIMAL_DIG 18#else# define DECIMAL_DIG 17#endif/*%** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif$#pragma __member_alignment __restore #pragma __extern_model __restore#pragma __standard#endif /* __FP_LOADED */ww8dHE\#ifndef __FP_CLASS_LOADED#define __FP_CLASS_LOADED 1 #ifdef __ALPHA /* Alpha only */M/*************************************************** ***************************J** - IEEE Std 754-1985 classification function return values**M******************************************************************************* Header is nonstandardM*******************************************************************************M** Copyright Digital Equipment Corporation 1993, 1997. All rights reserved.**B** Restricted Rights: Use, duplication, or disclosure by the U.S.F** Government is subject to restrictions as set f orth in subparagraphF** (c) (1) (ii) of DFARS 252.227-7013, or in FAR 52.227-19, or in FAR&** 52.227-14 Alt. III, as applicable.**A** This software is proprietary to and embodies the confidentialD** technology of Digital Equipment Corporation. Possession, use, orG** copying of this software and media is authorized only pursuant to aD** valid written license from Digital or an authorized sublicensor.**N*******************************************************************************//*-** This file uses non-ANSI-Standard features*/#pragma __nostandard/*** Define the FP_ constants*/#define FP_SNAN 0#define FP_QNAN 1#define FP_POS_INF 2#define FP_NEG_INF 3#define FP_POS_NORM 4#define FP_NEG_NORM 5#define FP_POS_DENORM 6#define FP_NEG_DENORM 7#define FP_POS_ZERO 8#define FP_NEG_ZERO 9#pragma __standard#endif /* __ALPHA only */#endif /* __FP_CLASS_LOADED */ww;EgHE\#ifndef __FTW_LOADED#define __FTW_LOADEDM/******************************************************************************** - walk a file tree**M*******************************************************************************>** Header introduced by the X/Open CAE Specification, Issue 4**K** Definitions in this header file may not be available on all versions ofK** OpenVMS. See the DEC C Runtime Library reference manual for specifics.**M************************ *******************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N*******************************************************************************/#pragma __nostandard#include #ifdef __cplusplus extern "C" {#endif/*K** 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/*I** All includes of other header files must be done prior to altering the** pointer size mode.*/#include /*** Define FTW constant values*/C#define FTW_D 0 /* Directory */C#define FTW_DNR 1 /* Directory without read permission */C#define FTW_F 2 /* File */C#define FTW_NS 3 /* Unknown type, stat() failed */<#if defined _XOPEN_SOURCE_EXTENDED || !defined _XOPEN_SOURCE,# define FTW_SL 4 /* symbolic link */B# define FTW_SLN 5 /* symbolic link names non-existant file */#endif/*P** The callback routine for the ftw function is always passed 32 bit addresses.*/Gtypedef int (* __ftw_callback)(const char *, const struct stat *, int);/*M** We are done defining things which must always be 32 bit pointers. If theL** 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#if __USE_LONG_GID_T!# pragma __extern_prefix __save(# pragma __extern_prefix "__long_gid_"#endif/*** Function prototypes*/Dint ftw (const char * __path, __ftw_callback __action, int __depth); #if __USE_LONG_GID_T$# pragma __extern_prefix __restore#endif/*%** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif#pragma __standard#endif /* __FTW_LOADED */wwsRjHE\#ifndef __GRP_LOADED#define __GRP_LOADED 1#pragma __nostandard#include /*8** Group database functions are available on Alpha only.:** They require version of OpenVMS Alpha higher than V7.3.*/#if __USE_LONG_GID_TM/******************************************************************************)** - Group file access functions**M*****************************************************************************1** Header introduced by the ISO POSIX-1 StandardM*****************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**M******************************************************************************/#ifdef __cplusplus extern "C" {#endif/*#** Naturally align data structures*/!#pragma __member_alignment __save#pragma __member_alignment/* ** X/Open extensions for types*/5#if defined _XOPEN_SOURCE || !defined _POSIX_C_SOURCE# if !defined __GID_T# define __GID_T 1 t ypedef __gid_t gid_t; # endif# if !defined __SIZE_T# define __SIZE_T 1 typedef __size_t size_t; # endif#endif/*** Define the group structure*/ struct group{ char *gr_name; __long_gid_t gr_gid; char **gr_mem;};/*** Function prototypes.*/#if __USE_LONG_GID_T/*5** Applications compiled with long pointers will use4** __*64() flavour of the group database functions.*/#ifdef __INITIAL_POINTER_SIZE## if __INITIAL_POINTER_SIZE == 64## define getgrent __getgrent64/# define getgrgid(__p1) __getgrgid64(__p1)8# define getgrgid_r(__p1, __p2, __p3, __p4, __p5) \: __getgrgid_r64(__p1, __p2, __p3, __p4, __p5)/# define getgrnam(__p1) __getgrnam64(__p1)8# define getgrnam_r(__p1, __p2, __p3, __p4, __p5) \: __getgrnam_r64(__p1, __p2, __p3, __p4, __p5) # endif#endif void endgrent(void);! struct group *getgrent(void); void setgrent(void);$ struct group *getgrgid(__gid_t);O int getgrgid_r(__gid_t, struct group *, char *, __size_t, struct group **);) struct group *getgrnam(const char *);B int getgrnam_r(const char *, struct group *, char *, __size_t,! struct group **);#endif /* __USE_LONG_GID_T */#ifdef __cplusplus }#endif$#pragma __member_alignment __restore#endif /* __GRP_LOADED */#pragma __standard#endif /* __USE_LONG_GID_T */ww_mHE\#ifndef __ICONV_LOADED#define __ICONV_LOADEDM/******************************************************************************#** - code set conversion**M*******************************************************************************>** Header introduced by the X/Open CAE Specification, Issue 4**K** Definitions in this header file may not be available on all versions ofK** OpenVMS. See the DEC C Runtime Library reference manual for specifics.**M************************************** *****************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N*******************************************************************************/#pragma __nostandard #include #ifdef __cplusplus extern "C" {#endif/*K** 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#endiftypedef void *iconv_t;/*+** Define the __iconv interface definition*/struct __iconv_extern_obj_t;'typedef __size_t (*do_convert_function)K (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;B unsigned int major; /* major version id */B unsigned int minor; /* minor version id */B int tcs_mb_cur_max; /* tocodeset mb_cur_max */N long int reserved_for_digital[2]; /* private data will be placed here */} *__iconv_extern_obj_p;/*K** These functions do not support 64 bit pointers being used as arguments.*/Jstruct __iconv_extern_obj_t *_u_iconv_open (char *tocode, char *fromcode);G__size_t iconv (iconv_t __cd, char **__inbuf, __size_t *__inbytesleft, 9 char **__outbuf, __size_t *__outbytesleft);/*O** 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);Ciconv_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 */wwqHE\#ifndef __IF_LOADED#define __IF_LOADED 1M/******************************************************************************>** - Structures providing a packet transport mechanism**M********************************************** ********************************* Header is nonstandardM*******************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N********************************************************************************E** Copyright (c) 1982, 1993 Regents of the University of California.A** All rights reserved. The Berkeley software License Agreement:** specifies the terms and conditions for redistribution.**/** if.h 8.1 (Berkeley) 6/10/93**N*******************************************************************************/#pragma __nostandard#include #ifdef __cplusplus extern "C" {#endif#include #include #include #include #if __INITIAL_POINTER_SIZE # pragma __pointer_size __save# pragma __pointer_size 32#endif/*A** All structures should be member aligned on natural boundaries*/!#pragma __member_alignment __save#pragma __member_alignment/*$** External model of relaxed refdef*/#pragma __extern_model __save'#pragma __extern_model __relaxed_refdef/*** Public typedefs*/0#if !defined __U_INT && !defined _DECC_V4_SOURCE# define __U_INT typedef unsigned int u_int;#endif/*> * Structures defining a network interface, providing a packet: * transport mechanism (ala level 0 of the PUP protocols). *A * Each interface accepts output datagrams of a specified maximumB * length, and provides higher level routines with i nput datagrams * received from its medium. *L * Output occurs when the routine if_output is called, with four parameters:% * (*ifp->if_output)(ifp, m, dst, ro)J * Here m is the mbuf chain to be sent and dst is the destination address.F * The output routine encapsulates the supplied datagram if necessary,' * and then transmits it on its medium. *G * On input, each interface unwraps the data received by it, and eitherB * places it on the input queue of a internetwork datagram routineO * and posts the associated software interrupt, or passes the datagram to a raw * packet input routine. *< * Routines exist for locating interfaces by their addressesL * or for locating a interface on a certain network, as well as more generalF * routing and gateway routines maintaining information used to locateA * interfaces. These routines live in the files if.c and route.c *//* forward decls for C++ */#ifdef __cplusplus struct mbuf;struct ifaddr;struct ifmulti;struct rtentry;struct ifafilt;#endif/*6 * Structure defining a queue for a network interface. */struct ifnet {= struct ifnet *if_next; /* the next structure in the list */2 char *if_name; /* name, e.g. ``en'' or ``lo'' */1 char *if_version; /* The version string. */4 struct sockaddr if_addr; /* address of interface */. int if_flags; /* up/down, broadcast, etc. */6 short if_unit; /* sub-unit for lower level driver */5 u_short if_mtu; /* maximum IP transmission unit */5  u_short if_mediamtu; /* maximum MTU of the media */4 short if_timer; /* time 'til if_watchdog called */5 int if_metric; /* routing metric (external only) */B struct ifaddr *if_addrlist; /* linked list of addresses per if */= struct ifmulti *if_multiaddrs; /* list of multicast addrs */; int if_multicnt; /* number of multicast addrs in list */ 8 int if_allmulticnt; /* number of allmulti requests */ /* procedure handles */. int (*if_init) (int); /* init routine */1 int (*if_outp ut) (struct ifnet *, struct mbuf *,I struct sockaddr *, struct rtentry *); /* output routine (enqueue) */C int (*if_start) (struct ifnet *); /* initiate output routine */B int (*if_done) (struct ifnet *); /* output complete routine */M int (*if_ioctl) (struct ifnet *, unsigned int, caddr_t); /* ioctl routine */8 int (*if_reset) (int, int); /* bus reset routine */2 int (*if_watchdog) (int); /* timer routine */"/* generic interface statistics */6 int if_ipackets; /* packet s received on interface */1 int if_ierrors; /* input errors on interface */2 int if_opackets; /* packets sent on interface */2 int if_oerrors; /* output errors on interface */8 int if_collisions; /* collisions on csma interfaces */0 int if_sysid_type; /* MOP SYSID device code *//* SNMP statistics */1 struct timeval if_lastchange; /* last updated */6 int if_ibytes; /* total number of octets received */2 int if_obytes; /* total number of octets sent */6 int if_imcasts; /* packets r eceived via multicast */2 int if_omcasts; /* packets sent via multicast */8 int if_iqdrops; /* dropped on input, this interface */9 int if_noproto; /* destined for unsupported protocol */" int if_baudrate; /* linespeed *//* end statistics */0 u_char if_type; /* ethernet, tokenring, etc *// u_char if_addrlen; /* media address length */- u_char if_hdrlen; /* media header length */: u_char if_index; /* numeric abbreviation for this if */@ struct ifafilt *if_afilt; /* interface access filter */8 int futureuse_2; /* to be used for future expansion */8 int futureuse_1; /* to be used for future expansion */; int if_affinity; /* which CPU to run on (master, all) */ struct ifqueue { struct mbuf *ifq_head; struct mbuf *ifq_tail; int ifq_len; int ifq_maxlen; int ifq_drops; } if_snd; /* output queue */ u_int ovms_if_name_length;#define IFNAMSIZ 16$ u_char ovms_if_name_buf[IFNAMSIZ]; u_short ovms_if_sts; u_short ovms_if_pad; u_short ovms_if_size; u_char ovms_if_type; u_char ovms_if_iftype;#define IF_LOCAL 0 u_int ovms_if_eth_name; u_short ovms_if_react_att; u_short ovms_if_succ_react; u_int ovms_if_cluster; u_int ovms_if_clust_tcps; u_int ovms_if_cluster_timer_id; u_char ovms_if_lock[24]; u_char *ovms_vcib_ip; u_char *ovms_vcib_arp;  u_char *ovms_vcib_ipv6;};*#define IFF_UP 0x1 /* interface is up */8#define IFF_BROADCAST 0x2 /* broadcast address valid */.#define IFF_DEBUG 0x4 / * turn on debugging */1#define IFF_LOOPBACK 0x8 /* is a loopback net */D#define IFF_POINTOPOINT 0x10 /* interface is point-to-point link */8#define IFF_NOTRAILERS 0x20 /* avoid use of trailers */3#define IFF_RUNNING 0x40 /* resources allocated */<#define IFF_NOARP 0x80 /* no address resolution protocol */4#define IFF_PROMISC 0x100 /* receive all packets */?#define IFF_ALLMULTI 0x200 /* receive all multicast packets */5#define IFF_MULTICAST 0x400 /* supports multicast */=#define IF F_SIMPLEX 0x800 /* can't hear own transmissions */:#define IFF_OACTIVE 0x1000 /* transmission in progress */M#define IFF_PFCOPYALL 0x2000 /* pfilt gets packets to this host */+#define IFF_UIOMOVE 0x10000 /* DART */+#define IFF_PKTOK 0x20000 /* DART */+#define IFF_SOCKBUF 0x40000 /* DART */C#define IFF_VAR_MTU 0x80000 /* interface supports variable MTUs *//* Device-specific flags */#define IFF_D1 0x8000#define IFF_D2 0x4000?#define IFF_SNAP IFF_D1  /* Ethernet driver outputs SNAP hdr */ /* flags set internally only: */#define IFF_CANTCHANGE \9 (IFF_BROADCAST|IFF_POINTOPOINT|IFF_SIMPLEX|IFF_RUNNING|\> IFF_OACTIVE|IFF_MULTICAST|IFF_UIOMOVE|IFF_PKTOK|IFF_SOCKBUF|\ IFF_VAR_MTU)E#define IFF_DYNPROTO 0x100000 /* Support dynamic proto dispatching */2#define IFF_MOP 0x200000 /* Device in MOP mode */9#define IFF_SLIP 0x400000 /* Interface is a SLIP IFNET */B#define IFF_DELETE 0x800000 /* Started DELETE on this interface */D#defin e IFF_NONAME 0x1000000 /* Interf does not hold cluster name */@#define IFF_CLUSTER 0x2000000 /* Interface is a cluster IFNET */B/* interface types for benefit of parsing media address headers *//*> * The ifaddr structure contains information about one addressK * of an interface. They are maintained by the different address families,D * are allocated and attached when an address is set, and are linked= * together so all addresses for an interface can be located. */struct ifaddr {6  struct sockaddr *ifa_addr; /* address of interface */= struct sockaddr *ifa_dstaddr; /* other end of p-to-p link */C#define ifa_broadaddr ifa_dstaddr /* broadcast address interface */= struct sockaddr *ifa_netmask; /* used to determine subnet */8 struct ifnet *ifa_ifp; /* back-pointer to interface */: struct ifaddr *ifa_next; /* next address for interface */' /* check or clean routes (+ or -)'d */B void (*ifa_rtrequest) (int, struct rtentry *, struct sockaddr *);0 struct rtentry *ifa_rt; /* ??? for ROUTETOIF */6 u_short ifa_flags; /* mostly rt_flags for cloning */% u_short ifa_refcnt; /* ref count */};/#define IFA_ROUTE RTF_UP /* route installed *//*. * Interface request structure used for socket6 * ioctl's. All interface ioctl's must have parameter. * definitions which begin with ifr_name. The' * remainder may be interface specific. */struct ifreq {4 char ifr_name[IFNAMSIZ]; /* if name, e.g. "en0" */ union { struct sockaddr ifru_addr; struct sockaddr ifru_dstaddr;! struct sockaddr ifru_broadaddr; int ifru_flags; int ifru_metric; caddr_t ifru_data;* int ifru_value; /* any generic value */ u_int ifru_index; } ifr_ifru;1#define ifr_addr ifr_ifru.ifru_addr /* address */H#define ifr_dstaddr ifr_ifru.ifru_dstaddr /* other end of p-to-p link */E#define ifr_broadaddr ifr_ifru.ifru_broadaddr /* broadcast address */1#define ifr_flags ifr_ifru.ifru_flags /* flags */4#define ifr_metric ifr_ifru.ifru_metric /* metric */>#defin e ifr_data ifr_ifru.ifru_data /* for use by interface */@#define ifr_value ifr_ifru.ifru_value /* for use by interface */;#define ifr_index ifr_ifru.ifru_index /* interface index */};/*; * structure used to query de and qe for physical addresses */struct ifdevea {I char ifr_name[IFNAMSIZ]; /* if name, e.g. "en0" */N u_char default_pa[6]; /* default hardware address */N u_char current_pa[6]; /* current physical address */};struct ifaliasreq {5 char ifra_name[IFNAMSIZ]; /* if name, e.g. "en0" */ struct sockaddr ifra_addr; struct sockaddr ifra_broadaddr; struct sockaddr ifra_mask;};/*: * Request struct to create interface access filters. Used * in SIOCSIFAFILT requests. */struct ifafiltreq {A char ifafr_name[IFNAMSIZ]; /* if name, e.g. "en0" */? u_int ifafr_cnt; /* number of entries */A struct ifafilt *ifafr_filt; /* user-defined filter */};/*8 * Interface access filter. Filter is variable length as7 * specified by user's ifafiltreq. Filter allocated via9 * NET_MALLOC; one valid filter per interface; new filter * outdates existing filter. * ; * Filter entrys contain {addr, mask, action}. {addr, mask}7 * combine to filter packets; {action} gives action for8 * matching packets. "cnt" is reference count for number< * of hits per filter entry. Filtering is protocol-specific;6 * see netinet/{in,ip_input}.c for IP-style filtering. */struct ifafilt {& struct sockaddr ifaf_addr; /* addr */& struct sockaddr ifaf_mask; /* mask */! u_int ifaf_action; /* action */ u_int ifaf_cnt; /* counter */};#define IFAF_PERMIT 0x1#define IFAF_DENY 0x2#define IFAF_DENYLOG 0x4/* * IFAF_MAXBUFSIZE = 32KbytesA * IFAF_MAXENTRIES = (IFAF_MAXBUFSIZE/sizeof(struct ifafilt)) - 2 */#define IFAF_MAXBUFSIZE 0x8000#define IFAF_MAXENTRIES 0x331/*) * Structure used in SIOCGIFCONF request.+ * Used to retrieve interface configuration) * for machine (useful for programs which& * must know all networks accessible). */struct ifconf {. int ifc_len; /* size of associated buffer */ union { caddr_t ifcu_buf; struct ifreq *ifcu_req; } ifc_ifcu;6#define ifc_buf ifc_ifcu.ifcu_buf /* buffer address */D#define ifc_req ifc_ifcu.ifcu_req /* array of structures returned */};/*I * Interface multicast address structure. There is one of these for eachI * multicast a ddress or range of multicast addresses that we are supposedK * to listen to on a particular interface. They are kept in a linked list,/ * rooted in the interfaces's ifnet structure.  */struct ifmulti {; u_char ifm_addrlo[6]; /* low or only address of range */; u_char ifm_addrhi[6]; /* high or only address of range */5 struct ifnet *ifm_ifnet; /* back pointer to ifnet */9 u_int ifm_refcount; /* no. claims to this addr/range */4 struct ifmulti *ifm_next; /* ptr to next ifmulti */ };/*G * Structure for EEPROM downline upgrades. (Supported by FDDI adapters) */struct ifeeprom {J char ife_name[IFNAMSIZ]; /* if name, e.g. "fza0" */J u_char ife_data[64]; /* block of EEPROM data */J u_int ife_offset; /* byte offset from base */H u_int ife_blklen; /* len of EEPROM block */G u_int ife_lastblk; /* True if last block */};H#define IFE_NOTLAST 0x0 /* Intermediary block of EEPROM image */@#define IFE_LASTBLOCK 0x1 /* Last block of EEPROM image */J#define IFE_SUCCESS 0x0 /* Block of EEPROM successfully written */>#define IFE_RETRY 0x1 /* Retry last block written */M#define IFE_FAIL 0x2 /* Fail entire EEPROM image write sequence *//*. * Structure for set adapter's characteristics */struct ifchar { char ifc_name[IFNAMSIZ]; u_int ifc_treq; u_int ifc_tvx; u_int ifc_lem; u_int ifc_rtoken; u_int ifc_ring_purger;7 u_int ifc_cnt_interval; /* Not applicable to DEFZA */#define FDX_ENB 1#define FDX_DIS 28 int ifc_full_duplex_mode; /* Not applicable to DEFZA */ int ifc_media_speed; int ifc_media_type;#define AUTO_ENB 1#define AUTO_DIS 2 int ifc_auto_sense;};/*" * interface statistics structures */5struct estat { /* Ethernet interface statistics */6 u_short est_seconds; /* seconds since last zeroed */* u_int est _bytercvd; /* bytes received */& u_int est_bytesent; /* bytes sent */0 u_int est_blokrcvd; /* data blocks received */, u_int est_bloksent; /* data blocks sent */5 u_int est_mbytercvd; /* multicast bytes received */6 u_int est_mblokrcvd; /* multicast blocks received */; u_int est_deferred; /* blocks sent, initially deferred */7 u_int est_single; /* blocks sent, single collision */< u_int est_multiple; /* blocks sent, multiple collisions */8 u_short est_sendfail_bm; /* 0 - Excessive  collisions */# /* 1 - Carrier check failed */ /* 2 - Short circuit */ /* 3 - Open circuit */ /* 4 - Frame too long */& /* 5 - Remote failure to defer */5 u_short est_sendfail; /* send failures: (bit map)*/: u_short est_collis; /* Collision detect check failure */5 u_short est_recvfail_bm; /* 0 - Block check error */ /* 1 - Framing error */ /* 2 - Frame too long */8 u_short est_recvfail; /* receive failure: (bit map) */; u_short est_unrecog; /* un recognized frame destination */) u_short est_overrun; /* data overrun */5 u_short est_sysbuf; /* system buffer unavailable */4 u_short est_userbuf; /* user buffer unavailable */1 u_int est_mbytesent; /* multicast bytes sent */2 u_int est_mbloksent; /* multicast blocks sent */};;struct dstat { /* DDCMP pt-to-pt interface statistics */6 u_short dst_seconds; /* seconds since last zeroed */* u_int dst_bytercvd; /* bytes received */& u_int dst_bytesent; /* bytes sent */1 u_int  dst_blockrcvd; /* data blocks received */- u_int dst_blocksent; /* data blocks sent */9 u_short dst_inbound_bm; /* 0 - NAKs sent, header crc */" /* 1 - NAKs sent, data crc */& /* 2 - NAKs sent, REP response */: u_char dst_inbound; /* data errors inbound: (bit map) */9 u_short dst_outbound_bm; /* 0 - NAKs rcvd, header crc */" /* 1 - NAKs rcvd, data crc */& /* 2 - NAKs rcvd, REP response */< u_char dst_outbound; /* data errors outbound: (bit map) */3 u_char dst_remote tmo; /* remote reply timeouts */1 u_char dst_localtmo; /* local reply timeouts */B u_short dst_remotebuf_bm; /* 0 - NAKs rcvd, buffer unavailable */* /* 1 - NAKs rcvd, buffer too small */= u_char dst_remotebuf; /* remote buffer errors: (bit map) */A u_short dst_localbuf_bm; /* 0 - NAKs sent, buffer unavailable */* /* 1 - NAKs sent, buffer too small */; u_char dst_localbuf; /* local buffer errors: (bit map) */6 u_char dst_select; /* selection intervals elapsed */7 u_short dst _selecttmo_bm; /* 0 - No reply to select */) /* 1 - Incomplete reply to select */; u_char dst_selecttmo; /* selection timeouts: (bit map) */? u_short dst_remotesta_bm; /* 0 - NAKs rcvd, receive overrun */' /* 1 - NAKs sent, header format */$ /* 2 - Select address errors */$ /* 3 - Streaming tributaries */> u_char dst_remotesta; /* remote station errors: (bit map) */> u_short dst_localsta_bm; /* 0 - NAKs sent, receive overrun */, /* 1 - Receive overrun, NAK not sent */! /* 2 - Transmit underruns */' /* 3 - NAKs rcvd, header format */< u_char dst_localsta; /* local station errors: (bit map) */};struct fstat {G u_short fst_second; /* seconds since last zeroed */5 u_int fst_frame; /* total number of frames seen */ 0 u_int fst_error; /* MAC counter frame error */0 u_int fst_lost; /* MAC counter frame count */< u_int fst_bytercvd; /* bytes received */8 u_int fst_bytesent; /* byt es sent */B u_int fst_pdurcvd; /* data blocks received */> u_int fst_pdusent; /* data blocks sent */F u_int fst_mbytercvd; /* multicast bytes received */@ u_int fst_mpdurcvd; /* multicast blocks received */B u_int fst_mbytesent; /* multicast bytes sent */C u_int fst_mpdusent; /* multicast blocks sent */5 u_short fst_underrun; /* transmit underrun error */E u_short fst_sendfail;  /* sent failures: (bit map)*/6 u_short fst_fcserror; /* FCS check failure */0 u_short fst_fseerror; /* frame status error */2 u_short fst_pdualig; /* frame alignment error */. u_short fst_pdulen; /* frame length error */2 u_short fst_pduunrecog; /* frame unrecognized */< u_short fst_mpduunrecog; /* multicast frame unrecognized */: u_short fst_overrun; /* data overrun */G u_short fst_sysbuf; /* system buffer unavailable */E u_ short fst_userbuf; /* user buffer unavailable */@ u_short fst_ringinit; /* other station ring reinit. intiated*/? u_short fst_ringinitrcv; /* ring reinitialization initiated */= u_short fst_ringbeacon; /* ring beacon process initiated */; u_short fst_ringbeaconrecv; /* ring beacon process recv */5 u_short fst_duptoken; /* duplicat token detected */? u_short fst_dupaddfail; /* duplicate address test failures */0 u_short fst_ringpurge; /* ring purge errors */3 u_short fst_bridgestrip; /* bridge strip errors *// u_short fst_traceinit; /* traces initiated */. u_short fst_tracerecv; /* traces received */- u_short fst_lem_rej; /* LEM reject count */0 u_short fst_lem_events; /* LEM events count */- u_short fst_lct_rej; /* LCT reject count */8 u_short fst_tne_exp_rej; /* TNE expired reject count */: u_short fst_connection; /* Completed Connection count */7 u_short fst_ebf_error; /* Elasticity Buffer Errors */};/*  * FDDI MIB structures  *//* SMT group */struct fddismt {1 short smt_number; /* SMT number */, short smt_index; /* SMT FDDI SMT index */ 0 u_char smt_stationid[8]; /* FDDI station id */ 4 u_short smt_opversionid; /* operation version id */2 u_short smt_hiversionid; /* highest version id */1 u_short smt_loversionid; /* lowest version id */( short smt_macct; /* number of MACs */7 short smt_nonmasterct; /* number of non master port */1 short smt_masterct; /* number of master port */3 short  smt_pathsavail; /* available path type */7 short smt_configcap; /* configuration capabilities */3 short smt_configpolicy; /* configuration policy */3 u_short smt_connectpolicy; /* connection policy */? u_short smt_timenotify; /* neighbor notification prot. time*/8 short smt_statusreport; /* status reporting protocol */6 short smt_ecmstate; /* state of ECM state machine */# short smt_cfstate; /* CF_state */; short smt_holdstate; /* current state of Hold function */< short smt_rem otedisconn; /* remotely disconnection flag */ ; u_char smt_msgtimestamp[8]; /* timestamp for SMT frames */< u_char smt_trantimestamp[8]; /* timestamp for last event */< u_char smt_setinfo[12]; /* station last parameter change */6 u_char smt_lastsetid[8]; /* Last station ID change */, short smt_action; /* SMT station action */}; B/*--------------------------------------------------------------*/ /* */;/* FDDI Station/Link/Physical Port Attributes & Status: */ /* */8/* defined by the DNA-FDDI Data Link Functional Spec */"/* version 1.0.1 chapter 5. */ /* */C/*--------------------------------------------------------------*/ struct fddi_dna_attributes { /* STATION Attributes */- u_char stationid[8]; /* FDDI station id */ . short stationtype; /* FDDI station type */1 u_short opversionid; /* operation version id *// u_short hiversionid; /* highest version id */. u_short loversionid; /* lowest version id */ /* LINK Attributes */* u_char link_addr[6]; /* LINK address */! u_int t_req; /* TRT request */- u_int tvx; /* Valid Transmission time */6 u_int rtoken_timeout; /* restricted token timeout */2 short ring_purge_enable; /* ring purger enable */ /* PHY Attributes */ ! u_char phy_type; /* PHY type */! u_char pmd_type; /* PMD type */4 u_int lem_threshold; /* lem threshold */};struct fddi_dna_status { /* STATION Status */, short station_state; /* station state */5 u _char laststationid[8]; /* Last FDDI station id */ + u_char station_uid[8]; /* station uid */  /* LINK Status */& short link_state; /* LINK state */% u_char link_uid[8]; /* link uid */ % u_int neg_trt; /* Negotiated TRT */4 short dup_add_flag; /* duplicate address flag */. u_char upstream[6]; /* Upstream Neighbor */5 u_char oldupstream[6]; /* Old Upstream Neighbor */E short upstreamdaf; /* Upstream Neighbor duplicate address flag */2 u_char downstream[6]; /* Downstream Neighbor */8 u_char olddownstream[6]; /* Old Downstream Neighbor */1 short ring_purge_state; /* ring purge state */1 u_char frame_strip_mode; /* frame strip mode */- u_char ring_error; /* ring error reasons */2 short loopback; /* loopback mode - true/false */< short ring_latency; /* currently measured ring latency */6 u_char ring_purge_addr[6]; /* ring purger address */  /* PHY Status */) u_char phy_state; /* Physical state */# u_char phy_uid[8]; /* phy uid */ 3 u_char neighbor_phy_type; /* Neighborshort */ 5 u_int phy_link_error; /* phy link error estimate */5 u_char broken_reason; /* phy port broken reason */) u_char rej_reason; /* reject reason */};struct fddiDNA_status {! struct fddi_dna_attributes attr; struct fddi_dna_status stat; }; struct fstatus {" short led_state; /* LED State */$ short rmt_state; /* RMT state */& short link_state; /* LINK state */4 short dup_add_test; /* duplicate address test */1  short ring_purge_state; /* ring purge state */& u_int neg_trt; /* Negotiated TRT */. u_char upstream[6]; /* Upstream Neighbor */2 u_char downstream[6]; /* downstream Neighbor */0 u_char una_timed_out; /* una timed out flag */1 u_char frame_strip_mode; /* frame strip mode */6 u_char claim_token_mode; /* claim token yield mode */) u_char phy_state; /* Physical state */3 u_char neighbor_phy_type; /* Neighborshort */ ) u_char rej_reason; /* reject reason */5 u_int phy_lin k_error; /* phy link error estimate */- u_char ring_error; /* ring error reasons */! u_int t_req; /* TRT request */ u_int tvx; /* TVX value */" u_int t_max; /* TRT maximum */: u_int lem_threshold; /* lem threshold */6 u_int rtoken_timeout; /* restricted token timeout */, u_char fw_rev[4]; /* firmware revision */) u_char phy_rev[4]; /* ROM revision */ ! u_char pmd_type; /* PMD type */9 u_char dir_beacon[6]; /* Last Direct Beacon address */& short smt_version; /* SMT version */% short state; /* Adapter State */B u_char dir_beacon_una[6]; /* UNA from last direct beacon addr. */; short cnt_interval; /* Interval to get counter updates */= short full_duplex_mode; /* enabling/disabling duplex mode */1 short full_duplex_state; /* state, if enabled */}; /* MAC group */struct fddimac {1 short mac_number; /* MAC number */, short mac_smt_index; /* MAC SMT index */$ short mac_index; /* MAC index */4 short m ac_fsc; /* MAC frame status capabilities */8 u_int mac_gltmax; /* Greastest lower bound of T_max */5 u_int mac_gltvx; /* Greastest lower bound of TVX */- short mac_paths; /* path types available */: short mac_current; /* association of the MAC with path*/0 u_char mac_upstream[6]; /* upstream neighbor */< u_char mac_oldupstream[6]; /* previous upstream neighbor */4 short mac_dupaddrtest; /* duplicate address test */- short mac_pathsreq; /* paths requested */3 short mac_downstreamtyp e; /* downstream PC-type */4 u_char mac_smtaddress[6]; /* MAC address for SMT */ u_int mac_treq; /* TRT time */% u_int mac_tneg; /* Neg. TRT time */% u_int mac_tmax; /* max. TRT time */ u_int mac_tvx; /* TVX value */% u_int mac_tmin; /* min. TRT time */2 short mac_framestatus; /* current frame status */' int mac_counter; /* frame counters */+ int mac_error; /* frame error counters */( int mac_lost; /* frame lost counter */1 short mac_rmtstate; /* Ring Management state */1 short mac_dupaddr; /* duplicate address flag */* short mac_condition; /* MAC condition */& short mac_action; /* MAC action */< short mac_updupaddr; /* upstream duplicate address flag */: short mac_frame_error_thresh; /* frame error threshold */6 short mac_frame_error_ratio; /* frame error ratio */- short mac_chip_set; /* the chip set used */};/* PATH group */struct fddipath {7 short path_configindex; /* path configuration index */ short path_type;  short path_portorder; 7 u_int path_sba; /*synchronous bandwidth allocation*/ + short path_sbaoverhead; /* SBA overhead */& short path_status; /* path status */};/* PORT group */struct fddiport {2 short port_number; /* port number */, short port_smt_index; /* port SMT index */$ short port_index; /* port index */6 short port_pctype; /* value of the port's PC_type */7 short port_pcneighbor; /* PC_neighbor of remote port*/3 short port_connpolicy; /* connection policies */2 s hort port_remoteind; /* remote MAC indicated */8 short port_CEstate; /* Current Configuration state */* short port_pathreq; /* path request */, u_short port_placement; /* upstream MAC */- short port_availpaths; /* available paths */4 u_int port_looptime; /* time for MAC loval loop */ u_int port_TBmax; /* TB_max */3 short port_BSflag; /* the Break state, BF_flag */< u_int port_LCTfail; /* counter for Link confidence test *// short port_LerrEst; /* Link error estimate *// u_int  port_Lemreject; /* Link reject count */0 u_int port_Lem; /* Link error monitor count */8 short port_baseLerEst; /* value of port Ler Estimate */. u_int port_baseLerrej; /* Ler reject count */% u_int port_baseLer; /* Ler count */1 u_char port_baseLerTime[8]; /* Ler timestamp */ 8 short port_Lercutoff; /* error rate cut off limit */8 short port_alarm; /* error rate cause alarm generate*/- short port_connectstate; /* connect state */( short port_PCMstate; /* PCM state */) short port_PCwithhold; /* PC_withhold */< short port_Lercondition; /* true if Ler-Est <= Ler_alarm */( short port_action; /* PORT action */* short port_chip_set; /* PORT chip set */};/* Attachment group */struct fddiatta {6 short atta_number; /* attachment number */3 short atta_smt_index; /* attachment SMT index */+ short atta_index; /* attachment index */* short atta_class; /* attachment class */5 short atta_bypass; /* attachment optical bypass */ > short atta_IMaxExpiration; /* attachment I_Max Expiration */ 2 short atta_InsertedStatus; /* Inserted status */ . short atta_InsertPolicy; /* Insert policy */ };1 /* Information here is conformant to SMT 7.2 */ /* SMT GROUP */struct smtmib_smt { u_char smt_station_id[8]; u_int smt_op_version_id; u_int smt_hi_version_id; u_int smt_lo_version_id; u_char smt_user_data[32]; u_int smt_mib_version_id; u_int smt_mac_ct; u_int smt_non_master_ct; u_int smt_master_ct;! u_int smt_available_paths;% u_int smt_config_capabilities; u_int smt_config_policy;# u_int smt_connection_policy; u_int smt_t_notify;! u_int smt_stat_rpt_policy;& u_int smt_trace_max_expiration; u_int smt_bypass_present; u_int smt_ecm_state; u_int smt_cf_state;( u_int smt_remote_disconnect_flag; u_int smt_station_status; u_int smt_peer_wrap_flag;#ifdef __alpha5 u_long smt_msg_time_stamp; /* 64 bit counter */< u_long smt_transition_time_stamp; /* 64 bit counter */#else8 u_int smt_msg_time_stamp_ms; /* 64 bit counter */# u_int smt_msg_time_stamp_ls;? u_int smt_transition_time_stamp_ms; /* 64 bit counter */* u_int smt_transition_time_stamp_ls;#endif /* __alpha */}; /* MAC GROUP */struct smtmib_mac {( u_int mac_frame_status_functions;" u_int mac_t_max_capability; u_int mac_tvx_capability;! u_int mac_available_paths; u_int mac_current_path;! u_char mac_upstream_nbr[8];# u_char mac_downstream_nbr[8];% u_char mac_old_upstream_nbr[8];' u_char mac_old_downstream_nbr[8];" u_int mac_dup_address_test;( u_int mac_requested_paths;, u_int mac_downstream_port_type; u_char mac_smt_address[8]; u_int mac_t_req; u_int mac_t_neg; u_int mac_t_max; u_int mac_tvx_value;' u_int mac_frame_error_threshold;# u_int mac_frame_error_ratio; u_int mac_rmt_state; u_int mac_da_flag; u_int mac_unda_flag;" u_int mac_frame_error_flag;' u_int mac_ma_unitdata_available; u_int mac_hw_present;$ u_int mac_ma_unitdata_enable;}; /* PATH GROUP */struct smtmib_path {$ u_char path_configuration[32];" u_int path_tvx_lower_bound;$ u_int path_t_max_lower_bound; u_int path_max_t_req;}; /* PORT GROUP */struct smtmib_port { u_int port_my_type[2];# u_int port_neighbor_type[2];) u_int port_connection_policies[2];# u_int port_mac_indicated[2];" u_int port_current_path[2];% u_int port_requested_paths[2];# u_int port_mac_placement[2];% u_int port_available_paths[2]; u_int port_pmd_class[2];- u_int port_connection_capabilities[2]; u_int port_bs_flag[2];" u_int port_ler_estimate[2]; u_int port_ler_cutoff[2]; u_int port_ler_alarm[2];# u_int port_connect_state[2]; u_int port_pcm_state[2];! u_int port_pc_withhold[2]; u_int port_ler_flag[2];& u_int port_hardware_present[2];};struct decext_mib { /* SMT GROUP */ u_int esmt_station_type; /* MAC GROUP */ u_int emac_link_state; u_int emac_ring_purger_state; u_int emac_ring_purger_enable; u_int emac_frame_strip_mode; u_int emac_ring_error_reason;! u_int emac_up_nbr_dup_addr_flag;% u_int emac_restricted_token_timeout; /* PORT GROUP */ u_int eport_pmd_type[2]; u_int eport_phy_state[2]; u_int eport_reject_reason[2]; /* FDX (Full-Duplex) GROUP */6 u_int efdx_enable; /* Valid only in SMT 7.2 */6 u_int efdx_op; /* Valid only in SMT 7.2 */6 u_int efdx_state; /* Valid only in SMT 7.2 */};.#define CTR_ETHER 0 /* Ethernet interface */4#define CTR_DDCMP 1 /* DDCMP pt-to-pt interface */)#define CTR_FD DI 2 /* FDDI interface *//#define FDDIMIB_SMT 3 /* FDDI MIB SMT group *//#define FDDIMIB_MAC 4 /* FDDI MIB MAC group */1#define FDDIMIB_PATH 5 /* FDDI MIB PATH group */1#define FDDIMIB_PORT 6 /* FDDI MIB PORT group */8#define FDDIMIB_ATTA 7 /* FDDI MIB Attatchment Group */(#define FDDI_STATUS 8 /* FDDI status */8#define FDDISMT_MIB_SMT 9 /* FDDI SMT SMT MIB values */5#define FDDISMT_MIB_MAC 10 /* FDDI SMT MAC values */6#define FDDISMT_MIB_PATH 11 /* FDDI SMT PATH values */6#d efine FDDISMT_MIB_PORT 12 /* FDDI SMT PORT values */=#define FDDIDECEXT_MIB 13 /* FDDI DEC Extended MIB values */.#define CTR_TRN 14 /* Token ring counters */5#define TRN_CHAR 15 /* Token ring characteristics */4#define TRN_MIB_ENTRY 16 /* Token ring mib entry */?#define TRN_MIB_STAT_ENTRY 17 /* Token ring mib status entry */C#define TRN_MIB_TIMER_ENTRY 18 /* Token ring mib timer entry */4#define FDDIMIB_PORT_B 19 /* FDDI MIB PORT group */7#define FDDISMT_MIB_PORT_B 20 /* FDDI MIB PORT group */%#define ctr_ether ctr_ctrs.ctrc_ether%#define ctr_ddcmp ctr_ctrs.ctrc_ddcmp$#define ctr_fddi ctr_ctrs.ctrc_fddi&#define sts_fddi ctr_ctrs.status_fddi*#define dna_fddi ctr_ctrs.dna_status_fddi##define fmib_smt ctr_ctrs.smt_fddi##define fmib_mac ctr_ctrs.mac_fddi%#define fmib_path ctr_ctrs.path_fddi%#define fmib_port ctr_ctrs.port_fddi%#define fmib_atta ctr_ctrs.atta_fddi"#define smib_smt ctr_ctrs.smt_smt"#define smib_mac ctr_ctrs.smt_mac$#define smib_port ctr_ctrs.smt_port$#define smib_path ctr_ctrs.smt_path##define decmib_ext ctr_ctrs.dec_ext0#define CTR_HDRCRC 0 /* header crc bit index */.#define CTR_DATCRC 1 /* data crc bit index */<#define CTR_BUFUNAVAIL 0 /* buffer unavailable bit index *//*" * Interface counter ioctl request */struct ctrreq {. char ctr_name[IFNAMSIZ]; /* if name */@ char ctr_type; /* type of interface */ union {A struct estat ctrc_ether; /* ethernet counters */G struct dstat ctrc_ddcmp; /* DDCMP pt-to-pt counters */= struct fstat ctrc_fddi; /* FDDI counters */@ struct fstatus status_fddi; /* FDDI stsatus */V struct fddiDNA_status dna_status_fddi; /* FDDI status per DNA spec */C struct fddismt smt_fddi; /* fddi SMT attributes */C struct fddimac mac_fddi; /* fddi MAC attributes */F struct fddipath path_fddi; /* fddi PA TH attributes */G struct fddiport port_fddi; /* fddi PORT attributes */J struct fddiatta atta_fddi; /* fddi attatch attributes */8 struct smtmib_smt smt_smt; /* smt mib attributes */8 struct smtmib_mac smt_mac; /* smt mib attributes */9 struct smtmib_path smt_path; /* smt mib attributes */9 struct smtmib_port smt_port; /* smt mib attributes */6 struct decext_mib dec_ext; /* dec extended mib */; struct trnchar trnchar; /* Token ring characteristics */6 struct trncount trncount; /* Token ring counters */< struct dot5Entry dot5Entry; /* Token ring MIB counters */B struct dot5StatsEntry dot5StatsEntry; /*Token ring MIB stats */C struct dot5TimerEntry dot5TimerEntry; /*Token ring MIB Timers */ } ctr_ctrs;};union mac_addr { u_short saddr[3]; u_char caddr[6];};/*< * following are the prototypes and structure defns. for the- * new interface indentification API for IPv6*/?char *  if_indextoname ( unsigned int, char *);8unsigned int if_nametoindex ( const char * );,struct if_nameindex * if_nameindex ( void );1void if_freenameindex ( struct if_nameindex *);struct if_nameindex { unsigned int if_index; char *if_name;};/*%** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif$#pragma __member_alignment __restore #pragma __extern_model __restore#pragma __standard#endif /* __IF_LOADED */ww3HE\#ifndef __IF_ARP_LOADED#define __IF_ARP_LOADED 1M/******************************************************************************?** - Structures for the Address Resolution Protocol**M******************************************************************************* Header is nonstandardM*******************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N********************************************************************************E** Copyright (c) 1982, 1993 Regents of the University of California.A** All rights reserved. The Berkeley software License Agreement:** specifies the terms and conditions for redistribution.**1** if_arp.h 8.1 (Berkeley) 6/10/93**N*******************************************************************************/#pragma __nostandard#include #ifdef __cplusplus extern "C" {#endif#include #if __INITIAL_POINTER_SIZE # pragma __pointer_size __save# pragma __pointer_size 32#endif/*A** All structures should be member aligned on natural boundaries*/!#pragma __member_alignment __save#pragma __member_alignment/*$** External model of relaxed refdef*/#pragma __extern_model __save'#pragma __extern_model __relaxed_refdef/* * Address Resolution Protocol. *B * See RFC 826 for protocol description. ARP packets are variableB * in size; the arphdr  structure defines the fixed-length portion.C * Protocol type values are the same as those for 10 Mb/s Ethernet.? * It is followed by the variable-sized fields ar_sha, arp_spa,> * arp_tha and arp_tpa in that order, according to the lengths6 * specified. Field names used correspond to RFC 826. */struct arphdr {2 u_short ar_hrd; /* format of hardware address */7#define ARPHRD_ETHER 1 /* ethernet hardware address */3#define ARPHRD_802 6 /* 802 net hardware address */2 u_short ar_pro;  /* format of protocol address */1 u_char ar_hln; /* length of hardware address */1 u_char ar_pln; /* length of protocol address */ u_short ar_op; /* one of: */8#define ARPOP_REQUEST 1 /* request to resolve address */8#define ARPOP_REPLY 2 /* response to previous request *//*- * The remaining fields are variable in size, * according to the sizes above. */1/* u_char ar_sha[]; sender hardware address */1/* u_char ar_spa[]; sender protocol address */1/* u_char ar_tha[];  target hardware address */1/* u_char ar_tpa[]; target protocol address */};3/* For indexing into arbitrary ha/pa ARP headers */'#define AR_SHA(ah) ((u_char *)((ah)+1)),#define AR_SPA(ah) (AR_SHA(ah)+(ah)->ar_hln),#define AR_THA(ah) (AR_SPA(ah)+(ah)->ar_pln),#define AR_TPA(ah) (AR_THA(ah)+(ah)->ar_hln)/* * ARP ioctl request */struct arpreq {0 struct sockaddr arp_pa; /* protocol address */0 struct sockaddr arp_ha; /* hardware address */ int arp_flags; /* flags */ };*/* arp_flags and at_flags field values */)#define ATF_INUSE 0x01 /* entry in use */:#define ATF_COM 0x02 /* completed entry (enaddr valid) */+#define ATF_PERM 0x04 /* permanent entry */B#define ATF_PUBL 0x08 /* publish entry (respond for other host) */9#define ATF_USETRAILERS 0x10 /* has requested trailers */4#define ATF_USE802 0x20 /* host using 802 framing */:#define ATF_STALE 0x0100 /* entry needs to be refreshed */<#define ATF_DEAD 0x0200 /* entry (host) failed to refresh */1#define ATF_CANTCHANGE (0xff00|ATF_INUSE|ATF_COM)/*%** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif$#pragma __member_alignment __restore #pragma __extern_model __restore#pragma __standard#endif /* __IF_ARP_LOADED */wwPHE\#ifndef __IF_TRNSTAT_LOADED#define __IF_TRNSTAT_LOADED 1M/****************************************************************************** >** - Structures providing a packet transport mechanism**M******************************************************************************* Header is nonstandardM*******************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N********************************************************************************E** Copyright (c) 1982, 1993 Regents of the University of California.A** All rights reserved. The Berkeley software License Agreement:** specifies the terms and conditions for redistribution.**/** if.h 8.1 (Berkeley) 6/10/93**N*******************************************************************************/#pragma __nostandard#include #ifdef __cplusplus extern "C" {#endif#include #if __INITIAL_POINTER_SIZE # pragma __pointer_size __save# pragma __pointer_size 32#endif/*A** All structures should be member aligned on natural boundaries*/!#pragma __member_alignment __save#pragma __member_alignment/*$** External model of relaxed refdef*/#pragma __extern_model __save'#pragma __extern_model __relaxed_refdef/* * Token Ring characteristics. */struct trnchar {6 __u_char mac_addr[6]; /* The mac address */2 __u_char grp_addr[6]; /* Group address */8 __u_char func_addr[6]; /* Functional address */8 __u_short drop_numb; /* Physical drop number */9 __u_char upstream_nbr[6]; /* Upstream neighbor */@ __u_ short upstream_drop_numb; /* Upstream drop number */D __u_short transmit_access_pri; /* Trasmit access priority */5 __u_short last_major_vector; /* Last major vector */+ __u_short ring_status; /* Ring status */7 __u_short interface_state; /* State of the interface*/; __u_short monitor_contd; /* monitor contender */9 __u_short soft_error_timer; /* Soft error timer value */0 __u_short ring_number; /* Local ring number */7 __u_short monitor_error_code; /* Monitor error co de */= __u_short beacon_receive_type; /* Type of beacon received */A __u_short beacon_transmit_type; /* Type of beacon transmitted */= __u_char beacon_una[6]; /* UNA of the beaconing station */H __u_short beacon_stn_drop_numb; /* Drop number of the beacon station */3 __u_short ring_speed; /* The ring speed */3 __u_short etr; /* Early token release */+ __u_short open_status; /* Open status */3 __u_char token_ring_chip[16]; /* type of chip */};/*- * Definitions for the Major Vector commands # * See page 2-30 of the TMS380 book */#define MV_RESPONSE 0x00#define MV_BEACON 0x02#define MV_CLAIM_TOKEN 0x03#define MV_RING_PURGE 0x04#define MV_ACTIVE_MON_PRES 0x05 #define MV_STANDBY_MON_PRES 0x06#define MV_DUP_ADDR_TEST 0x07#define MV_LOBE_MEDIA_TEST 0x08#define MV_TRANSMIT_FORW 0x09 #define MV_RMV_RING_STATION 0x0B#define MV_CHANGE_PARM 0x0C#define MV_INIT_RING_STN 0x0D#define MV_REQ_STN_ADDR 0x0E#define MV_REQ_STN_STATE 0x0F#define MV_REQ_STN_ATTACH 0x10#define MV_REQ_INIT 0x20#define MV_REPORT_STN_ADDR 0x22 #define MV_REPORT_STN_STATE 0x23!#define MV_REPORT_STN_ATTACH 0x24"#define MV_REPORT_NEW_MONITOR 0x25!#define MV_REPORT_SUA_CHANGE 0x26$#define MV_REPORT_RNG_POLL_FAIL 0x27"#define MV_REPORT_MONTIOR_ERR 0x28#define MV_REPORT_ERR 0x29$#define MV_REPORT_TRANSMIT_FORW 0x2A/*$ * Definitions for the beacon types # * See page 2-56 of the TMS380 book */#define BT_SET_RECOV_MODE 0x01#define BT_SET_SIGNAL_LOSS 0x02!#define BT_SET_BIT_STREAMING 0x03"#define BT_SET_CONT_STREAMING 0x04/** * Definitions for the Monitor Error Code.# * See page 2-47 of the TMS380 book */#define M_NO_ERROR 0x0000#define M_MON_ERROR 0x0001#define M_DUPLICATE_MON 0x0002#define M_DUPLICATE_ADDR 0x0003/* * Token Ring counters */struct trncount {F __u_long trn_second; /* seconds since last zeroed */> __u_long trn_bytercvd; /*  bytes received */: __u_long trn_bytesent; /* bytes sent */D __u_long trn_pdurcvd; /* data blocks received */@ __u_long trn_pdusent; /* data blocks sent */H __u_long trn_mbytercvd; /* multicast bytes received */B __u_long trn_mpdurcvd; /* multicast blocks received */D __u_long trn_mbytesent; /* multicast bytes sent */E __u_long trn_mpdusent; /* multicast blocks sent */3 __u_l ong trn_pduunrecog; /* frame unrecognized */> __u_long trn_mpduunrecog; /* multicast frame unrecognized */I __u_short trn_nosysbuf; /* system buffer unavailable */. __u_short trn_xmit_fail; /* xmit failures */2 __u_short trn_xmit_underrun; /* xmit underruns */4 __u_short trn_line_error; /* Line errors */@ __u_short trn_internal_error; /* recoverable internal errors */4 __u_short trn_burst_error; /* Burst error */8 __u_short trn_ari_fci_error; /* ARI/ FCI error */< __u_short trn_ad_trans; /* Abort delimiters transmitted */> __u_short trn_lost_frame_error; /* Lost frame error */P __u_short trn_rcv_congestion_error;/* receive overrun (or congestion) */B __u_short trn_frame_copied_error; /* Frame copied error */5 __u_short trn_frequency_error; /* Frequency error */4 __u_short trn_token_error; /* Token error */4 __u_short trn_hard_error; /* Hard errors */; __u_short trn_soft_error; /* Soft er rors */4 __u_short trn_adapter_reset; /* Resets performed */- __u_short trn_signal_loss; /* Signal loss */5 __u_short trn_xmit_beacon; /* Beacons transmitted */; __u_short trn_ring_recovery; /* Ring recoverys received */: __u_short trn_lobe_wire_fault; /* Lobe faults detected */5 __u_short trn_remove_received; /* Remove received */? __u_short trn_single_station; /* # of times host was single */> __u_short trn_selftest_fail; /* # of times selftest failed */};/* # * Token Ring RFC  1231 definitions. */struct dot5Entry { int dot5TrnNumber; int dot5IfIndex; int dot5Commands; int dot5RingStatus; int dot5RingState; int dot5RingOpenStatus; int dot5RingSpeed; __u_char dot5UpStream[6]; int dot5ActMonParticipate; __u_char dot5Functional[6];};/* Values for dot5Commands */#define MIB1231_COMM_NO_OP 1#define MIB1231_COMM_OPEN 2#define MIB1231_COMM_RESET 3#define MIB1231_COMM_CLOSE 4/* Values for dot5RingStat us */'#define MIB1231_RSTATUS_NO_PROB 0x00005#define MIB1231_RSTATUS_RING_RECOVERY 0x0020 /* 32 */6#define MIB1231_RSTATUS_SINGLE_STATION 0x0040 /* 64 */4#define MIB1231_RSTATUS_REMOVE_RCVD 0x0100 /* 256 */1#define MIB1231_RSTATUS_RESERVED 0x0200 /* 512 */8#define MIB1231_RSTATUS_AUTO_REM_ERROR 0x0400 /* 1024 */9#define MIB1231_RSTATUS_LOBE_WIRE_FAULT 0x0800 /* 2048 */9#define MIB1231_RSTATUS_TRANSMIT_BEACON 0x1000 /* 4096 */4#define MIB1231_RSTATUS_SOFT_ERROR 0x2000 /* 8192 */5#defin e MIB1231_RSTATUS_HARD_ERROR 0x4000 /* 16384 */6#define MIB1231_RSTATUS_SIGNAL_LOSS 0x8000 /* 32768 */6#define MIB1231_RSTATUS_NO_STATUS 0x20000 /* 131072 *//* Values for dot5RingState */!#define MIB1231_RSTATE_OPENED 1!#define MIB1231_RSTATE_CLOSED 2"#define MIB1231_RSTATE_OPENING 3"#define MIB1231_RSTATE_CLOSING 4&#define MIB1231_RSTATE_OPEN_FAILURE 5&#define MIB1231_RSTATE_RING_FAILURE 6/* Values for dot5RingStatus */"#define MIB1231_ROSTATUS_NOOPEN 1"#define MIB123 1_ROSTATUS_BADPARM 2%#define MIB1231_ROSTATUS_LOBEFAILED 3##define MIB1231_ROSTATUS_SIG_LOSS 4&#define MIB1231_ROSTATUS_INS_TIMEOUT 5&#define MIB1231_ROSTATUS_RING_FAILED 6$#define MIB1231_ROSTATUS_BEACONING 7(#define MIB1231_ROSTATUS_DUPLICATE_MAC 8%#define MIB1231_ROSTATUS_REQ_FAILED 9%#define MIB1231_ROSTATUS_REM_RECVD 10!#define MIB1231_ROSTATUS_OPEN 11/* Values for dot5RingSpeed */!#define MIB1231_RSPEED_UNKNOWN 1#define MIB1231_RSPEED_1_MEG 2#define MIB1231_RSPEED_4_MEG 3 #define MIB1231_RSPEED_16_MEG 4&/* Values for dot5ActMonParticipate */#define MIB1231_ACTMON_TRUE 1#define MIB1231_ACTMON_FALSE 2/* The statistics table */struct dot5StatsEntry { int dot5StatsIfIndex; int dot5StatsLineErrors; int dot5StatsBurstErrors; int dot5StatsACErrors;" int dot5StatsAbortTransErrors; int dot5StatsInternalErrors;! int dot5StatsLostFrameErrors;$ int dot5StatsReceiveCongestions;# int dot5StatsFrameCopiedErrors; int dot5StatsTokenErrors; int dot5StatsSoftErrors; int dot5StatsHardErrors; int dot5StatsSignalLoss;! int dot5StatsTransmitBeacons; int dot5StatsRecoverys; int dot5StatsLobeWires; int dot5StatsRemoves; int dot5StatsSingles; int dot5StatsFreqErrors;}; /* The timer table - optional */struct dot5TimerEntry { int dot5TimerIfIndex; int dot5TimerReturnRepeat; int dot5TimerHolding; int dot5TimerQueuePDU; int dot5TimerValidTransmit; int dot5TimerNoToken; int dot5TimerActiveMon; int dot5TimerStandbyMon; int dot5TimerErrorReport; int dot5TimerBeaconTransmit; int dot5TimerBeaconReceive;};/*%** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif$#pragma __member_alignment __restore #pragma __extern_model __restore#pragma __standard"#endif /* __IF_TRNSTAT_LOADED */wwHE\#ifndef __IF_TYPES_LOADED#define __IF_TYPES_LOADED 1M/******************************************************************************** - IANA types**M******************************************************************************* Header is nonstandardM*******************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Tra demark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N********************************************************************************?** Copyright (c) 1989 Regents of the University o f California.** All rights reserved.**L** Redistribution and use in source and binary forms are permitted providedJ** that: (1) source distributions retain this entire copyright notice andK** comment, and (2) distributions including binaries display the followingG** acknowledgement: ``This product includes software developed by theD** University of California, Berkeley and its contributors'' in theJ** documentation or other materials provided with the distribution and inJ** all advertising materials mentioning features or use of this software.L** Neither the name of the University nor the names of its contributors mayM** be used to endorse or promote products derived from this software without&** specific prior written permission.J** THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIEDH** WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF9** MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.***** Base: if_types.h 7.2 (Berkeley) 9/20/89,** Merged: if_types.h 7.3 (Berkeley) 6/28/90**N*******************************************************************************/#pragma __nostandard#include #ifdef __cplusplus extern "C" {#endif/*0 * latest IANA sanctioned types can be found at:4 * ftp.isi.edu/in-notes/iana/assignments/smi-numbers */B/* interface types for benefit of parsing media address headers */2#define IFT_OTHER 0x1 /* none of the following */1#define IFT_1822 0 x2 /* old-style arpanet imp */.#define IFT_HDH1822 0x3 /* HDH arpanet imp */(#define IFT_X25DDN 0x4 /* x25 to imp */-#define IFT_X25 0x5 /* PDN X25 interface */-#define IFT_ETHER 0x6 /* Ethernet I or II */'#define IFT_ISO88023 0x7 /* CMSA CD */)#define IFT_ISO88024 0x8 /* Token Bus */*#define IFT_ISO88025 0x9 /* Token Ring */##define IFT_ISO88026 0xa /* MAN */#define IFT_STARLAN 0xb/#define IFT_P10 0xc /* Proteon 10MBit ring *//#define IFT_P80 0xd /* Proteon 10MBit ring */'#define IFT_HY 0xe /* Hyperchannel */#define IFT_FDDI 0xf#define IFT_LAPB 0x10#define IFT_SDLC 0x11#define IFT_T1 0x12#define IFT_CEPT 0x13#define IFT_ISDNBASIC 0x14#define IFT_ISDNPRIMARY 0x15#define IFT_PTPSERIAL 0x164#define IFT_PPP 0x17 /* Point to Point Protocol*/ %#define IFT_LOOP 0x18 /* loopback */(#define IFT_EON 0x19 /* ISO over IP */A#define IFT_XETHER 0x1a /* obsolete 3MB experimental ethernet */(#define IFT_NSIP 0x1b /* XNS over IP */0#define IFT_SLIP 0x1c /* IP over generic TTY */&#define IFT_ULTRA 0x1d /* RFC 1213 */8#define IFT_DS3 0x1e /* DS3/E3 interface (RFC 1407) */,#define IFT_SIP 0x1f /* SMDS (RFC 1305) */:#define IFT_FRAMERELAY 0x20 /* Frame Relay (RFC 1315) */6#define IFT_RS232 0x21 /* RS232 Objects (RFC 1659) */<#define IFT_PARALLEL 0x22 /* Parallel Objects (RFC 1660) */*#define IFT_ARCNET 0x23 /* ARC network */4#define IFT_ARCNET_PLUS 0x24 /* ARC network plus */(#define IFT_ATM 0x25 /* ATM network *//#d efine IFT_MIO25 0x26 /* MIOX25 (RFC 1461) */(#define IFT_SONET 0x27 /* SONET/ SDH */8#define IFT_X25PLE 0x28 /* X.25 packet level (RFC 1382)<#define IFT_ISO88022LLC 0x29 /* 802 logical link Control */#define IFT_LOCALTALK 0x2a )#define IFT_SMDSDXI 0x2b /* SMDS DXI */ 3#define IFT_FRAMERELAYS 0x2c /* Frame Relay DCE */!#define IFT_V35 0x2d /* V.35 */!#define IFT_HSSI 0x2e /* HSSI */!#define IFT_HPPI 0x2f /* HPPI */-#define IFT_MODEM 0x30 /* "generic modem" */*#define IFT_ AAL5 0x31 /* AAl5 over ATM */#define IFT_SONETPATH 0x32 #define IFT_SOBETVI 0x33 B#define IFT_SMDSICIP 0x34 /* SMDS InterCarrier Interface proto */=#define IFT_PROPVIRT 0x35 /* Proprietary Virtual/Internal */ /* Interface */@#define IFT_PROPMULTI 0x36 /* Propietary muli-link interface */,#define IFT_IEEE80212 0x37 /* 100Base VG *//#define IFT_FIBRECHAN 0x38 /* Fibre Channel */.#define IFT_HPPI_I 0x39 /* HIPPI Interface */C#define IFT_FRAMEREALYI 0x3a /* Interconnect over F R (RFC 1490) */<#define IFT_LANE8023 0x3b /* ATM LAN Emulation for 802.3 */<#define IFT_LANE8025 0x3c /* ATM LAN Emulation for 802.5 */6#define IFT_ATMECIR 0x3d /* ATM Emulatated Circuit */:#define IFT_FASTETHER 0x3e /* Fast Ethernet (100BaseT) */9#define IFT_ISDNX25 0x3f /* ISDN over X.25 (RFC 1356) */,#define IFT_V11 0x40 /* CCITT V/11/X.21 */'#define IFT_V36 0x41 /* CCITT V.36 */3#define IFT_G70364K 0x42 /* CCITT G703 @ 64Kbps */2#define IFT_G7022MB 0x43 /* CCITT G703 @ 2Mbps */%#define IFT_QLLC 0x44 /* SNA QLLC */:/* non standard (non IANA) types start at 200 (decimal) */C#define IFT_WANDD 0xc8 /* Wide Area Network Device Driver */>#define IFT_RM 0xc9 /* Memory Channel (Reflective Memory) */7#define IFT_SYNC 0xca /* Synchronous communications */#ifdef __cplusplus }#endif#pragma __standard#endif /* __IF_LOADED */wwwHE\#ifndef __IN_LOADED#define __IN_LOADED 1M/********************************************* *********************************%** - Internet protocol family**M*****************************************************************************I** Header introduced by the X/Open CAE Specification, Issue 4, Version 2M*******************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid licens e from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N********************************************************************************?** Copyright (c) 1982 Regents of the University of California.A** All rights reserved. The Berkeley software License Agreement:** specifies the terms and conditions for redistribution.**.** in.h 6.5 (Berkeley) 6/8/85**N*******************************************************************************/#pragma __nostandard#include #ifdef __cplusplus extern "C" {#endif/*I** The OpenVMS V7.0 release added a second implementation of the socket F** functions which is compatible with BSD 4.4. Define a local to be C** used throughout the remaining he ader file which reflects which !** implementation is being used.**I** An application program enables this support by defining _SOCKADDR_LEN(** prior to including this header file.*/#ifdef _SOCKADDR_LEN# if (__CRTL_VER < 70000000)H# error " BSD 4.4 Socket package not available before OpenVMS V7.0"# undef _SOCKADDR_LEN # endif#endif/*E** All includes of other header files must be done prior to alteringC** the pointer size mode. We include socket.h becaus!e we need the%** sa_family_t typedef for Spec1170.*/#include %#if !defined (_XOPEN_SOURCE_EXTENDED)# include #endif/*.** Start processing in 32-bit addressing mode*/#if __INITIAL_POINTER_SIZE # pragma __pointer_size __save# pragma __pointer_size 32#endif/*A** All structures should be member aligned on natural boundaries*/!#pragma __member_alignment __save#pragma __member_alignment/* ** Define XPG4 IP typedefs*/4#if !d"efined __IN_PORT_T && !defined _DECC_V4_SOURCE# define __IN_PORT_T 1" typedef __in_port_t in_port_t;#endif5#if !defined __IN_ADDR_T && !defined _DECC_V4_SOURCE# define __IN_ADDR_T 1" typedef __in_addr_t in_addr_t;#endif6#if !defined __SA_FAMILY_T && !defined _DECC_V4_SOURCE# define __SA_FAMILY_T 1& typedef __sa_family_t sa_family_t;#endif/*:** Internet address (a structure for historical reasons).;** The address format can be any of the supported Internet#?** address notations. See the DEC TCP/IP Services for OpenVMS6** System Management manual for more information on ** Internet address notations.*/#ifndef __IN_ADDR# define __IN_ADDR 1 struct in_addr { union {A struct { unsigned char s_b1,s_b2,s_b3,s_b4; } S_un_b;8 struct { unsigned short s_w1,s_w2; } S_un_w;! unsigned long S_addr;#ifdef _XOPEN_SOURCE_EXTENDED& __in_addr_t S_addr_xopen;#endif } S_un;$};#ifdef _XOPEN_SOURCE_EXTENDEDB# define s_addr S_un.S_addr_xopen /* X/Open version of s_addr */#elseL# define s_addr S_un.S_addr /* can be used for most tcp & ip code */#endif6# define s_host S_un.S_un_b.s_b2 /* host on imp */6# define s_net S_un.S_un_b.s_b1 /* network */6# define s_imp S_un.S_un_w.s_w2 /* imp */6# define s_impno S_un.S_un_b.s_b4 /* imp # */6# define s_lh S_un.S_un_b.s_b3 /* logical host */#endif/*2 * Buffe%r size to hold IPv4 address as text string */#define INET_ADDRSTRLEN 20/*; * Constants and structures defined by the internet system, * Per RFC 790, September 1981. *//* * Protocols */)#define IPPROTO_IP 0 /* dummy for IP */7#define IPPROTO_ICMP 1 /* control message protocol */2#define IPPROTO_IGMP 2 /* group mgmt protocol */4#define IPPROTO_GGP 3 /* gateway^2 (deprecated) */B#define IPPROTO_IPIP 4 /* IP inside IP */8#define IPPROTO_ &IPV4 IPPROTO_IPIP /* IPv4 (tunneled) */!#define IPPROTO_TCP 6 /* tcp */7#define IPPROTO_EGP 8 /* exterior gateway protocol */"#define IPPROTO_PUP 12 /* pup */5#define IPPROTO_UDP 17 /* user datagram protocol */&#define IPPROTO_IDP 22 /* xns idp */8#define IPPROTO_TP 29 /* tp-4 w/ class negotiation */P#define IPPROTO_RSVP 46 /* resource reservation proto */'#define IPPROTO_EON 80 /* ISO cnlp */-#define IPPROTO_RAW 255 /* raw IP packet */#defin'e IPPROTO_MAX 256/*! * Local port number conventions:+ * Ports < IPPORT_RESERVED are reserved for$ * privileged processes (e.g. root).+ * Ports > IPPORT_USERRESERVED are reserved+ * for servers, not necessarily privileged. */#define IPPORT_RESERVED 1024 #define IPPORT_USERRESERVED 5000./* From Sun 4.1 sources, needed for SUN rpc */%#define IPPORT_TIMESERVER 37/*** Link numbers*/#define IMPLINK_IP 155#define IMPLINK_LOWEXPER 156#define IMPL (INK_HIGHEXPER 158/*9** Macros for subnetworks. A subnet is distinguished by**=** (1) the network number is a `local' network number, and;** (2) the most significant bit of the host part is set.**I** Such addresses include one additional byte in the network number, andK** use one less byte in the host part (i.e., a subnet of a Class A networkK** uses the rules for Class B net/host number extraction, a Class B subnetH** is dealt with as if it were a Class C net). Subne)ts of Class C nets** are not supported.*/E#define SUBNETSHIFT 8 /* used to get main net number from subnet */B#define IN_SUBNETA(i) ((((long)(i))&0x80800000)==0x00800000)&#define IN_CLASSA_SUBNET 0xffff0000<#define IN_CLASSA_SUBNSHIFT (IN_CLASSA_NSHIFT - SUBNETSHIFT)&#define IN_CLASSA_SUBHOST 0x0000ffffB#define IN_SUBNETB(i) ((((long)(i))&0xc0008000)==0x80008000)&#define IN_CLASSB_SUBNET 0xffffff00<#define IN_CLASSB_SUBNSHIFT (IN_CLASSB_NSHIFT - SUBNETSHIFT)&#d*efine IN_CLASSA_SUBHOST 0x0000ffff&#define IN_CLASSB_SUBHOST 0x000000ff/*4 * Definitions of bits in internet address integers.C * On subnets, the decomposition of addresses to host and net parts8 * is done according to subnet mask, not the masks here. */4#define IN_CLASSA(i) (((int)(i) & 0x80000000) == 0)!#define IN_CLASSA_NET 0xff000000#define IN_CLASSA_NSHIFT 24"#define IN_CLASSA_HOST 0x00ffffff#define IN_CLASSA_MAX 128=#define IN_CLASSB(i) (((int)(i) & 0xc0000000) =+= 0x80000000)!#define IN_CLASSB_NET 0xffff0000#define IN_CLASSB_NSHIFT 16"#define IN_CLASSB_HOST 0x0000ffff#define IN_CLASSB_MAX 65536=#define IN_CLASSC(i) (((int)(i) & 0xe0000000) == 0xc0000000)!#define IN_CLASSC_NET 0xffffff00#define IN_CLASSC_NSHIFT 8"#define IN_CLASSC_HOST 0x000000ff=#define IN_CLASSD(i) (((int)(i) & 0xf0000000) == 0xe0000000)@#define IN_CLASSD_NET 0xf0000000 /* These ones aren't really */;#define IN_CLASSD_NSHIFT 28 /* net and host fields, but */ ,?#define IN_CLASSD_HOST 0x0fffffff /* routing needn't know. */%#define IN_MULTICAST(i) IN_CLASSD(i)B#define IN_EXPERIMENTAL(i) (((int)(i) & 0xe0000000) == 0xe0000000)?#define IN_BADCLASS(i) (((int)(i) & 0xf0000000) == 0xf0000000),#define INADDR_ANY (unsigned int)0x00000000F#define INADDR_BROADCAST (unsigned int)0xffffffff /* must be masked */8#define INADDR_LOOPBACK (unsigned int)0x7F000001F#define INADDR_UNSPEC_GROUP (unsigned int)0xe0000000 /* 224.0.0.0 */H#define IN-ADDR_ALLHOSTS_GROUP (unsigned int)0xe0000001 /* 224.0.0.1 */I#define INADDR_MAX_LOCAL_GROUP (unsigned int)0xe00000ff /* 224.0.0.255 */0#define INADDR_NONE 0xffffffff /* -1 return */-#define IN_LOOPBACKNET 127 /* official! *//*" * Socket address, internet style. */#if defined(_SOCKADDR_LEN) || \" defined(_XOPEN_SOURCE_EXTENDED)struct sockaddr_in { unsigned char sin_len;: __sa_family_t sin_family; /* New typedef for Spec 1170 */6 __in_port_t sin_port; /* New typedef .for Spec 1170 */ struct in_addr sin_addr;#ifdef _XOPEN_SOURCE_EXTENDED; unsigned char sin_zero[8]; /* Changed type from char to */& /* unsigned char for Spec 1170 */#else char sin_zero[8];#endif};#elsestruct sockaddr_in { unsigned short sin_family; unsigned short sin_port; struct in_addr sin_addr; char sin_zero[8];};#endif/* ** DEC C extensions** N** caddr_t was here in previous versions and so is retained for compatibility*/ M#if !defined __C/ADDR_T && !defined CADDR_T && !defined _XOPEN_SOURCE_EXTENDED# define __CADDR_T 1!# ifndef __HIDE_FORBIDDEN_NAMES# define CADDR_T 1 # endif typedef __caddr_t caddr_t;# endif/*) * Structure used to describe IP options.? * Used to store options internally, to pass them to a process,+ * or to restore options retrieved earlier.I * The ip_dst is used for the first-hop gateway when using a source route* * (this gets put into the header proper). */struct ip_op0ts {6 struct in_addr ip_dst; /* first hop, 0 w/o src rt */#if defined(__cplusplus)E char Ip_opts[40]; /* cannot have same name as class */#else3 char ip_opts[40]; /* actually variable in size */#endif};/*6 * Options for use with [gs]etsockopt at the IP level.= * First word of comment is data type; bool is stored in int. */E#define IP_OPTIONS 1 /* buf/ip_opts; set/get IP per-packet options */B#define IP_HDRINCL 2 /* int; header is included with data (raw) */>1#define IP_TOS 3 /* int; IP type of service and precedence */,#define IP_TTL 4 /* int; IP time to live */C#define IP_RECVOPTS 5 /* bool; receive all IP options w/datagram */D#define IP_RECVRETOPTS 6 /* bool; receive IP options for response */C#define IP_RECVDSTADDR 7 /* bool; receive IP dst addr w/datagram */A#define IP_RETOPTS 8 /* ip_opts; set/get IP per-packet options */B#define IP_MULTICAST_IF 9 /* in_addr; IP multicast interface */C#define IP_MULTICAST_TTL 10 /* u_char; IP multic2ast timetolive */A#define IP_MULTICAST_LOOP 11 /* u_char; IP multicast loopback */H#define IP_ADD_MEMBERSHIP 12 /* ip_mreq; add an IP group membership */H#define IP_DROP_MEMBERSHIP 13 /* ip_mreq; drop an IP group membership */E#define IP_MULTICAST_VIF 14 /* set/get IP mcast vir. interface */E#define IP_RSVP_ON 15 /* set rsvp var. in kernel */E#define IP_RSVP_OFF 16 /* unset rsvp var in kernel */E#define IP_RSVP_VIF_ON 17 /* set rsvp per-vif so 3cket */E#define IP_RSVP_VIF_OFF 18 /* unset rsvp per-vif socket */?#define IP_PROXY 19 /* bool; allow proxy packet reception */,/* IP_FLOWLABEL 20 defined in in6.h */(/* IP_RXHDR 21 defined in in6.h */N#define IP_DONT_FRAGMENT 22 /* bool; don't fragment, return error instead */K#define IP_PMTU_DISCOVERY 23 /* bool; participate in path mtu discovery */C#define IP_FRAG_TO_PMTU 24 /* bool; fragment to path mtu size */M#define IP_TXINTERFACE 25 /* u_4int; xmit interface index (experimental) */K#define IP_DEFAULT_MULTICAST_TTL 1 /* normally limit m'casts to 1 hop */K#define IP_DEFAULT_MULTICAST_LOOP 1 /* normally hear sends if a member */1#define IP_MAX_MEMBERSHIPS 20 /* per socket *//*C * Argument structure for IP_ADD_MEMBERSHIP and IP_DROP_MEMBERSHIP. */struct ip_mreq {B struct in_addr imr_multiaddr; /* IP multicast address of group */B struct in_addr imr_interface; /* local IP address of interface */};/* * P5rotocol specific route flags */@#define RTF_PMTU RTF_PROTO4 /* rmx_mtu set by pmtu discovery */@#define RTF_NOPMTUDISC RTF_PROTO5 /* pmtu discovery disabled */L#define RTF_NOFRAGTOPMTU RTF_PROTO6 /* fragment to pmtu size disabled */L#define RTF_LOOPBACK RTF_PROTO7 /* send packets over loopback device */:/* included to get decls for ntohs, htons, ntohl, htonl */ /*4 ** Macros for number representation conversion. */$ __in_addr_t htonl (__in_addr_t);$ __in_p6ort_t htons (__in_port_t);$ __in_addr_t ntohl (__in_addr_t);$ __in_port_t ntohs (__in_port_t);#include /*%** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif$#pragma __member_alignment __restore#pragma __standard#endif /* __IN_LOADED */wwWHE\#ifndef __IN6_LOADED#define __IN6_LOADED 1M/************************************************************* 7*****************)** - Internet V6 protocol family**M*****************************************************************************I** Header introduced by the X/Open CAE Specification, Issue 4, Version 2M*******************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compa 8q required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N********************************************************************************?** Copyright (c) 1982 Regents of the University of California.A** All rights reserved. The Berkeley software License Agreemen9t:** specifies the terms and conditions for redistribution.**/** in6.h 6.5 (Berkeley) 6/8/85**N*******************************************************************************/#pragma __nostandard#include #ifdef __cplusplus extern "C" {#endif/*H** The OpenVMS V7.0 release added a second implementation of the socketE** functions which is compatible with BSD 4.4. Define a local to beB** used throughout the remaining header file wh:ich reflects which!** implementation is being used.**I** An application program enables this support by defining _SOCKADDR_LEN(** prior to including this header file.*/#ifdef _SOCKADDR_LEN# if (__CRTL_VER < 70000000)H# error " BSD 4.4 Socket package not available before OpenVMS V7.0"# undef _SOCKADDR_LEN # endif#endif/*I** All includes of other header files must be done prior to altering the** pointer size mode.*/#include %#if !defined (_X;OPEN_SOURCE_EXTENDED)# include #endif#include #include /*.** Start processing in 32-bit addressing mode*/#if __INITIAL_POINTER_SIZE # pragma __pointer_size __save# pragma __pointer_size 32#endif/*A** All structures should be member aligned on natural boundaries*/!#pragma __member_alignment __save#pragma __member_alignment/*** Define XPG4 IP typedefs*/4#if !defined __IN_PORT_T && !defined _DECC_V4_SOURCE# <define __IN_PORT_T 1" typedef __in_port_t in_port_t;#endif5#if !defined __IN_ADDR_T && !defined _DECC_V4_SOURCE# define __IN_ADDR_T 1" typedef __in_addr_t in_addr_t;#endif6#if !defined __SA_FAMILY_T && !defined _DECC_V4_SOURCE# define __SA_FAMILY_T 1& typedef __sa_family_t sa_family_t;#endif/* * IPv6 protocols */4#define IPPROTO_HOPOPTS 0 /* Hop-by-hop options */4#define IPPROTO_IPV6 41 /* IPv6 header */0#define IPPROTO_ROUTING 43 /* Routi=ng header */6#define IPPROTO_FRAGMENT 44 /* Fragmentation header */5#define IPPROTO_ESP 50 /* Encap. security payload */2#define IPPROTO_AH 51 /* Authentication header */#define IPPROTO_ICMPV6 58#define IPPROTO_NONE 599#define IPPROTO_DSTOPTS 60 /* Destination Node header *//*! * Interface token lengths (bits) */%#define IPV6_LOOPBACK_TOKEN_LENGTH 0%#define IPV6_ETHERNET_TOKEN_LENGTH 64"#define IPV6_FDDI_TOKEN_LENGTH 64"#define IPV6_IPV4_TOKEN_LENGTH 48/*7 * Def >ine the extra set/getsockopts for the IPv6 level. */E#define IP_FLOWLABEL 20 /* int; flow label in net byte order */@#define IP_RXHDR 21 /* int; include rx info in raw recv */J#define IPV6_FLOWINFO_FLOWLABEL IN6__MK3_MSB32_VALUE(0, 0xFF, 0xFF, 0xFF):#define IPV6_FLOWINFO_PRIORITY IN6__MK0_MSB32_VALUE(0x0F)8#define IPV6_FLOWINFO_SRFLAG IN6__MK0_MSB32_VALUE(0x30)4#define IPV6_SRFLAG_NONE IN6__MK0_MSB32_VALUE(0x00)6#define IPV6_SRFLAG_STRICT IN6__MK0_MSB32_VALUE(0x10)5#def ?ine IPV6_SRFLAG_LOOSE IN6__MK0_MSB32_VALUE(0x20)@#define IPV6_PRIORITY_UNCHARACTERIZED IN6__MK0_MSB32_VALUE(0x00)8#define IPV6_PRIORITY_FILLER IN6__MK0_MSB32_VALUE(0x01);#define IPV6_PRIORITY_UNATTENDED IN6__MK0_MSB32_VALUE(0x02);#define IPV6_PRIORITY_RESERVED1 IN6__MK0_MSB32_VALUE(0x03)6#define IPV6_PRIORITY_BULK IN6__MK0_MSB32_VALUE(0x04);#define IPV6_PRIORITY_RESERVED2 IN6__MK0_MSB32_VALUE(0x05)<#define IPV6_PRIORITY_INTERACTIVE IN6__MK0_MSB32_VALUE(0x06)9#define IPV6_PRIORITY_CO @NTROL IN6__MK0_MSB32_VALUE(0x07)4#define IPV6_PRIORITY_8 IN6__MK0_MSB32_VALUE(0x08)4#define IPV6_PRIORITY_9 IN6__MK0_MSB32_VALUE(0x09)4#define IPV6_PRIORITY_10 IN6__MK0_MSB32_VALUE(0x0A)4#define IPV6_PRIORITY_11 IN6__MK0_MSB32_VALUE(0x0B)4#define IPV6_PRIORITY_12 IN6__MK0_MSB32_VALUE(0x0C)4#define IPV6_PRIORITY_13 IN6__MK0_MSB32_VALUE(0x0D)4#define IPV6_PRIORITY_14 IN6__MK0_MSB32_VALUE(0x0E)4#define IPV6_PRIORITY_15 IN6__MK0_MSB32_VALUE(0x0F)/* * IPv6 level socket options * A/9#define IPV6_ADDRFORM 100 /* int; AF_INET or AF_INET6 */#define IPV6_RECVSRCRT 101#define IPV6_RECVIF 102#define IPV6_SENDIF 103B#define IPV6_UNICAST_HOPS 104 /* int; unicast hoplimit (0..255) */F#define IPV6_MULTICAST_HOPS 105 /* int; multicast hoplimit (0..255) */;#define IPV6_MULTICAST_IF 106 /* u_int; mcast interface */ H#define IPV6_MULTICAST_LOOP 107 /* u_int; recv own multicast (0 or 1) */B#define IPV6_ADD_MEMBERSHIP 108 /* struct ipv6_mreq; join group */D#define IPV6_DROBP_MEMBERSHIP 109 /* struct ipv6_mreq; leave group */4#define IPV6_RXINFO 110 /* int; recv ip6_pktinfo */H#define IPV6_DEFAULT_UNICAST_HOPLIMIT 64 /* default unicast hop limit */K#define IPV6_DEFAULT_MULTICAST_HOPS 1 /* normally limit mcasts to 1 hop */L#define IPV6_DEFAULT_MULTICAST_LOOP 1 /* normally hear sends if a member */1#define IPV6_MAX_MEMBERSHIPS 20 /* per socket */#define IPV6_SR_MAXADDR 24/* * Define the IPv6 address. */struct in6_addr { union { u_iCnt8_t sa6_addr[16];#define s6_addr s6_un.sa6_addr u_int16_t sa6_waddr[8]; #define s6_waddr s6_un.sa6_waddr u_int32_t sa6_laddr[4]; #define s6_laddr s6_un.sa6_laddr#ifdef IN6_HAS_64BIT_INTTYPE u_int64_t sa6_qaddr[2]; #define s6_qaddr s6_un.sa6_qaddr#endif } s6_un;};/*0 * Maximum length of IPv6 address as text string */#define INET6_ADDRSTRLEN 46/*4 * Structure for add/drop multicast group membership */struct ipv6_mreq {B struct in6_addr ipv6mr_multiDaddr; /* IPv6 multicast address */7 unsigned int ipv6mr_interface; /* inteface index */};/*1 * Define the macros to manipulate IPv6 addresses */#ifdef IN6_HAS_64BIT_INTTYPEK#define IN6_ARE_ADDR_EQUAL(a,b) ((a)->s6_qaddr[1] == (b)->s6_qaddr[1] && \+ (a)->s6_qaddr[0] == (b)->s6_qaddr[0])f#define IN6_ARE_ADDR_SAMEPREFIX(a,b,m) (((a)->s6_qaddr[0] & (m)->s6_qaddr[0]) == (b)->s6_qaddr[0] && \@ ((a)->s6_qaddr[1] & (m)->s6_qaddr[1]) == (b)->s6_qaddr[1])P#define IN6_IS_ADDER_HOSTMASK(a) (((a)->s6_qaddr[0] & (a)->s6_qaddr[1]) == ~0UL)>#define IN6_IS_ADDR_LOOPBACK(a) ((a)->s6_qaddr[0] == 0UL && \@ (a)->s6_qaddr[1] == IN6__MK7_MSB64_VALUE(0,0,0,0,0,0,0,1))Q#define IN6_IS_ADDR_UNSPECIFIED(a) (((a)->s6_qaddr[0] | (a)->s6_qaddr[1]) == 0UL)S#define IN6_IS_ADDR_V4COMPAT(a) ((a)->s6_qaddr[0] == 0UL && (a)->s6_laddr[2] == 0)>#define IN6_IS_ADDR_V4MAPPED(a) ((a)->s6_qaddr[0] == 0UL && \; (a)->s6_laddr[2] == IN6__MK1_MSW32_VALUE(0, 0xFFFFU))O#define IN6_SET_FADDR_HOSTMASK(a) ((a)->s6_qaddr[1] = ((a)->s6_qaddr[0] = ~0UL));#define IN6_SET_ADDR_LOOPBACK(a) ((a)->s6_qaddr[0] = 0UL, \? (a)->s6_qaddr[1] = IN6__MK7_MSB64_VALUE(0,0,0,0,0,0,0,1))]#define IN6_SET_ADDR_PREFIX(a,b,c) ((a)->s6_qaddr[0] = (b)->s6_qaddr[0] & (c)->s6_qaddr[0], \= (a)->s6_qaddr[1] = (b)->s6_qaddr[1] & (c)->s6_qaddr[1])Q#define IN6_SET_ADDR_UNSPECIFIED(a) ((a)->s6_qaddr[1] = ((a)->s6_qaddr[0] = 0UL));#define IN6_SET_ADDR_V4MAPPED(a,b) ((a)->s6_qaddr[0] = 0, \< G(a)->s6_laddr[2] = IN6__MK1_MSW32_VALUE(0, 0xFFFFU), \ (a)->s6_laddr[3] = (b));#define IN6_SET_ADDR_V4COMPAT(a,b) ((a)->s6_qaddr[0] = 0, \ (a)->s6_laddr[2] = 0, \ (a)->s6_laddr[3] = (b))\#define IN6_SET_LINKLOCAL_NETMASK(a) ((a)->s6_qaddr[0] = IN6__MK1_MSB64_VALUE(0xFF, 0xC0), \ (a)->s6_qaddr[1] = 0UL):#define IN6_JOIN_PREFIX_TOKEN(a,p,t) ((a)->s6_qaddr[0] = \- (p)->s6_qaddr[0] | (t)->s6_qaddr[0], \ (a)->s6_qaddr[1] = \+ (p)->s6_qaddr[1] | (t)- H>s6_qaddr[1])#elseK#define IN6_ARE_ADDR_EQUAL(a,b) ((a)->s6_laddr[3] == (b)->s6_laddr[3] && \/ (a)->s6_laddr[0] == (b)->s6_laddr[0] && \/ (a)->s6_laddr[2] == (b)->s6_laddr[2] && \+ (a)->s6_laddr[1] == (b)->s6_laddr[1])f#define IN6_ARE_ADDR_SAMEPREFIX(a,b,m) (((a)->s6_laddr[0] & (m)->s6_laddr[0]) == (b)->s6_laddr[0] && \D ((a)->s6_laddr[1] & (m)->s6_laddr[1]) == (b)->s6_laddr[1] && \D ((a)->s6_laddr[2] & (m)->s6_laddr[2]) == (b)->s6_laddr[2] && \@ ((a)->s6 I_laddr[3] & (m)->s6_laddr[3]) == (b)->s6_laddr[3])?#define IN6_IS_ADDR_HOSTMASK(a) ((a)->s6_laddr[3] == ~0UL && \# (a)->s6_laddr[0] == ~0UL && \# (a)->s6_laddr[2] == ~0UL && \ (a)->s6_laddr[1] == ~0UL)>#define IN6_IS_ADDR_LOOPBACK(a) ((a)->s6_laddr[0] == 0UL && \" (a)->s6_laddr[1] == 0UL && \" (a)->s6_laddr[2] == 0UL && \8 (a)->s6_laddr[3] == IN6__MK3_MSB32_VALUE(0,0,0,1))@#define IN6_IS_ADDR_UNSPECIFIED(a) ((a)->s6_laddr[3] == 0UL && \" (a)->s6_ladd Jr[0] == 0UL && \" (a)->s6_laddr[2] == 0UL && \ (a)->s6_laddr[1] == 0UL)>#define IN6_IS_ADDR_V4COMPAT(a) ((a)->s6_laddr[0] == 0UL && \" (a)->s6_laddr[1] == 0UL && \ (a)->s6_laddr[2] == 0UL)>#define IN6_IS_ADDR_V4MAPPED(a) ((a)->s6_laddr[0] == 0UL && \" (a)->s6_laddr[1] == 0UL && \; (a)->s6_laddr[2] == IN6__MK1_MSW32_VALUE(0, 0xFFFFU))y#define IN6_SET_ADDR_HOSTMASK(a) ((a)->s6_laddr[3] = ((a)->s6_laddr[2] = ((a)->s6_laddr[1] = ((a)->s6_laddr[0] = ~0UL))))e#dKefine IN6_SET_ADDR_LOOPBACK(a) ((a)->s6_laddr[0] = ((a)->s6_laddr[1] = ((a)->s6_laddr[2] = 0UL)), \7 (a)->s6_laddr[3] = IN6__MK3_MSB32_VALUE(0,0,0,1))]#define IN6_SET_ADDR_PREFIX(a,b,c) ((a)->s6_laddr[0] = (b)->s6_laddr[0] & (c)->s6_laddr[0], \? (a)->s6_laddr[1] = (b)->s6_laddr[1] & (c)->s6_laddr[1], \? (a)->s6_laddr[2] = (b)->s6_laddr[2] & (c)->s6_laddr[2], \= (a)->s6_laddr[3] = (b)->s6_laddr[3] & (c)->s6_laddr[3]){#define IN6_SET_ADDR_UNSPECIFIED(a) ((a)->s6_laddr[3] L= ((a)->s6_laddr[2] = ((a)->s6_laddr[1] = ((a)->s6_laddr[0] = 0UL))))Q#define IN6_SET_ADDR_V4MAPPED(a,b) ((a)->s6_laddr[0] = 0, (a)->s6_laddr[1] = 0, \< (a)->s6_laddr[2] = IN6__MK1_MSW32_VALUE(0, 0xFFFFU), \ (a)->s6_laddr[3] = (b))Q#define IN6_SET_ADDR_V4COMPAT(a,b) ((a)->s6_laddr[0] = 0, (a)->s6_laddr[1] = 0, \ (a)->s6_laddr[2] = 0, \ (a)->s6_laddr[3] = (b))\#define IN6_SET_LINKLOCAL_NETMASK(a) ((a)->s6_laddr[0] = IN6__MK1_MSB32_VALUE(0xFF, 0xC0), \ (a)->s6_Mladdr[1] = 0, \ (a)->s6_laddr[2] = 0, \ (a)->s6_laddr[3] = 0):#define IN6_JOIN_PREFIX_TOKEN(a,p,t) ((a)->s6_laddr[0] = \- (p)->s6_laddr[0] | (t)->s6_laddr[0], \ (a)->s6_laddr[1] = \- (p)->s6_laddr[1] | (t)->s6_laddr[1], \ (a)->s6_laddr[2] = \- (p)->s6_laddr[2] | (t)->s6_laddr[2], \ (a)->s6_laddr[3] = \+ (p)->s6_laddr[3] | (t)->s6_laddr[3])#endif1#define IN6_EXTRACT_V4ADDR(a) ((a)->s6_laddr[3])|#define IN6_IS_ADDR_LINKLOCAL(Na) (((a)->s6_laddr[0] & IN6__MK1_MSB32_VALUE(0xFF, 0xC0)) == IN6__MK1_MSB32_VALUE(0xFE, 0x80))|#define IN6_IS_ADDR_SITELOCAL(a) (((a)->s6_laddr[0] & IN6__MK1_MSB32_VALUE(0xFF, 0xC0)) == IN6__MK1_MSB32_VALUE(0xFE, 0xC0))p#define IN6_IS_ADDR_MULTICAST(a) (((a)->s6_laddr[0] & IN6__MK0_MSB32_VALUE(0xFF)) == IN6__MK0_MSB32_VALUE(0xFF))#define IN6_IS_ADDR_MC_NODELOCAL(a) (((a)->s6_laddr[0] & IN6__MK1_MSB32_VALUE(0xFF, 0x0F)) == IN6__MK1_MSB32_VALUE(0xFF, IN6_MCSCOPE_NODELOCAL))#define IN6_IS_ADDR_MC_LOINKLOCAL(a) (((a)->s6_laddr[0] & IN6__MK1_MSB32_VALUE(0xFF, 0x0F)) == IN6__MK1_MSB32_VALUE(0xFF, IN6_MCSCOPE_LINKLOCAL))#define IN6_IS_ADDR_MC_SITELOCAL(a) (((a)->s6_laddr[0] & IN6__MK1_MSB32_VALUE(0xFF, 0x0F)) == IN6__MK1_MSB32_VALUE(0xFF, IN6_MCSCOPE_SITELOCAL))#define IN6_IS_ADDR_MC_ORGLOCAL(a) (((a)->s6_laddr[0] & IN6__MK1_MSB32_VALUE(0xFF, 0x0F)) == IN6__MK1_MSB32_VALUE(0xFF, IN6_MCSCOPE_ORGLOCAL))#define IN6_IS_ADDR_MC_GLOBAL(a) (((a)->s6_laddr[0] & IN6__MK1_MSB32_VALUE(0xFF, 0x0F)) == IN6P__MK1_MSB32_VALUE(0xFF, IN6_MCSCOPE_GLOBAL))[#define IN6_SET_LINKLOCAL_PREFIX(a) ((a)->s6_laddr[0] = IN6__MK1_MSB32_VALUE(0xFE, 0x80), \E (a)->s6_laddr[1] = ((a)->s6_laddr[2] = ((a)->s6_laddr[3] = 0)))-#define IPV6ADDR_LINKLOCAL_ALL_NODES_INIT { \% 0xFF, IN6_MCSCOPE_LINKLOCAL, 0, 0, \ 0, 0, 0, 0, \ 0, 0, 0, 0, \ 0, 0, 0, 1 \ }/#define IPV6ADDR_LINKLOCAL_ALL_ROUTERS_INIT { \% 0xFF, IN6_MCSCOPE_LINKLOCAL, 0, 0, \ 0, 0, 0, 0, \ 0, 0, 0, 0, \ 0, 0, 0, 2 \ }Q)extern const struct in6_addr in6addr_any;#define IN6ADDR_ANY_INIT { \ 0, 0, 0, 0, \ 0, 0, 0, 0, \ 0, 0, 0, 0, \ 0, 0, 0, 0 \ }.extern const struct in6_addr in6addr_loopback;!#define IN6ADDR_LOOPBACK_INIT { \ 0, 0, 0, 0, \ 0, 0, 0, 0, \ 0, 0, 0, 0, \ 0, 0, 0, 1 \ }/* * IPv6 multicast scope. */"#define IN6_MCSCOPE_NODELOCAL 0x01"#define IN6_MCSCOPE_LINKLOCAL 0x02"#define IN6_MCSCOPE_SITELOCAL 0x05!#define IN6_MCSCOPE_ORGLOCAL 0x08#define IN6_MCRSCOPE_GLOBAL 0x0E!#define IN6_MCFLAG_PERMANENT 0x00!#define IN6_MCFLAG_TRANSIENT 0x10#ifdef IN6_HAS_64BIT_INTTYPE/#define IN6_SET_MULTICAST_CLASS(addrp, class) \I ((void) (*(u_int64_t *) (addrp) = IN6__MK1_MSB64_VALUE(0xFF, class)))#else/#define IN6_SET_MULTICAST_CLASS(addrp, class) \a ((void) ((addrp)->s6_laddr[0] = IN6__MK1_MSB32_VALUE(0xFF, class), (addrp)->s6_laddr[1] = 0))#endif/* forward decls for C++ */#ifdef __cplusplusstruct rtentry;#endif/*% *S Define the socket address for IPv6 */struct sockaddr_in6 {#if defined(_SOCKADDR_LEN)#define SIN6_LEN5 u_char sin6_len; /* length of this struct */* u_char sin6_family; /* AF_INET6 */#else. u_int16m_t sin6_family; /* AF_INET6 */#endif; u_int16m_t sin6_port; /* Transport layer port # */= u_int32m_t sin6_flowinfo; /* IPv6 flow information */2 struct in6_addr sin6_addr; /* IPv6 address */};/*@ * Define the route structure templaTte. This is required becauseC * the standard route structure uses a sockaddr structure, which is1 * no longer large enough to hold IPv6 addresses.F * XXX This can be removed if the route structure becomes large enough */struct ip6route { struct rtentry *ro_rt; struct sockaddr_in6 ro_dst;};/*E * Define the structure used for interface ioctls with IPv6 addresses */#ifdef IFNAMSIZstruct ip6ifreq {: char ifr6_name[IFNAMSIZ]; /* i/f name, e.g. "ln0" */ unUion {/ struct sockaddr un_addr; /* address */2 struct sockaddr_in un_addr4; /* address */3 struct sockaddr_in6 un_addr6; /* address */ struct {/ caddr_t un_data; /* generic pointer... */1 size_t un_datalen; /* generic pointer... */ } un_1; struct {9 int un_value; /* generic value... */% int un_code; /* generic ... */ } un_2; struct {B struct in_addr un_tdst4; /* tunnel dst IPv4 address */B struVct in_addr un_tsrc4; /* tunnel src IPv4 address */ } un_3; } ifr6_un;!#define ifr6_addr ifr6_un.un_addr##define ifr6_addr4 ifr6_un.un_addr4##define ifr6_addr6 ifr6_un.un_addr6&#define ifr6_data ifr6_un.un_1.un_data,#define ifr6_datalen ifr6_un.un_1.un_datalen(#define ifr6_value ifr6_un.un_2.un_value&#define ifr6_code ifr6_un.un_2.un_code(#define ifr6_tdst4 ifr6_un.un_3.un_tdst4(#define ifr6_tsrc4 ifr6_un.un_3.un_tsrc4 unsigned ifr6_flags; /* */G#define IFR6_NODAD 0x0001U / W* suppress duplicate address detection */@#define IFR6_ADDTOKEN 0x0002U /* add token to end of prefix */#define IFR6_DADFAILED 0x0004U"#define IFR6_DADINPROGRESS 0x0008U #define IFR6_DEPRECATED 0x0010U1#define IFR6_V4TUNNEL 0x0020U /* IPv4 tunnel */#ifdef IPV6_TOKEN_COMPAT9#define IFR6_TOKEN_COMPAT 0x0040U /* use 48 bit token */#endif};M#define SIOCIPV6IFINIT _IOWR('i', 250, struct ip6ifreq) /* init if IPv6 */M#define SIOCIPV6AIFADDR _IOWR('i', 251, struct ip6ifreq) X/* add if IPv6 */X#define SIOCIPV6SIFATTR _IOW ('i', 252, struct ip6ifreq) /* set IPv6 if attributes */M#define SIOCIPV6DIFADDR _IOW ('i', 253, struct ip6ifreq) /* del if IPv6 */X#define SIOCIPV6GIFATTR _IOWR('i', 254, struct ip6ifreq) /* get IPv6 if attributes */U#define SIOCIPV6MIFADDR _IOWR('i', 255, struct ip6ifreq) /* mdfy IPv6 addr opts */T#define SIOCIPV6GIFADDR _IOWR('i', 246, struct ip6ifreq) /* get IPv6 addr opts */#endif/*= * Define the structure that is added Yas a control message to8 * incoming raw packets before being handed to the user. */struct rip6_header {9 int rhdr_ifindex; /* ifnet index number */C int rhdr_pktflags; /* The mbuf flags (M_MCAST etc) */A u_short rhdr_offset; /* data offset in IPv6 packet */8 u_char rhdr_proto; /* The protocol type */H u_char rhdr_authOK; /* TRUE if the pkt was authenticated */};struct in6_pktinfo {- int ipi6_ifindex; /* interfaceZ index */0 __u_int ipi6_hoplimit; /* IPv6 hop limit */1 struct in6_addr ipi6_addr; /* IPv6 address */};/** * Define constants for the routing header */D#define IPV6_RTHDR_LOOSE 0 /* this hop need not be a neighbor */@#define IPV6_RTHDR_STRICT 1 /* this hop must be a neighbor */?#define IPV6_RTHDR_TYPE_0 0 /* IPv6 Routing header type 0 *//* * function and macro prototypes */Dextern uint8_t *inet6_option_alloc(struct cmsghdr *, int, int, int);Lextern int [ inet6_option_append(struct cmsghdr *, const uint8_t *, int, int);Fextern int inet6_option_find(const struct cmsghdr *, uint8_t **, int);=extern int inet6_option_init(void *, struct cmsghdr **, int);Aextern int inet6_option_next(const struct cmsghdr *, uint8_t **);#extern int inet6_option_space(int);Textern int inet6_rthdr_add(struct cmsghdr *, const struct in6_addr *, unsigned int); extern struct7in6_addr inet6_rthdr_getaddr(struct cmsghdr *, int);=extern int inet6_rthdr_getflags(cons\t struct cmsghdr *, int);8extern struct cmsghdr * inet6_rthdr_init(void *, int);?extern int inet6_rthdr_lasthop(struct cmsghdr *, unsigned int);Iextern int inet6_rthdr_reverse(const struct cmsghdr *, struct cmsghdr *);8extern int inet6_rthdr_segments(const struct cmsghdr *);*extern size_t inet6_rthdr_space(int, int);/*%** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif$#pragma __]member_alignment __restore#pragma __standard#endif /* __IN6_LOADED */wwƢHE\#ifndef __IN6_MACHTYPES_LOADED #define __IN6_MACHTYPES_LOADED 1M/******************************************************************************3** - Internet V6 protocol family**M******************************************************************************* Header is nonstandardM*******************************************************************************.** Co ^pyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N************************_*******************************************************/#pragma __nostandard#include /*3 * Machine or architecure specific MACROS and types * for IPv6. */#include #ifndef OPENVMS_32BIT#if defined(__alpha)#define IN6_HAS_64BIT_INTTYPE#endif#endif7#if !defined(BYTE_ORDER) || BYTE_ORDER == LITTLE_ENDIAN#define IN6_MSB16_SHIFT 0#define IN6_MSB32_SHIFT 0#define IN6_MSW32_SHIFT 0#define IN6_BIT_ORDER +1#ifdef IN6_HAS_64BIT_I`NTTYPE#define IN6_MSB64_SHIFT 0#define IN6_MSW64_SHIFT 0#define IN6_MSL64_SHIFT 0#endif#elif BYTE_ORDER == BIG_ENDIAN"#define IN6_MSB16_SHIFT (16 - 8)"#define IN6_MSB32_SHIFT (32 - 8)##define IN6_MSW32_SHIFT (32 - 16)#define IN6_BIT_ORDER -1#ifdef IN6_HAS_64BIT_INTTYPE"#define IN6_MSB64_SHIFT (64 - 8)##define IN6_MSW64_SHIFT (64 - 16)##define IN6_MSL64_SHIFT (64 - 32)#endif#endif#ifdef IN6_HAS_64BIT_INTTYPEJ#define IN6_MSB64_OFFSET(n) (IN6_MSB6 a4_SHIFT + ((n) * IN6_BIT_ORDER * 8))K#define IN6_MSW64_OFFSET(n) (IN6_MSB64_SHIFT + ((n) * IN6_BIT_ORDER * 16))K#define IN6_MSL64_OFFSET(n) (IN6_MSB64_SHIFT + ((n) * IN6_BIT_ORDER * 32))-#define IN6_LSB64_SHIFT IN6_MSB64_OFFSET(7)-#define IN6_LSW64_SHIFT IN6_MSW64_OFFSET(3)-#define IN6_LSL64_SHIFT IN6_MSL64_OFFSET(1)M#define IN6__MK0_MSB64_VALUE(a) ( ((u_int64_t) (a)) << IN6_MSB64_OFFSET(0))g#define IN6__MK1_MSB64_VALUE(a,b) ((((u_int64_t) (b)) << IN6_MSB64_OFFSET(1))|IN6__MKb0_MSB64_VALUE(a))k#define IN6__MK2_MSB64_VALUE(a,b,c) ((((u_int64_t) (c)) << IN6_MSB64_OFFSET(2))|IN6__MK1_MSB64_VALUE(a,b))o#define IN6__MK3_MSB64_VALUE(a,b,c,d) ((((u_int64_t) (d)) << IN6_MSB64_OFFSET(3))|IN6__MK2_MSB64_VALUE(a,b,c))s#define IN6__MK4_MSB64_VALUE(a,b,c,d,e) ((((u_int64_t) (e)) << IN6_MSB64_OFFSET(4))|IN6__MK3_MSB64_VALUE(a,b,c,d))v#define IN6__MK5_MSB64_VALUE(a,b,c,d,e,f) ((((u_int64_t) (f)) << IN6_MSB64_OFFSET(5))|IN6__MK4_MSB64_VALUE(a,b,c,d,e))z#define IN6__MK6_MSB64_VcALUE(a,b,c,d,e,f,g) ((((u_int64_t) (g)) << IN6_MSB64_OFFSET(6))|IN6__MK5_MSB64_VALUE(a,b,c,d,e,f))~#define IN6__MK7_MSB64_VALUE(a,b,c,d,e,f,g,h) ((((u_int64_t) (h)) << IN6_MSB64_OFFSET(7))|IN6__MK6_MSB64_VALUE(a,b,c,d,e,f,g))L#define IN6__MK0_MSW64_VALUE(a) ( ((u_int64_t) (a)) << IN6_MSW64_OFFSET(0))f#define IN6__MK1_MSW64_VALUE(a,b) ((((u_int64_t) (b)) << IN6_MSW64_OFFSET(1))|IN6__MK0_MSW64_VALUE(a))j#define IN6__MK2_MSW64_VALUE(a,b,c) ((((u_int64_t) (c)) << IN6_MSW64_OFFSET(2))|IN6__MK1_MSW64 d_VALUE(a,b))n#define IN6__MK3_MSW64_VALUE(a,b,c,d) ((((u_int64_t) (d)) << IN6_MSW64_OFFSET(3))|IN6__MK2_MSW64_VALUE(a,b,c))M#define IN6__MK0_MSL64_VALUE(a) ( ((u_int64_t) (a)) << IN6_MSL64_OFFSET(0) )f#define IN6__MK1_MSL64_VALUE(a,b) ((((u_int64_t) (b)) << IN6_MSL64_OFFSET(1))|IN6__MK0_MSL64_VALUE(a))#endifJ#define IN6_MSB32_OFFSET(n) (IN6_MSB32_SHIFT + ((n) * IN6_BIT_ORDER * 8))K#define IN6_MSW32_OFFSET(n) (IN6_MSB32_SHIFT + ((n) * IN6_BIT_ORDER * 16))-#define IN6_LSB32_SHIFT IN6_ eMSB32_OFFSET(3)-#define IN6_LSW32_SHIFT IN6_MSW32_OFFSET(1)M#define IN6__MK0_MSB32_VALUE(a) ( ((u_int32_t) (a)) << IN6_MSB32_OFFSET(0) )f#define IN6__MK1_MSB32_VALUE(a,b) ((((u_int32_t) (b)) << IN6_MSB32_OFFSET(1))|IN6__MK0_MSB32_VALUE(a))j#define IN6__MK2_MSB32_VALUE(a,b,c) ((((u_int32_t) (c)) << IN6_MSB32_OFFSET(2))|IN6__MK1_MSB32_VALUE(a,b))n#define IN6__MK3_MSB32_VALUE(a,b,c,d) ((((u_int32_t) (d)) << IN6_MSB32_OFFSET(3))|IN6__MK2_MSB32_VALUE(a,b,c))M#define IN6__MK0_MSW32_VALUE(a) f (( (u_int32_t) (a)) << IN6_MSW32_OFFSET(0) )f#define IN6__MK1_MSW32_VALUE(a,b) ((((u_int32_t) (b)) << IN6_MSW32_OFFSET(1))|IN6__MK0_MSW32_VALUE(a))/* * Macros for 16 bit words. */J#define IN6_MSB16_OFFSET(n) (IN6_MSB16_SHIFT + ((n) * IN6_BIT_ORDER * 8))-#define IN6_LSB16_SHIFT IN6_MSB16_OFFSET(1)L#define IN6__MK0_MSB16_VALUE(a) ( ((u_int16_t) (a)) << IN6_MSB16_OFFSET(0))f#define IN6__MK1_MSB16_VALUE(a,b) ((((u_int16_t) (b)) << IN6_MSB16_OFFSET(1))|IN6__MK0_MSB16_VALUE(a))g#pragma __standard#endif /* _IN6_MACHTYPES_H */ww7ԥHE\#ifndef __INET_LOADED#define __INET_LOADED 1M/******************************************************************************** - Internet access**M*****************************************************************************I** Header introduced by the X/Open CAE Specification, Issue 4, Version 2M*******************************************************************************.** Copyright 2000 C hompaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N**************************************i*****************************************/#pragma __nostandard#include #ifdef __cplusplus extern "C" {#endif/*E** All includes of other header files must be done prior to altering** the pointer size mode. */#include /*.** Start processing in 32-bit addressing mode*/#if __INITIAL_POINTER_SIZE # pragma __pointer_size __save# pragma __pointer_size 32#endif/*A** All structures should be member aligned on natural bjoundaries*/!#pragma __member_alignment __save#pragma __member_alignment/* ** Define XPG4 IP typedefs*/4#if !defined __IN_PORT_T && !defined _DECC_V4_SOURCE# define __IN_PORT_T 1" typedef __in_port_t in_port_t;#endif5#if !defined __IN_ADDR_T && !defined _DECC_V4_SOURCE# define __IN_ADDR_T 1" typedef __in_addr_t in_addr_t;#endif/*9** Internet address (a structure for historical reasons)*/#ifndef __IN_ADDR# define __IN_ADDR 1 struct in_adkdr { union {B struct { unsigned char s_b1,s_b2,s_b3,s_b4; } S_un_b;B struct { unsigned short s_w1,s_w2; } S_un_w;! unsigned long S_addr;#ifdef _XOPEN_SOURCE __in_addr_t S_addr_xopen;#endif } S_un;};#ifdef _XOPEN_SOURCEB# define s_addr S_un.S_addr_xopen /* X/Open version of s_addr */#elseL# define s_addr S_un.S_addr /* can be used for most tcp & ip code */#endif7# define s_host S_un.S_un_b.s_b2 /* hostl on imp */7# define s_net S_un.S_un_b.s_b1 /* network */7# define s_imp S_un.S_un_w.s_w2 /* imp */7# define s_impno S_un.S_un_b.s_b4 /* imp # */7# define s_lh S_un.S_un_b.s_b3 /* logical host */#endif/*:** The following function always returns a 32 bit pointer*/'char *inet_ntoa (struct in_addr __in); /*9** All other functions accept 32 bit or 64 bit pointers.*/#if __INITIAL_POINTER_SIZE#pragma __pointer_size 64#endif+m__in_addr_t htonl (__in_addr_t __hostlong);,__in_port_t htons (__in_port_t __hostshort);*__in_addr_t ntohl (__in_addr_t __netlong);+__in_port_t ntohs (__in_port_t __netshort);,__in_addr_t inet_addr (const char *__cp);,__in_addr_t inet_network (const char *__cp);/__in_addr_t inet_lnaof (struct in_addr __in);/__in_addr_t inet_netof (struct in_addr __in);/*=** The new definition is incompatible with the implementation**4** __in_addr_t inet_makeaddr (__u_long, __u_long);*/ nDstruct in_addr inet_makeaddr (__in_addr_t __net, __in_addr_t __lna);&__in_addr_t inet_addr (const char *);1int inet_aton (const char *, struct in_addr *);)__in_addr_t inet_lnaof (struct in_addr);0char * inet_neta (__u_long, char *, __size_t);)__in_addr_t inet_netof (struct in_addr);)__in_addr_t inet_network (const char *);@char *inet_net_ntop (int, const void *, int, char *, __size_t);:int inet_net_pton (int, const char *, void *, __size_t);"char *inet_ntoa (struct in_addro);,int inet_pton (int, const char *, void *);7char *inet_ntop (int, const void *, char *, __size_t);9__u_int inet_nsap_addr (const char *, __u_char *, int);6char *inet_nsap_ntoa (int, const __u_char *, char *);/*%** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif$#pragma __member_alignment __restore#pragma __standard#endif /* __INET_LOADED */ww hHE\#ifnde pf __INTS_LOADED#define __INTS_LOADED 1M/******************************************************************************?** - Definitions for platform specific integer types **M******************************************************************************* Header is nonstandardM*******************************************************************************M** Copyright Digital Equipment Corporation 1993, 1997. All rights reserved.**B** Restricted Rights: Use, dupl qication, or disclosure by the U.S.F** Government is subject to restrictions as set forth in subparagraphF** (c) (1) (ii) of DFARS 252.227-7013, or in FAR 52.227-19, or in FAR&** 52.227-14 Alt. III, as applicable.**A** This software is proprietary to and embodies the confidentialD** technology of Digital Equipment Corporation. Possession, use, orG** copying of this software and media is authorized only pursuant to aD** valid written license from Digital or an authorized sublicensor.r***/#pragma __nostandard/*E** Ensure that the compiler will not emit diagnostics about "signed"J** keyword usage when in /STAND=VAXC mode (the reason for the diagnostics7** is that VAX C does not support the signed keyword).*/4#if ((__DECC_VER >= 50600000) && !defined(__DECCXX))# pragma __message __save.# pragma __message __disable (__SIGNEDKNOWN) typedef signed char int8; typedef unsigned char uint8;# pragma __message __restore#else typedef signsed char int8; typedef unsigned char uint8;#endif/*&** Define 16 and 32 bit integer types*/>#if defined(__DECC) || (defined(__DECCXX) && defined(__ALPHA))# typedef __int16 int16;$ typedef unsigned __int16 uint16;# typedef __int32 int32;$ typedef unsigned __int32 uint32;#else% typedef short int int16;& typedef unsigned short int uint16; typedef int int32; typedef unsigned int uint32;#endif/*-** Defitne 64 bit integer types only on Alpha*/#ifdef __ALPHA# typedef __int64 int64;$ typedef unsigned __int64 uint64;#endif#pragma __standard#endif /* __INTS_LOADED */wwCuHE\#ifndef __INTTYPES_LOADED#define __INTTYPES_LOADEDM/******************************************************************************?** - Definitions for platform specific integer types **M**************************************************************************** u*>** Header introduced by the X/Open CAE Specification, Issue 5M*******************************************************************************G** Copyright Digital Equipment Corporation 1997. All rights reserved.**B** Restricted Rights: Use, duplication, or disclosure by the U.S.F** Government is subject to restrictions as set forth in subparagraphF** (c) (1) (ii) of DFARS 252.227-7013, or in FAR 52.227-19, or in FAR&** 52.227-14 Alt. III, as applicable.**A** This software isv proprietary to and embodies the confidentialD** technology of Digital Equipment Corporation. Possession, use, orG** copying of this software and media is authorized only pursuant to aD** valid written license from Digital or an authorized sublicensor.***/#pragma __nostandard/*E** Ensure that the compiler will not emit diagnostics about "signed"J** keyword usage when in /STAND=VAXC mode (the reason for the diagnostics7** is that VAX C does not support the signed keyword).w*/4#if ((__DECC_VER >= 50600000) && !defined(__DECCXX))# pragma __message __save.# pragma __message __disable (__SIGNEDKNOWN)#endif/*;** Define integral 8-bit, 16-bit, 32-bit, and 64-bit types*/typedef signed char int8_t;typedef unsigned char uint8_t;typedef short int int16_t;$typedef unsigned short int uint16_t;typedef int int32_t;typedef unsigned int uint32_t;/*K** The VAX implementation is just a placeholder until the C9X work is done*/#ifdef __ALPxHA typedef __int64 int64_t;% typedef unsigned __int64 uint64_t;#else2 typedef struct { int __p1; int __p2; } int64_t;E typedef struct { unsigned int __p1; unsigned int __p2; } uint64_t;#endif/*G** Declare [un]signed integral types large enough to hold any pointer.*/#ifdef __ALPHA typedef int64_t intptr_t; typedef uint64_t uintptr_t;#else typedef int32_t intptr_t; typedef uint32_t uintptr_t;#endif/*** Restore messages*/4#if ((__DECC_VERy >= 50600000) && !defined(__DECCXX))# pragma __message __restore#endif#pragma __standard#endif /* __INTTYPES_LOADED */ww{HE\#ifndef __IOCTL_LOADED#define __IOCTL_LOADEDM/******************************************************************************.** - I/O controls for special files**M******************************************************************************* Header is nonstandardM********************************************************** z*********************M** Copyright Digital Equipment Corporation 1993, 1997. All rights reserved.**B** Restricted Rights: Use, duplication, or disclosure by the U.S.F** Government is subject to restrictions as set forth in subparagraphF** (c) (1) (ii) of DFARS 252.227-7013, or in FAR 52.227-19, or in FAR&** 52.227-14 Alt. III, as applicable.**A** This software is proprietary to and embodies the confidentialD** technology of Digital Equipment Corporation. Possession, use, orG** { copying of this software and media is authorized only pursuant to aD** valid written license from Digital or an authorized sublicensor.**N********************************************************************************E** Copyright (c) 1982, 1994 Regents of the University of California.A** All rights reserved. The Berkeley software License Agreement:** specifies the terms and conditions for redistribution.**/** ioctl.h 8.6 (Berkeley) 3/28/94**N******************|*************************************************************/ N#include /* Introduced in X/Open CAE Specification, Issue 4 */#endif /* __IOCTL_LOADED */wwHE\#ifndef __ISO646_LOADED#define __ISO646_LOADEDM/******************************************************************************9** - Alternative spelling for language tokens**M*****************************************************************************:** Header introdu }ced by Amendment 1 of the ISO C StandardM*******************************************************************************M** Copyright Digital Equipment Corporation 1995, 1997. All rights reserved.**B** Restricted Rights: Use, duplication, or disclosure by the U.S.F** Government is subject to restrictions as set forth in subparagraphF** (c) (1) (ii) of DFARS 252.227-7013, or in FAR 52.227-19, or in FAR&** 52.227-14 Alt. III, as applicable.**A** This software is proprietary to and ~embodies the confidentialD** technology of Digital Equipment Corporation. Possession, use, orG** copying of this software and media is authorized only pursuant to aD** valid written license from Digital or an authorized sublicensor.**M******************************************************************************/#pragma __nostandard#define and &&#define and_eq &=#define bitand &#define bitor |#define compl ~ #define not !#define not_eq != #define or ||#define or_eq |= #define xor ^#define xor_eq ^=#pragma __standard#endif /* __ISO646_LOADED */ww뜶HE\#ifndef __LANGINFO_LOADED#define __LANGINFO_LOADED 1#pragma __nostandard#include N#if __CRTL_VER >= 60200000 /**** Supported starting with OpenVMS V6.2 ****/M/******************************************************************************1** - language information constants**M**************************************************** *************************>** Header introduced by the X/Open CAE Specification, Issue 4M*******************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N*******************************************************************************/#ifdef __cplusplus extern "C" {#endif#include #if __INITIAL_POINTER_SIZE # pragma __pointer_size __save# pragma __pointer_size 32#endif /* 9** Constants for items returned by nl_langinfo() routine*/N#define  CODESET 0 /* Codeset name *//* $** Date and time formatting strings*/N#define D_T_FMT 1 /* String for formatting date and time */N#define D_FMT 2 /* Date format string */N#define T_FMT 3 /* Time format string *//*** AM/PM strings*/N#define AM_STR 4 /* Ante Meridian affix */N#define PM_STR  5 /* Post Meridian affix *//*.** Names of the days of the week in full form** Note: Must be consecutive*/#define DAY_1 6#define DAY_2 7#define DAY_3 8#define DAY_4 9#define DAY_5 10#define DAY_6 11#define DAY_7 12/*5** Names of the days of the week in abbreviated form** Note: Must be consecutive*/#define ABDAY_1 13#define ABDAY_2 14#define ABDAY_3  15#define ABDAY_4 16#define ABDAY_5 17#define ABDAY_6 18#define ABDAY_7 19/*0** Names of the months of the year in full form** Note: Must be consecutive*/#define MON_1 20#define MON_2 21#define MON_3 22#define MON_4 23#define MON_5 24#define MON_6 25#define MON_7 26#define MON_8 27#define MON_9 28#define MON_10 29#define MON_11 30#define MON_12 31/*7** Names of the months of the year in abbreviated form** Note: Must be consecutive*/#define ABMON_1 32#define ABMON_2 33#define ABMON_3 34#define ABMON_4 35#define ABMON_5 36#define ABMON_6 37#define ABMON_7 38#define ABMON_8 39#define ABMON_9 40#define ABMON_10 41#define ABMON_11 42#define ABMON_12 43/*** From LC_NUMERIC*/N#define RADIXCHAR 44 /* Decimal point string */N#define THOUSEP 45 /* Thousands separator string *//* ** From LC_MESSAGES*/N#define YESSTR 46 /* Affirmative response string */N#define NOSTR 47 /* Negative response string */N#define CRNCYSTR 48 /* Currency symbol *//*** Items that are new to XPG4*/N#define T_FMT_AMPM 49 /* Time format with AM/PM string  */N#define ERA 50 /* Era strings */N#define ERA_D_FMT 51 /* Era date format string */N#define ALT_DIGITS 52 /* Alternative symbols for digits */N#define YESEXPR 53 /* Affirmative response expression */N#define NOEXPR 54 /* Negative response expression */N#define ERA_T_FMT 55 /* Locale's alternative time format, */N  /* corresponding to the %EX field descriptor */N#define ERA_D_T_FMT 56 /* Locale's alternative date and time format, */N /* corresponding to the %Ec field descriptor *//*K** The function nl_langinfo() returns a pointer to memory allocated by theI** DEC C RTL. Ensure that regardless of user /pointer_size usage, this '** pointer is always a 32 bit pointer.*/"char *nl_langinfo(nl_item __item);#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif##endif /* OpenVMS V6.2 or later */#pragma __standard#endif /* __LANGINFO_LOADED */ww0HE\#ifndef __LIBGEN_LOADED#define __LIBGEN_LOADEDM/******************************************************************************&** - Filename manipulation**M*******************************************************************************I** Header introduced by the X/Open CAE Sp ecification, Issue 4, Version 2**K** Definitions in this header file may not be available on all versions ofK** OpenVMS. See the DEC C Runtime Library reference manual for specifics.**M*******************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**M******************************************************************************/#pragma __nostandard#include #ifdef __cplusplus extern "C" {#endif/*N** If the user has used /pointer_size, we will save our current pointer size.*/#if __INITIAL_POINTER_SIZE # pragma __pointer_size __save#endif/*** Function prototypes*/char * basename (char *);char * dirname (char *);/*K** Under the following conditions, we also define the _xxx32/64 interfaces*/>#if __INITIAL_POINTER_SIZE && !defined(_XOPEN_SOURCE_EXTENDED)# pragma __pointer_size 32 char * _basename32 (char *); char * _dirname32 (char *);# pragma __pointer_size 64 char * _basename64 (char *); char * _dirname64 (char *);#endif/*-** Restore the original pointer size context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif#pragma __standard#endif /* __LIBGEN_LOADED */ww/KHE\#ifndef __LIMITS_LOADED#define __LIMITS_LOADED 1M/******************************************************************************(** - Sizes of integral types**M************************ *****************************************************,** Header introduced by the ANSI C StandardM*******************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Co mputer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N******************************************************************************(** NoteN********************************************************************************J** Section 2.2.4.2 of the Rationale states "The limits for the maxima andD** minima of unsigned types are specified as unsigned c onstants..."**L** The alert reader will notice there are no minima for the unsigned types,5** but we will follow the Rationale's advice anyway.**N******************************************************************************.** Implementors NoteN******************************************************************************L** INT_MAX is not a constant value across platforms. Sone constants in this;** file, such as INT_MIN, are defined in terms of INT_MAX.** O** Do not be tempted to speed up processing up by evaluating these expressions6** into constant values. This will work incorrectly.N*******************************************************************************/#pragma __nostandard#include /*I** Number of bits for the smallest object that is not a bit-field (byte)*/#define CHAR_BIT 8/*9** Minimum and maximum values for "signed/unsigned char"*/#define UCHAR_MAX 255u#define SCHAR_MAX 127&#define SCHAR_MIN (-SCHAR_MAX - 1)/*N** Minimum and maximum values for "char" affected by /unsigned_char qualifier*/#ifdef __UNSIGNED_CHAR#define CHAR_MIN 0#define CHAR_MAX UCHAR_MAX#else#define CHAR_MIN SCHAR_MIN#define CHAR_MAX SCHAR_MAX#endif/*>** Minimum and maximum values for "signed/unsigned short int"*/#define USHRT_MAX 65535u#define SHRT_MAX 32767%#define SHRT_MIN (-SHRT_MAX - 1)/*8** Minimum and maximum values for "signed/unsigned int"*/!#define UINT_MAX 4294967295u #define INT_MAX 2147483647$#define INT_MIN (-INT_MAX - 1)/*=** Minimum and maximum values for "signed/unsigned long int"*/!#define ULONG_MAX 4294967295u #define LONG_MAX 2147483647%#define LONG_MIN (-LONG_MAX - 1)/*<** Minimum and maximum values for "signed/unsigned __intxx"*/ #define __UINT16_MAX 65535u#define __INT16_MAX 32767(#define __INT16_MIN (-__INT16_MAX - 1)!#define __UINT32_MAX 4294967295u #define __INT32_MAX 2147483647(#define __INT32_MIN (-__INT32_MAX - 1)#ifdef __ALPHA+#define __UINT64_MAX 18446744073709551615u)#define __INT64_MAX 9223372036854775807(#define __INT64_MIN (-__INT64_MAX - 1)#endif#if __CRTL_VER < 60200000D# define MB_LEN_MAX 1 /* Before OpenVMS V6.2 */#elseD# define MB_LEN_MAX 8 /* After OpenVMS V6.2 */#endif/*4** Limits which changed beginning with OpenVMS V6.2*/9# if defined(_XOPEN_SOURCE) || !defined(_ANSI_C_SOURCE)D# define COLL_WEIGHTS_MAX 5 /* Max collate weights */&# define NL_TEXTMAX 8192&# define NL_SETMAX 65535&# define NL_MSGMAX 65535&# define CHARCLASS_NAME_MAX 14&# define NL_ARGMAX 9&# define NL_LANGMAX 14&# define TZNAME_MAX 15&# define SSIZE_MAX INT_MAX /*2 ** Limits needed to support *conf() functions. */b# define BC_BASE_MAX -1 /* Max ibase and obase values for bc - not implemented */a# define BC_DIM_MAX -1 /* Max num elements in array for bc - not implemented */^# define BC_SCALE_MAX -1 /* Max scale value allowed by bc - not implemented */a# define BC_STRING_MAX -1 /* Max len of string constant by bc - not implemented */R# define EXPR_NEST_MAX (-1) /* Max num express ion nested for expr */M# define LINE_MAX 2048 /* Max len of utility input line */Q# define RE_DUP_MAX (-1) /* Max num repeated reg for interval */L# define NGROUPS_MAX 0 /* User can be in no extra groups */G# define PASS_MAX 31 /* Max bytes in a password */K# define ARG_MAX 4096 /* Max len of arg to exec rtns */ /*6 ** These are used by pathconf() as well as others */;# define LINK_MAX 1 /* Only 1 link to a file */L# define MAX_CANON 511 /* Max bytes in terminal canonical input */R# define MAX_INPUT 511 /* Max bytes required as input before reading */ \# define NAME_MAX 255 /* Max bytes in filename (not including terminating null) */X# define PATH_MAX 256 /* Max bytes in pathname (including terminating null) */G# define PIPE_BUF 512 /* Max atomic bytes on write to pipe */ /* " ** New limits with DEC C V5.2 */ )# define _POSIX_PIPE_BUF 512#endif /* XOPEN_SOURCE */?#if defined(_XOPEN_SOURCE_EXTENDED) || !defined(_ANSI_C_SOURCE)[# define ATEXIT_MAX 32767 /* Max number of functions that may be registeredR ** with atexit(). essentially unlimited, */O# define IOV_MAX 1024 /* Maximum number of iovec structuresO  ** that one process has available forL ** use with readv() or writev() */#endif/*A** Macros defined by the POSIX 1003.1c-1995 formally approved atD** the June 1995 meeting of the IEEE Standards Board. The correct A** feature test macro for strictly conforming POSIX 1003.1c-1995** applications is:**'** #define _POSIX_C_SOURCE 199506L*/8#if _POSIX_C_SOURCE >= 199506 || !defined _ANSI_C_SOURCE1# ifndef _POSIX_THREAD_DESTRUCTOR_ITERATIONS 5# define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4 # endif1# ifndef _POSIX_THREAD_KEYS_MAX 7# define _POSIX_THREAD_KEYS_MAX 128 # endif1# ifndef _POSIX_THREAD_THREADS_MAX 6# define _POSIX_THREAD_THREADS_MAX 64 # endif1# ifndef PTHREAD_DESTRUCTOR_ITERATIONS W# define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS # endif# ifndef PTHREAD_KEYS_MAX/# define PTHREAD_KEYS_MAX 255 # endif-# ifndef PTHREAD_STACK_MIN # if defined __ALPHA8# define PTHREAD_STACK_MIN 8192 # else8# define PTHREAD_STACK_MIN 1024 # endif # endif&#endif /* _POSIX_C_SOURCE >= 199506 */#pragma __standard#endif /* __LIMITS_LOADED */wwHE\#ifndef __LOCALE_LOADED#define __LOCALE_LOADED 1M/************* ******************************************************************* - Localization**M*****************************************************************************,** Header introduced by the ANSI C StandardM*******************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N*******************************************************************************/#pragma __nostandard#include #ifdef __cplusplus extern "C" {#endif#if __INITIAL_POINTER_SIZE # pragma __pointer_size __save# pragma __pointer_size 32#endif/*** Member align structures*/!#pragma __member_alignment __save#pragma __member_alignment/*** Define the lconv structure*/struct lconv { char *decimal_point; char *thousands_sep; char *grouping; char *int_curr_symbol; char *currency_symbol; char *mon_decimal_point; char *mon_thousands_sep; char *mon_grouping; char *positive_sign; char *negative_sign; char int_frac_digits; char frac_digits; char p_cs_precedes; char p_sep_by_space; char n_cs_precedes; char n_sep_by_space; char p_sign_posn; char n_sign_posn;};/*** Define NULL*/ #ifndef NULL# define NULL __NULL#endif /*"** Define lconv enumerated values*/#define LC_ALL (-1)#define LC_COLLATE 0#define LC_CTYPE 1#define LC_MONETARY 2#define LC_NUMERIC 3#define LC_TIME 4O#if __CRTL_VER >= 60200000 && (_POSIX_C_SOURCE >= 2 || !defined _ANSI_C_SOURCE)# define LC_MESSAGES 5#endif5#if __CRTL_VER >= 60200000 && !defined _ANSI_C_SOURCE# define LC_MAX 5#endif/*9** Change MIA environment to use MIA setlocale semantics*/ #ifdef __MIA# ifdef setlocale# undef setlocale # endif*# define setlocale decc$mia_setlocale_v1#endif/*;** Function prototypes which always return 32 bit pointers*/!struct lconv * localeconv (void);/*G** When compiling with /POINTER_SIZE, change to long pointers so that I** prototypes reflect the implementation for widened pointers. When notG** using /POINTER_SIZE, the prototypes do not allow for long pointers.*/#if __INITIAL_POINTER_SIZE# pragma __pointer_size 64#endif/*** Function prototypes*/?__char_ptr32 setlocale (int __category, const char *__locale);/*%** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif$#pragma __member_alignment __restore#pragma __standard#endif /* __LOCALE_LOADED */wwrHE\#ifndef __MATH_LOADED#define __MATH_LOADED 1M/******************************************************************************** - Mathematics**M*****************************************************************************,** Header introduced by the ANSI C StandardM******************** ***********************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N*******************************************************************************/#pragma __nostandard#include #ifdef __cplusplus extern "C" {#endif/*** 64-BIT SUPPORT NOTE:**G** The modf* and frexp* routines all make calls directly into the DPMLF** library. Until it is known whether DPML supports 64-bit pointers,I** the following functions in this module, which by the way are the onlyK** functions which seem to need conversion, can not be converted to 64 bit ** pointers:** "** frexp frexpf frexpl!** modf modff modfl*/#if __INITIAL_POINTER_SIZE # pragma __pointer_size __save# pragma __pointer_size 32#endif/*** Member align structures*/!#pragma __member_alignment __save#pragma __member_alignment/*** Define HUGE_VAL*/ #if __G_FLOAT9# define HUGE_VAL 8.988465674311578540726371186585e+307$# define __MAXFLOAT 1.7014117e+38f#elif __IEEE_FLOAT5# if defined (_IEEE_FP) && (__CRTL_VER >= 60200000)## pragma __extern_model __save,# pragma __extern_model __strict_refdef* extern double decc$gt_dbl_infinity;&# pragma __extern_model __restore+# define HUGE_VAL decc$gt_dbl_infinity# else.# define HUGE_VAL 1.7976931348623158e+308 # endif%# define __MAXFLOAT 3.40282347e+38f#else# ifdef __ALPHA2# define HUGE_VAL 1.70141183460469213e+38 # else .# define HUGE_VAL 1.70141183460469229e+38 # endif$# define __MAXFLOAT 1.7014117e+38f#endif/* <** MAXFLOAT is defined by X/Open extended to be the maximum8** non-infinite single precision floating point number.*/ #ifndef _DECC_V4_SOURCE9# if defined(_XOPEN_SOURCE) || !defined(_ANSI_C_SOURCE)# define MAXFLOAT __MAXFLOAT # endif#endif/*!** 4.5.2 Trigonometric Functions*/double acos (double __x);double asin (double __x);double atan (double __x);&double atan2 (double __y, double __x);double cos (double __x);double sin (double __x);double tan (double __x);#ifdef __ALPHA float acosf (float __x); float asinf (float __x); float atanf (float __x);( float atan2f (float __y, float __x); float cosf (float __x); float sinf (float __x); float tanf (float __x);) long double acosl (long double __x);) long double asinl (long double __x);) long double atanl (long double __x);: long double atan2l (long double __y, long double __x);) long double cosl (long double __x);) long double sinl (long double __x);) long double tanl (long double __x);#endif/*** 4.5.3 Hyperbolic Functions*/double cosh (double __x);double sinh (double __x);double tanh (double __x);#ifdef __ALPHA float coshf (float __x); float sinhf (float __x); float tanhf (float __x);( long double coshl (long double __x);( long double sinhl (long double __x);( long double tanhl (long double __x);#endif/*/** 4.5.4 Exponential and Logarithmic Functions*/double exp (double __x);*double frexp (double __value, int *__exp);%double ldexp (double __x, int __exp);double log (double __x);double log10 (double __x);.double modf (double __value, double *__iptr);#ifdef __ALPHA float expf (float __x);- float frexpf (float __value, int *__exp);( float ldexpf (float __x, int __exp); float logf (float __x); float log10f (float __x);0 float modff (float __value, float *__iptr);) long double expl (long double __x);9 long double frexpl (long double __value, int *__exp);4 long double ldexpl (long double __x, int __exp);) long double logl (long double __x);) long double log10l (long double __x);B long double modfl (long double __value, long double *__iptr);#endif/*** 4.5.5 Power Functions*/%double pow (double __x, double __y);double sqrt (double __x);#ifdef __ALPHA' float powf (float __x, float __y); float sqrtf (float __x);9 long double powl (long double __x, long double __y);( long double sqrtl (long double __x);#endif/*B** 4.5.6 Nearest Integer, Absolute Value, and Remainder Functions*/double ceil (double __x);double fabs (double __x);double floor (double __x);&double fmod (double __x, double __y);#ifdef __ALPHA float ceilf (float __x); float fabsf (float __x); float floorf (float __x);( float fmodf (float __x, float __y);) long double ceill (long double __x);) long double fabsl (long double __x);) long double floorl (long double __x);: long double fmodl (long double __x, long double __y);#endif'#if defined(__ALPHA) && defined(__DECC) double __FABS (double __x); double __COS (double __x); double __SIN (double __x); # define fabs(__x) __FABS(__x)# define cos(__x) __COS(__x)# define sin(__x) __SIN(__x)#endif/*7** Define X/Open XPG4 extensions on both VAX and Alpha*/5#if defined _XOPEN_SOURCE || !defined _ANSI_C_SOURCE * double hypot (double __x, double __y);#endif/* (** X/Open XPG4 extensions on Alpha-only*/ I#if defined __ALPHA && (defined _XOPEN_SOURCE || !defined _ANSI_C_SOURCE) double erf (double __x); double erfc (double __x); double gamma (double __x); double j0 (double __x); double j1 (double __x);( double jn (int __n, double __x); double lgamma (double __x); double y0 (double __x); double y1 (double __x);) double yn (int __n , double __x); float erff (float __x); float erfcf (float __x); float gammaf (float __x);( float hypotf (float __x, float __y); float lgammaf (float __x); float y0f (float __x); float y1f (float __x);( float ynf (int __n , float __x); float j0f (float __x); float j1f (float __x);' float jnf (int __n, float __x);* long double erfl (long double __x);* long double erfcl (long double __x);* long double gammal (long double __x);: long double hypotl (long double __x, long double __y);* long double j0l (long double __x);* long double j1l (long double __x);3 long double jnl (int __n, long double __x);* long double lgammal (long double __x);* long double y0l (long double __x);* long double y1l (long double __x);4 long double ynl (int __n , long double __x); /* 6 ** isnan() conflicts with isnan() macro in . */ # ifndef __FP_LOADED int isnan (double __x); # endif int isnanf (float __x);! int isnanl (long double __x); # pragma __extern_model __save)# pragma __extern_model __strict_refdef extern int signgam;## pragma __extern_model __restore#endif/* $** Define X/open XPG4 V2 extensions*/ R#if defined __ALPHA && (defined _XOPEN_SOURCE_EXTENDED || !defined _ANSI_C_SOURCE) double acosh (double __x); double asinh (double __x); double atanh (double __x); double cbrt (double __x); double expm1 (double __x); double logb (double __x); double log1p (double __x);. double nextafter (double __x, double __y); double rint (double __x);* double scalb (double __x, double __n); float acoshf (float __x); float asinhf (float __x); float atanhf (float __x); float cbrtf (float __x); float expm1f (float __x); float logbf (float __x); float log1pf (float __x);, float nextafterf (float __x, float __y); float rintf (float __x);( float scalbf (float __x, float __n);) long double acoshl (long double __x);) long double asinhl (long double __x);) long double atanhl (long double __x);( long double cbrtl (long double __x);) long double expm1l (long double __x);) long double logbl (long double __x);) long double log1pl (long double __x);> long double nextafterl (long double __x, long double __y);) long double rintl (long double __x);: long double scalbl (long double __x, long double __n);#endif/* .** Define DEC C Extensions both VAX and Alpha*/ #ifndef _ANSI_C_SOURCE#ifndef __COMPLEX_LOADED!# define _MATH_H_DEFINED_CABS 1, typedef struct { double x, y; } cabs_t;  double cabs (cabs_t __z);#endif#endif/* ** DEC C Extensions, Alpha only*/ .#if defined __ALPHA && !defined _ANSI_C_SOURCE# ifndef __COMPLEX_LOADED%# define _MATH_H_DEFINED_CABS 10 typedef struct { float x, y; } cabsf_t; 6 typedef struct { long double x, y; } cabsl_t; # float cabsf (cabsf_t __z);) long double cabsl (cabsl_t __z); # endif double acosd (double __x); double asind (double __x); double atand (double __x);+ double atand2 (double __y, double __x);. double copysign (double __x, double __y); double cosd (double __x); double cot (double __x); double cotd (double __x); double log2 (double __x); double nint (double __x); double sind (double __x); double tand (double __x); double trunc (double __x); float acosdf (float __x); float asindf (float __x); float atandf (float __x);) float atand2f (float __y, float __x);, float copysignf (float __x, float __y); float cosdf (float __x); float cotf (float __x); float cotdf (float __x); float log2f (float __x); float nintf (float __x); float sindf (float __x); float tandf (float __x); float truncf (float __x);* long double acosdl (long double __x);* long double asindl (long double __x);* long double atandl (long double __x);; long double atand2l (long double __y, long double __x);> long double copysignl (long double __x, long double __y);*  long double cosdl (long double __x);( long double cotl (long double __x);( long double cotdl (long double __x);) long double log2l (long double __x);) long double nintl (long double __x);* long double sindl (long double __x);* long double tandl (long double __x);) long double truncl (long double __x);" int finite (double __x);" int fp_class (double __x);. int unordered (double __x, double __y);! int finitef (float __x);!  int fp_classf (float __x);, int unorderedf (float __x, float __y);- int finitel (long double __x);- int fp_classl (long double __x);> int unorderedl (long double __x, long double __y);#endifR#if defined _XOPEN_SOURCE || (!defined _DECC_V4_SOURCE && !defined _ANSI_C_SOURCE)@#define M_E 2.7182818284590452354E0 /* e */@#define M_LOG2E 1.4426950408889634074E0 /* log2(e) */@#define M_LOG10E 4.3429448190325 182765E-1 /* log10(e) */@#define M_LN2 6.9314718055994530942E-1 /* ln(2) */@#define M_LN10 2.3025850929940456840E0 /* ln(10) */@#define M_PI 3.1415926535897932385E0 /* pi */@#define M_PI_2 1.5707963267948966192E0 /* pi/2 */@#define M_PI_4 7.8539816339744830962E-1 /* pi/4 */@#define M_1_PI 3.1830988618379067154E-1 /* 1/pi */@#define M_2_PI 6.3661977236758134308E-1 /* 2/pi */@#define M_2_SQRTPI 1.1283791670955125739E0 /* 2/sqrt(pi) */@#define M_SQRT2 1.4142135623730950488E0 /* sqrt(2) */@#define M_SQRT1_2 7.0710678118654752440E-1 /* 1/sqrt(2) */#endif/* G** DEC C V4.0 compatibility. These functions were defined in previous9** versions of DEC C and are retained for compatibility.*/ #ifdef _DECC_V4_SOURCE# if __G_FLOAT" double MTH$GCOS_R7 (double __x);" double MTH$GSIN_R7 (double __x);# elif __IEEE_FLOAT" double MTH$TCOS_R7 (double __x);" double MTH$TSIN_R7 (double __x);# else" double MTH$DCOS_R7 (double __x);" double MTH$DSIN_R7 (double __x); # endif# define VAXC$TANH 1#endif #ifdef __KAP'#if defined(__ALPHA) && defined(__DECC)'#pragma _KAP no side effects ( __FABS )&#pragma _KAP no side effects ( __COS )&#pragma _KAP no side effects ( __SIN )#endif%#pragma _KAP no side effects ( acos )%#pragma _KAP no side effects ( asin )%#pragma _KAP no side effects ( atan )&#pragma _KAP no side effects ( atan2 )$#pragma _KAP no side effects ( cos )$#pragma _KAP no side effects ( sin )$#pragma _KAP no side effects ( tan )%#pragma _KAP no side effects ( cosh )%#pragma _KAP no side effects ( sinh )%#pragma _KAP no side effects ( tanh )$#pragma _KAP no side effects ( exp )&#pragma _KAP no side effects ( frexp )&#pragma _KAP no side effects ( ldexp )$#pragma _KAP no side effects ( log )&#pragma _KAP no side effects ( log10 )%#pragma _KAP no side effects ( modf )$#pragma _KAP no side effects ( pow )%#pragma _KAP no side effects ( sqrt )%#pragma _KAP no side effects ( cabs )&#pragma _KAP no side effects ( hypot )%#pragma _KAP no side effects ( ceil )%#pragma _KAP no side effects ( fabs )&#pragma _KAP no side effects ( floor )%#pragma _KAP no side effects ( fmod )&#pragma _KAP no side effects ( acosf )&#pragma _KAP no side effects ( asinf )&#pragma _KAP no side effects ( atanf )'#pragma _KAP no side effects ( atan2f )%#pragma _KAP no side effects ( cosf )% #pragma _KAP no side effects ( sinf )%#pragma _KAP no side effects ( tanf )&#pragma _KAP no side effects ( coshf )&#pragma _KAP no side effects ( sinhf )&#pragma _KAP no side effects ( tanhf )%#pragma _KAP no side effects ( expf )'#pragma _KAP no side effects ( frexpf )'#pragma _KAP no side effects ( ldexpf )%#pragma _KAP no side effects ( logf )'#pragma _KAP no side effects ( log10f )&#pragma _KAP no side effects ( modff )%#pragma _KAP no side effects ( powf )&#pragma _KAP no side effects ( sqrtf )&#pragma _KAP no side effects ( cabsf )'#pragma _KAP no side effects ( hypotf )&#pragma _KAP no side effects ( ceilf )&#pragma _KAP no side effects ( fabsf )'#pragma _KAP no side effects ( floorf )&#pragma _KAP no side effects ( fmodf )&#pragma _KAP no side effects ( acosl )&#pragma _KAP no side effects ( asinl )&#pragma _KAP no side effects ( atanl )'#pragma _KAP no side effects ( atan2l )%#pragma _KAP no side effects ( cosl )%#pragma _KAP no side effects ( sinl ) %#pragma _KAP no side effects ( tanl )&#pragma _KAP no side effects ( coshl )&#pragma _KAP no side effects ( sinhl )&#pragma _KAP no side effects ( tanhl )%#pragma _KAP no side effects ( expl )'#pragma _KAP no side effects ( frexpl )'#pragma _KAP no side effects ( ldexpl )%#pragma _KAP no side effects ( logl )'#pragma _KAP no side effects ( log10l )&#pragma _KAP no side effects ( modfl )%#pragma _KAP no side effects ( powl )&#pragma _KAP no side effects ( sqrtl )&#pragma _KAP no side effects ( cabsl )'#pragma _KAP no side effects ( hypotl )&#pragma _KAP no side effects ( ceill )&#pragma _KAP no side effects ( fabsl )'#pragma _KAP no side effects ( floorl )&#pragma _KAP no side effects ( fmodl )$#pragma _KAP no side effects ( erf )%#pragma _KAP no side effects ( erfc )&#pragma _KAP no side effects ( isnan )##pragma _KAP no side effects ( j0 )##pragma _KAP no side effects ( j1 )##pragma _KAP no side effects ( jn )##pragma _KAP no side effects ( y0 )##pragma _KAP no side effects ( y1 )##pragma _KAP no side effects ( yn )%#pragma _KAP no side effects ( erff )&#pragma _KAP no side effects ( erfcf )'#pragma _KAP no side effects ( isnanf )$#pragma _KAP no side effects ( j0f )$#pragma _KAP no side effects ( j1f )$#pragma _KAP no side effects ( jnf )$#pragma _KAP no side effects ( y0f )$#pragma _KAP no side effects ( y1f )$#pragma _KAP no side effects ( ynf )%#pragma _KAP no side effects ( erfl )&#pragma _KAP no side effects ( erfcl )'#pragma _KAP no side effects ( isnanl )$#pragma _KAP no side effects ( j0l )$#pragma _KAP no side effects ( j1l )$#pragma _KAP no side effects ( jnl )$#pragma _KAP no side effects ( y0l )$#pragma _KAP no side effects ( y1l )$#pragma _KAP no side effects ( ynl ))#pragma _KAP no side effects ( copysign )'#pragma _KAP no side effects ( finite ))#pragma _KAP no side effects ( fp_class )*#pragma _KAP no side effects ( nextafter )*#pragma _KAP no side effects ( unordered )*#pragma _KAP no side effects ( copysignf )(#pragma _KAP no side effects ( finitef )*#pragma _KAP no side effects ( fp_classf )+#pragma _KAP no side effects ( nextafterf )+#pragma _KAP no side effects ( unorderedf )*#pragma _KAP no side effects ( copysignl )(#pragma _KAP no side effects ( finitel )*#pragma _KAP no side effects ( fp_classl )+#pragma _KAP no side effects ( nextafterl )+#pragma _KAP no side effects ( unorderedl )&#pragma _KAP no side effects ( acosh )&#pragma _KAP no side effects ( asinh )&#pragma _KAP no side effects ( atanh )'#pragma _KAP no side effects ( acoshf )'#pragma _KAP no side effects ( asinhf )'#pragma _KAP no side effects ( atanhf )'#pragma _KAP no side effects ( acoshl )'#pragma _KAP no side effects ( asinhl )'#pragma _KAP no side effects ( atanhl )$#pragma _KAP no side effects ( cot )%#pragma _KAP no side effects ( cotd )%#pragma _KAP no side effects ( cotf )&#pragma _KAP no side effects ( cotdf )%#pragma _KAP no side effects ( cotl )&#pragma _KAP no side effects ( cotdl )&#pragma _KAP no side effects ( acosd )&#pragma _KAP no side effects ( asind )&#pragma _KAP no side effects ( atand )'#pragma _KAP no side effects ( atand2 )%#pragma _KAP no side effects ( cosd )%#pragma _KAP no side effects ( sind )%#pragma _KAP no side effects ( tand )'#pragma _KAP no side effects ( acosdf )'#pragma _KAP no side effects ( asindf )'#pragma _KAP no side effects ( atandf )(#pragma _KAP no side effects ( atand2f )&#pragma _KAP no side effects ( cosdf )&#pragma _KAP no side effects ( sindf )&#pragma _KAP no side effects ( tandf )'#pragma _KAP no side effects ( acosdl )'#pragma _KAP no side effects ( asindl )'#pragma _KAP no side effects ( atandl )(#pragma _KAP no side effects ( atand2l )&#pragma _KAP no side effects ( cosdl )&#pragma _KAP no side effects ( sindl )&#pragma _KAP no side effects ( tandl )%#pragma _KAP no side effects ( nint )%#pragma _KAP no side effects ( rint )&#pragma _KAP no side effects ( trunc )&#pragma _KAP no side effects ( nintf )&#pragma _KAP no side effects ( rintf )'#pragma _KAP no side effects ( truncf )&#pragma _KAP no side effects ( nintl )&#pragma _KAP no side effects ( rintl )'#pragma _KAP no side effects ( truncl )#endif /* __KAP *//*** Math routines added in C99.C** On Alpha, Compaq C V6.4 or later will by default add a facilityA** prefix to the external symbols for these routines in the sameC** situations when it will pre-define __STDC_VERSION__ to 199901L.C** So declare them, even though not all of them may be implemented3** on the version of OpenVMS used at compile-time.*/E#if defined(__ALPHA) && (defined(__DECC) && __DECC_VER >= 60400000) \3 && __STDC_VERSION__ >= 199901L /*A ** Some were already extensions, no harm in redeclaring them) ** if they were previously declared. */ double acosh (double __x); double asinh (double __x); double atanh (double __x); double cbrt (double __x);. double copysign (double __x, double __y); double expm1 (double __x); double log1p (double __x); double log2 (double __x); double logb (double __x);. double nextafter (double __x, double __y); double rint (double __x); double trunc (double __x); float acoshf (float __x); float asinhf (float __x); float atanhf (float __x); float cbrtf (float __x);, float copysignf (float __x, float __y); float expm1f (float __x); float log1pf (float __x); float log2f (float __x); float logbf (float __x);, float nextafterf (float __x, float __y); float rintf (float __x); float truncf (float __x);) long double acoshl (long double __x);) long double asinhl (long double __x);) long double atanhl (long double __x);( long double cbrtl (long double __x);> long double copysignl (long double __x, long double __y);) long double expm1l (long double __x);) long double log1pl (long double __x);) long double log2l (long double __x);) long double logbl (long double __x);> long double nextafterl (long double __x, long double __y);) long double rintl (long double __x);) long double truncl (long double __x); double erf (double __x); double erfc (double __x);* double hypot (double __x, double __y); double lgamma (double __x); float erfcf (float __x); float erff (float __x);( float hypotf (float __x, float __y); float lgammaf (float __x);* long double erfcl (long double __x);* long double erfl (long double __x);: long double hypotl (long double __x, long double __y);* long double lgammal (long double __x); /*4 ** The rest are new to in Compaq C V6.4 */ double exp2(double __x);( double fdim(double __x, double __y);3 double fma(double __x, double __y, double __z);( double fmax(double __x, double __y);( double fmin(double __x, double __y);! double nearbyint(double __x);3 double nexttoward(double __x, long double __y);- double remainder(double __x, double __y);6 double remquo(double __x, double __y, int *__quo); double round(double __x);- double scalbln(double __x, long int __n);' double scalbn(double __x, int __n); double tgamma(double __x); float exp2f(float __x);& float fdimf(float __x, float __y);0 float fmaf(float __x, float __y, float __z);&  float fmaxf(float __x, float __y);& float fminf(float __x, float __y); float nearbyintf(float __x);2 float nexttowardf(float __x, long double __y);+ float remainderf(float __x, float __y);4 float remquof(float __x, float __y, int *__quo); float roundf(float __x);, float scalblnf(float __x, long int __n);& float scalbnf(float __x, int __n); float tgammaf(float __x);' long double exp2l(long double __x);8 long double fdiml(long double __x, long doub le __y);H long double fmal(long double __x, long double __y, long double __z);8 long double fmaxl(long double __x, long double __y);8 long double fminl(long double __x, long double __y);, long double nearbyintl(long double __x);> long double nexttowardl(long double __x, long double __y);= long double remainderl(long double __x, long double __y);F long double remquol(long double __x, long double __y, int *__quo);( long double roundl(long double __x);8 long double scalblnl(long double __x, long int __n);2 long double scalbnl(long double __x, int __n);) long double tgammal(long double __x); int ilogb(double __x); int ilogbf(float __x); int ilogbl(long double __x); long int lrint(double __x); long int lrintf(float __x);% long int lrintl(long double __x); long int lround(double __x); long int lroundf(float __x);& long int lroundl(long double __x);% long long int llrint(double __x);% long long int llrintf(float __x);+ long long int llrintl(long double __x);& long long int llround(double __x);& long long int llroundf(float __x);, long long int llroundl(long double __x);#endif/*%** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif$#pragma __member_alignment __restore#pragma __standard#endif /* __MATH_LOADED */wwHE\#ifndef __MEMORY_LOADED#defin e __MEMORY_LOADED 1M/****************************************************************************** ** - String Handling**M******************************************************************************* Header is nonstandardM*******************************************************************************M** Copyright Digital Equipment Corporation 1993, 1997. All rights reserved.**B** Restricted Rights: Use, duplication, or disclosure by the U.S.F** Government is subject to restrictions as set forth in subparagraphF** (c) (1) (ii) of DFARS 252.227-7013, or in FAR 52.227-19, or in FAR&** 52.227-14 Alt. III, as applicable.**A** This software is proprietary to and embodies the confidentialD** technology of Digital Equipment Corporation. Possession, use, orG** copying of this software and media is authorized only pursuant to aD** valid written license from Digital or an authorized sublicensor.**N*******************************************************************************//* <** On some systems, includes, or used to include>** the ANSI C memory routines memccpy(), memchr(), memcpy(),A** memset() and memcmp(). The ANSI/ISO C standard ISO 9899:1990*** specifies that they are in .*/ #include #endif /* __MEMORY_LOADED */wwHE\#ifndef __MMAN_LOADED#define __MMAN_LOADED 1#pragma __nostandard#include >#if __CRTL_VER >= 70000000 /* Only  OpenVMS V7.0 or later */M/******************************************************************************;** - Declarations for mapping pages of memory**M*****************************************************************************I** Header introduced by the X/Open CAE Specification, Issue 4, Version 2M*******************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Regis tered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N*******************************************************************************/#ifdef __cplusplus extern "C" {#endif#if __INITIAL_POINTER_SIZE # pragma __pointer_size __save# pragma __pointer_size 32#endif/*&** Define off_t and size_t structures*/#ifndef __OFF_T# define __OFF_T 1 typedef __off_t off_t;#endif#ifndef __SIZE_T# define __SIZE_T 1 typedef __size_t size_t;#endif/* 8** Symbolic constants for protection for mmap, mprotect*/ #define PROT_NONE 0#define PROT_READ 1#define PROT_WRITE 2#define PROT_EXEC 4/* ,** Specify either MAP_SHARED or MAP_PRIVATE*/ #define MAP_SHARED 0x01 #define MAP_PRIVATE 0x02/* ,** Specify wither MAP_FIXED or MAP_VARIABLE*/ #define MAP_FIXED 0x100##if !defined _XOPEN_SOURCE_EXTENDED # define MAP_VARIABLE 0x200#endif/* ** failure status from mmap()*/ $#define MAP_FAILED ((void *)-1)/* ** Flags for msync()*/ #define MS_ASYNC 0x01#define MS_SYNC 0x02#define MS_INVALIDATE 0x04##if !defined _XOPEN_SOURCE_EXTENDED /* 0 ** Specify either MAP_FILE or MAP_ANONYMOUS */ # define MAP_ANONYMOUS 0x10# define MAP_ANON 0x10# define MAP_FILE 0x20#endif/*L** At this point in the processing, we are done defining those things whichJ** must always be short pointers. If the user has used the /pointer_sizeG** qualifier, we will allow long pointers to be used in function callsE** regardless of whether they have specified short or long pointers.*/#if __INITIAL_POINTER_SIZE# pragma __pointer_size 64#endif/*;** Functions which accept either 32 bit or 64 bit pointers*/4int mprotect (void *addr, __size_t len, int prot);*int munmap (void *addr, __size_t len);5int msync (void *addr, __size_t len, int flags);#if __CRTL_VER >= 70200000/*@** shm_open and shm_unlink functions were added in OpenVMS V7.2*/Aint shm_open (const char * __name, int __oflag, __mode_t __mode);%int shm_unlink (const char * __name);#endif/*G** Functions which have separate implementations for 32 bit and 64 bitG** pointers. The implementation defaults to that corresponding to the=** default pointer size used in the /POINTER_SIZE qualifier.*/ #if __INITIAL_POINTER_SIZE == 32# pragma __pointer_size 32#endif/*B** Beginning in OpenVMS V7.2, the mmap() function was enhanced toE** allow specifying an additional parameter through which the callerA** can request creation a special kind of the global section for!** MAP_SHARED (DEC C extension).*/Q#if !defined(_XOPEN_SOURCE) && !defined(_POSIX_C_SOURCE) && __CRTL_VER > 70100622^ void *mmap (void *addr, __size_t len, int prot, int flags, int filedes, __off_t off, ...);#elseY void *mmap (void *addr, __size_t len, int prot, int flags, int filedes, __off_t off);#endif#if __INITIAL_POINTER_SIZE# pragma __pointer_size 32T# if !defined(_XOPEN_SOURCE) && !defined(_POSI X_C_SOURCE) && __CRTL_VER > 70100622e void *_mmap32 (void *addr, __size_t len, int prot, int flags, int filedes, __off_t off, ...);# else` void *_mmap32 (void *addr, __size_t len, int prot, int flags, int filedes, __off_t off); # endif# pragma __pointer_size 64Q#if !defined(_XOPEN_SOURCE) && !defined(_POSIX_C_SOURCE) && __CRTL_VER > 70100622e void *_mmap64 (void *addr, __size_t len, int prot, int flags, int filedes, __off_t off, ...);# else` void *_mmap64 (void *addr, __size_t len, int prot, int flags, int filedes, __off_t off); # endif#endif/*%** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif"#endif /* OpenVMS V7.0 or later */#pragma __standard#endif /* __MMAN_LOADED */ww'HE\#ifndef _MONETARY_LOADED#define _MONETARY_LOADEDM/******************************************************************************!** - monetary types**M*******************************************************************************I** Header introduced by the X/Open CAE Specification, Issue 4, Version 2**K** Definitions in this header file may not be available on all versions ofK** OpenVMS. See the DEC C Runtime Library reference manual for specifics.**M*******************************************************************************.** Copyright 2000 Compaq Computer Corporation **N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N**************************************************************** ***************/#pragma __nostandard#include #ifdef __cplusplus extern "C" {#endif/*L** If the user has used /pointer_size, we will set our default pointer size** to 64-bit pointers.*/#if __INITIAL_POINTER_SIZE # pragma __pointer_size __save# pragma __pointer_size 64#endif/*** Define SIZE_T and SSIZE_T*/#ifndef __SIZE_T# define __SIZE_T 1 typedef __size_t size_t;#endif#ifndef __SSIZE_T# define __SSIZE_T 1  typedef __ssize_t ssize_t;#endif/*** Function prototypes*/Issize_t strfmon(char *__s, size_t __maxsize, const char *__format, ...); /*%** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif#pragma __standard #endif /* _MONETARY_LOADED */wwUHE\#ifndef __NAMESER_LOADED#define __NAMESER_LOADED 1M/******************************************************************************1** - define maximum domain name size**M******************************************************************************* Header is nonstandardM*******************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N*******************************************************************************/#pragma __nostandard#include #ifdef __cplusplus extern "C" {#endif/*E** All includes of other header files must be done prior to altering** the pointer size mode. */#include #include /*.** Start processing in 32-bit addressing mode*/#if __INITIAL_POINTER_SIZE # pragma __pointer_size __save# pragma __pointer_size 32#endif/*A** All structures should be member aligned on natural boundaries*/!#pragma __member_alignment __save#pragma __member_alignment/*=** This definition does not appear in the new NAMESER.H file*/#define MAXDNAME 256/*F * revisio n information. this is the release date in YYYYMMDD format.E * it can change every day so the right thing to do with it is use itI * in preprocessor commands such as "#if (__NAMESER > 19931104)". do notN * compare for equality; rather, use it to determine whether your libnameser.a. * is new enough to contain a certain feature. */8/* XXXRTH I made this bigger than __BIND in 4.9.5 T6B */=#define __NAMESER 19961001 /* New interface version stamp. *//*8 * Define constants based on RFC  883, RFC 1034, RFC 1035 */1#define NS_PACKETSZ 512 /* maximum packet size */2#define NS_MAXDNAME 1025 /* maximum domain name */=#define NS_MAXCDNAME 255 /* maximum compressed domain name */;#define NS_MAXLABEL 63 /* maximum length of domain label */<#define NS_HFIXEDSZ 12 /* #/bytes of fixed data in header */:#define NS_QFIXEDSZ 4 /* #/bytes of fixed data in query */?#define NS_RRFIXEDSZ 10 /* #/bytes of fixed data in r record */9#define NS_INT32SZ 4 /* #/bytes of data in a u_int32_t */9#define NS_INT16SZ 2 /* #/bytes of data in a u_int16_t */7#define NS_INT8SZ 1 /* #/bytes of data in a u_int8_t */$#define NS_INADDRSZ 4 /* IPv4 T_A */)#define NS_IN6ADDRSZ 16 /* IPv6 T_AAAA */F#define NS_CMPRSFLGS 0xc0 /* Flag bits indicating name compression. */5#define NS_DEFAULTPORT 53 /* For both TCP and UDP. *//*M * These can be expanded with synonyms, just keep ns_parse.c:ns_parserecord() * in synch with it. */typedef enum __ns_sect {% ns_s_qd = 0, /* Query: Question. */" ns_s_zn = 0, /* Update: Zone. */# ns_s_an = 1, /* Query: Answer. */+ ns_s_pr = 1, /* Update: Prerequisites. */) ns_s_ns = 2, /* Query: Name servers. */$ ns_s_ud = 2, /* Update: Update. */6 ns_s_ar = 3, /* Query|Update: Additional records. */ ns_s_max = 4 } ns_sect;/*M * This is a message handle. It is caller allocated and has no dynamic data.J * This structure is intended to be opaque to all but ns_parse.c, thus theM * leading _'s on the member names. Use the accessor functions, not the _'s. */typedef struct __ns_msg { const __u_char *_msg, *_eom;* u_int16_t _id, _flags, _counts[ns_s_max];% const __u_char *_sections[ns_s_max]; ns_sect _sect; int _rrnum; const __u_char *_ptr; } ns_msg;?/* Private data structure - do not use from outside library. */+struct _ns_flagdata { int mask, shift; };*extern struct _ns_flagdata _ns_flagdata[];=/* Accessor macros - this is part of the public interface. */(#define ns_msg_getflag(handle, flag) ( \0 ((handle)._flags & _ns_flagdata[flag].mask) \! >> _ns_flagdata[flag].shift \ ),#define ns_msg_id(handle) ((handle)._id + 0)/#define ns_msg_base(handle) ((handle)._msg + 0).#define ns_msg_end(handle) ((handle)._eom + 0);#define ns_msg_size(handle) ((handle)._eom - (handle)._msg)E#define ns_msg_count(handle, section) ((handle)._counts[section] + 0)/*L * This is a parsed record. It is caller allocated and has no dynamic data. */typedef struct __ns_rr {2 char name[NS_MAXDNAME]; /* XXX need to malloc */ u_int16_t type; u_int16_t rr_class; u_int32_t ttl; u_int16_t rdlength; const __u_char *rdata;} ns_rr;=/* Accessor macros - this is part of the public interface. */A#define ns_rr_name(rr) (((rr).name[0] != '\0') ? (rr).name : ".")&#define ns_rr_type(rr) ((rr).type + 0)+#define ns_rr_class(rr) ((rr).rr_class + 0)$#define ns_rr_ttl(rr) ((rr).ttl + 0)+#define ns_rr_rdlen(rr) ((rr).rdlength + 0)(#define ns_rr_rdata(rr) ((rr).rdata + 0)/* H * These don't have to be in the same order as in the packet flags word,I * and they can even overlap in some cases, but they will need to be kept* * in synch with ns_parse.c:ns_flagdata[]. */typedef enum __ns_flag {# ns_f_qr, /* Question/Response. */$ ns_f_opcode, /* Operation code. */& ns_f_aa, /* Authoritative Answer. */% ns_f_tc, /* Truncation occurred. */# ns_f_rd, /* Recursion Desired. */% ns_f_ra, /* Recursion Available. */ ns_f_z, /* MBZ. */) ns_f_ad, /* Authentic Data (DNSSEC). */, ns_f_cd, /* Checking Disabled (DNSSEC). */" ns_f_rcode, /* Response code. */ ns_f_max } ns_flag;/* * Currently defined opcodes. */typedef enum __ns_opcode {' ns_o_query = 0, /* Standard query. */? ns_o_iquery = 1, /* Inverse query (deprecated/unsupported). */? ns_o_status = 2, /* Name server status query (unsupported). */) /* Opcode 3 is undefined/reserved. */1 ns_o_notify = 4, /* Zone change notification. */, ns_o_update = 5, /* Zone update message. */ ns_o_max = 6 } ns_opcode;/*$ * Currently defined response codes. */typedef enum __ns_rcode {+ ns_r_noerror = 0, /* No error occurred. */& ns_r_formerr = 1, /* Format error. */) ns_r_servfail = 2, /* Server failure. */% ns_r_nxdomain = 3, /* Name error. */' ns_r_notimpl = 4, /* Unimplemented. */+ ns_r_refused = 5, /* Operation refused. */ /* these are for BIND_UPDATE */% ns_r_yxdomain = 6, /* Name exists */% ns_r_yxrrset = 7, /* RRset exists */- ns_r_nxrrset = 8, /* RRset does not exist */3 ns_r_notauth = 9, /* Not authoritative for zone */D ns_r_notzone = 10, /* Zone of record different from zone section */ ns_r_max = 11 } ns_rcode;/* BIND_UPDATE */$typedef enum __ns_update_operation { ns_uop_delete = 0, ns_uop_add = 1, ns_uop_max = 2} ns_update_operation;/* forward decls for C++ */#ifdef __cplusplusstruct databuf;#endif/*2 * This RR-like structure is particular to UPDATE. */struct ns_updrec {, struct ns_u pdrec *r_next; /* next record */3 u_int8_t r_section; /* ZONE/PREREQUISITE/UPDATE */' char * r_dname; /* owner of the RR */& u_int16_t r_class; /* class number */% u_int16_t r_type; /* type number */% u_int32_t r_ttl; /* time to live */6 __u_char * r_data; /* rdata fields as text string */. u_int16_t r_size; /* size of r_data field */' int r_opcode; /* type of operation */G /* following fields for private use by the resolver/server routines */< struct ns_updrec *r_grpnext; /* next record when grouped */0 struct databuf *r_dp; /* databuf to process */= struct databuf *r_deldp; /* databuf's deleted/overwritten */. int16_t r_zone; /* zone number on server */};#typedef struct ns_updrec ns_updrec;/*; * Currently defined type values for resources and queries. */typedef enum __ns_type {! ns_t_a = 1, /* Host address. */* ns_t_ns = 2, /* Authoritative server. */& ns_t_md = 3, /* Mail destination. */$ ns_t_mf = 4, /* Mail forwarder. */' ns_t_cname = 5, /* Canonical name. */. ns_t_soa = 6, /* Start of authority zone. */) ns_t_mb = 7, /* Mailbox domain name. */' ns_t_mg = 8, /* Mail group member. */& ns_t_mr = 9, /* Mail rename name. */- ns_t_null = 10, /* Null resource record. */* ns_t_wks = 11, /* Well known service. */+ ns_t_ptr = 12, /* Domain name pointer. */) ns_t_hinfo = 13, /* Host information. */, ns_t_minfo = 14, /* Mailbox information. *// ns_t_mx = 15, /* Mail routing information. */$ ns_t_txt = 16, /* Text strin gs. */) ns_t_rp = 17, /* Responsible person. */* ns_t_afsdb = 18, /* AFS cell database. */, ns_t_x25 = 19, /* X_25 calling address. */- ns_t_isdn = 20, /* ISDN calling address. */ ns_t_rt = 21, /* Router. */% ns_t_nsap = 22, /* NSAP address. */< ns_t_nsap_ptr = 23, /* Reverse NSAP lookup (deprecated). */* ns_t_sig = 24, /* Security signature. */$ ns_t_key = 25, /* Security key. */) ns_t_px = 26, /* X.400 mail mapping. */: ns_t_gpos = 27, /* Geographical position (withdrawn). */$ ns_t_aaaa = 28, /* Ip6 Address. */, ns_t_loc = 29, /* Location Information. */. ns_t_nxt = 30, /* Next domain (security). */+ ns_t_eid = 31, /* Endpoint identifier. */( ns_t_nimloc = 32, /* Nimrod Locator. */( ns_t_srv = 33, /* Server Selection. */# ns_t_atma = 34, /* ATM Address */0 ns_t_naptr = 35, /* Naming Authority PoinTeR */A /* Query type values which do not appear in resource records. */2 ns_t_ixfr = 251, /* Incremental zone transfer. */3 ns_t_axfr = 252, /* Transfer zone of authority. */2 ns_t_mailb = 253, /* Transfer mailbox records. */5 ns_t_maila = 254, /* Transfer mail agent records. */' ns_t_any = 255, /* Wildcard match. */ ns_t_max = 65536 } ns_type;/* * Values for class field */typedef enum __ns_class { ns_c_in = 1, /* Internet. */* /* Class 2 unallocated/unsupported. */& ns_c_chaos = 3, /* MIT Chaos-net. */ ns_c_hs = 4, /* MIT Hesiod. */A /* Query class values which do not appear in resource records */? ns_c_none = 254 , /* for prereq. sections in update requests */' ns_c_any = 255, /* Wildcard match. */ ns_c_max = 65536 } ns_class;/*" * Flags field of the KEY RR rdata */:#define NS_KEY_TYPEMASK 0xC000 /* Mask for "type" bits */>#define NS_KEY_TYPE_AUTH_CONF 0x0000 /* Key usable for both */I#define NS_KEY_TYPE_CONF_ONLY 0x8000 /* Key usable for confidentiality */H#define NS_KEY_TYPE_AUTH_ONLY 0x4000 /* Key usable for authentication */H#define NS_KEY_TYPE_NO_KEY 0xC000 /* No key usable for either; no key */J/* The type bits can also be interpreted independently, as single bits: */D#define NS_KEY_NO_AUTH 0x8000 /* Key unusable for authentication */E#define NS_KEY_NO_CONF 0x4000 /* Key unusable for confidentiality */I#define NS_KEY_EXPERIMENTAL 0x2000 /* Security is *mandatory* if bit=0 */>#define NS_KEY_RESERVED3 0x1000 /* reserved - must be zero */>#define NS_KEY_RESERVED4 0x0800 /* reserved - must be zero */F#define NS_KEY_USERACCOUNT 0x0400 /* key is assoc. with a user acct */E#define NS_KEY_ENTITY 0x0200 /* key is assoc. with entity eg host */4#define NS_KEY_ZONEKEY 0x0100 /* key is zone key */B#define NS_KEY_IPSEC 0x0080 /* key is for IPSEC (host or user)*/D#define NS_KEY_EMAIL 0x0040 /* key is for email (MIME security) */?#define NS_KEY_RESERVED10 0x0020 /* reserved - must be zero */?#define NS_KEY_RESERVED11 0x0010 /* reserved - must be zero */H#define NS_KEY_SIGNATORYMASK 0x000F /* key can sign RR's of same name */6#define NS_KEY_RESERVED_BITMASK ( NS_KEY_RESERVED3 | \ NS_KEY_RESERVED4 | \ NS_KEY_RESERVED10 | \ NS_KEY_RESERVED11 )I/* The Algorithm field of the KEY and SIG RR's is an integer, {1..254} */+#define NS_ALG_MD5RSA 1 /* MD5 with RSA */8#define NS_ALG_EXPIRE_ONLY 253 /* No alg, no security */C#define NS_ALG_PRIVATE_OID 254 /* Key begins with OID giving alg *//* Signatures */B#define NS_MD5RSA_MIN_BITS 512 /* Size of a mod or exp in bits */#define NS_MD5RSA_MAX_BITS 2552" /* Total of binary mod and exp */:#define NS_MD5RSA_MAX_BYTES ((NS_MD5RSA_MAX_BITS+7/8)*2+3)# /* Max length of text sig block */<#define NS_MD5RSA_MAX_BASE64 (((NS_MD5RSA_MAX_BYTES+2)/3)*4):/* Offsets into SIG record rdata to find various values */&#define NS_SIG_TYPE 0 /* Type flags */$#define NS_SIG_ALG 2 /* Algorithm */5#define NS_SIG_LABELS 3 /* How many labels in name */(#define NS_SIG_OTTL 4 /* Original TTL */,#define NS_SIG_EXPIR 8 /* Expiration time */-#define NS_SIG_SIGNED 12 /* Signature time */ *#define NS_SIG_FOOT 16 /* Key footprint */;#define NS_SIG_SIGNER 18 /* Domain name of who signed it */>/* How RR types are represented as bit-flags in NXT records */#define NS_NXT_BITS 8P#define NS_NXT_BIT_SET( n,p) (p[(n)/NS_NXT_BITS] |= (0x80>>((n)%NS_NXT_BITS)))P#define NS_NXT_BIT_CLEAR(n,p) (p[(n)/NS_NXT_BITS] &= ~(0x80>>((n)%NS_NXT_BITS)))P#define NS_NXT_BIT_ISSET(n,p) (p[(n)/NS_NXT_BITS] & (0x80>>((n)%NS_NXT_BITS)))/*? * Inline versions of get/put short/long. Pointer is advanced. */#define NS_GET16(s, cp) { \. register __u_char *t_cp = (__u_char *)(cp); \" (s) = ((u_int16_t)t_cp[0] << 8) \ | ((u_int16_t)t_cp[1]) \ ; \ (cp) += NS_INT16SZ; \}#define NS_GET32(l, cp) { \. register __u_char *t_cp = (__u_char *)(cp); \# (l) = ((u_int32_t)t_cp[0] << 24) \# | ((u_int32_t)t_cp[1] << 16) \" | ((u_int32_t)t_cp[2] << 8) \ | ((u_int32_t)t_cp[3]) \ ; \ (cp) += NS_INT32SZ; \}#define NS_PUT16(s, cp) { \+ register u_int16_t t_s = (u_int16_t)(s); \. register __u_char *t_cp = (__u_char *)(cp); \ *t_cp++ = t_s >> 8; \ *t_cp = t_s; \ (cp) += NS_INT16SZ; \}#define NS_PUT32(l, cp) { \+ register u_int32_t t_l = (u_int32_t)(l); \. register __u_char *t_cp = (__u_char *)(cp); \ *t_cp++ = t_l >> 24; \ *t_cp++ = t_l >> 16; \ *t_cp++ = t_l >> 8; \ *t_cp = t_l; \ (cp) += NS_INT32SZ; \}#ifdef __TCPIP_RESOLVER_BUILD__#define ns_get16 res$$ns_get16#define ns_get32 res$$ns_get32#define ns_put16 res$$ns_put16#define ns_put32 res$$ns_put32'#define ns_initparse res$$ns_initparse##define ns_parserr res$$ns_parserr%#define ns_sprintrr res$$ns_sprintrr'#define ns_sprintrrf res$$ns_sprintrrf)#define ns_format_ttl res$$ns_format_ttl'#define ns_parse_ttl res$$ns_parse_ttl'#define ns_name_ntop res$$ns_name_ntop'#define ns_name_pton res$$ns_name_pton+#define ns_name_unpack res$$ns_name_unpack'#define ns_name_pack res$$ns_name_pack.#define ns_name_compress res$$ns_name_compress2#define ns_name_uncompress res$$ns_name_uncompress#else/*J * If the user has defined a feature test macro, __TCPIP_GLOBALS, we willJ * define these functions as globals which are resolved by a TCPIP object * library. */#ifdef __TCPIP_GLOBALS.#define ns_get16 TCPIP$NS_GET16.#define ns_get32 TCPIP$NS_GET32.#define ns_put16 TCPIP$NS_PUT16.#define ns_put32 TCPIP$NS_PUT322#define ns_initparse  TCPIP$NS_INITPARSE0#define ns_parserr TCPIP$NS_PARSERR1#define ns_sprintrr TCPIP$NS_SPRINTRR2#define ns_sprintrrf TCPIP$NS_SPRINTRRF3#define ns_format_ttl TCPIP$NS_FORMAT_TTL2#define ns_parse_ttl TCPIP$NS_PARSE_TTL2#define ns_name_ntop TCPIP$NS_NAME_NTOP2#define ns_name_pton TCPIP$NS_NAME_PTON4#define ns_name_unpack TCPIP$NS_NAME_UNPACK2#define ns_name_pack TCPIP$NS_NAME_PACL6#define ns_name_compress TCPIP$NS_NAME_COMPRESS8#define ns_name_uncompress TCPIP$NS_NAME_UNCOMPRESS#endif#endif%__u_int ns_get16 (const __u_char *);&__u_long ns_get32 (const __u_char *);%void ns_put16 (__u_int, __u_char *);&void ns_put32 (__u_long, __u_char *);4int ns_initparse (const __u_char *, int, ns_msg *);2int ns_parserr (ns_msg *, ns_sect, int, ns_rr *);0int ns_sprintrr (const ns_msg *, const ns_rr *,1 const char *, const char *, char *, size_t);:int ns_sp rintrrf (const __u_char *, size_t, const char *,4 ns_class, ns_type, __u_long, const __u_char *,) size_t, const char *, const char *, char *, size_t);.int ns_format_ttl (__u_long, char *, size_t);-int ns_parse_ttl (const char *, __u_long *);5int ns_name_ntop (const __u_char *, char *, size_t);5int ns_name_pton (const char *, __u_char *, size_t);8int ns_name_unpack (const __u_char *, const __u_char *,. const __u_char *, __u_char *, size_t);5int ns_name_pack (const __u_char *, __u_char *, int,, const __u_char **, const __u_char **);<int ns_name_uncompress (const __u_char *, const __u_char *,' const __u_char *, char *, size_t);8int ns_name_compress (const char *, __u_char *, size_t,0 const __u_char **, const __u_char **);8int ns_name_skip (const __u_char **, const __u_char *);/*%** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif$#pragma __member_alignment __restore#pragma __standard#endif /* __NAMESER_LOADED */ww?HE\#ifndef __NETDB_LOADED#define __NETDB_LOADED 1M/******************************************************************************-** - Network database library info**M*****************************************************************************I** Header introduced by the X/Open CAE Specification, Issue 4, Version 2M**************************************** ***************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard  commercial license.**N*******************************************************************************/#pragma __nostandard#include #ifdef __cplusplus extern "C" {#endif/*E** All includes of other header files must be done prior to altering** the pointer size mode. */#include #include #include /*H** IPv6: Include these here for now so res_init() and RES_USE_INET6 will0** be available for gethostbynam e() users.*/#include #include #include /*.** Start processing in 32-bit addressing mode*/#if __INITIAL_POINTER_SIZE # pragma __pointer_size __save# pragma __pointer_size 32#endif/*O** Those socket structures allocated by the DEC C RTL or the underlying tcp/ipM** layer are always 32 bit pointers. Declare typedefs which are pointers toM** these structures while in 32 bit pointer context. We will then use theseG** typedefs in th e function prototypes when in 64 bit pointer context.*/1typedef struct hostent * __struct_hostent_ptr32;1typedef struct servent * __struct_servent_ptr32;0typedef struct netent * __struct_netent_ptr32;2typedef struct protoent * __struct_protoent_ptr32;/*I** The OpenVMS V7.0 release added a second implementation of the socket F** functions which is compatible with BSD 4.4. Define a local to be C** used throughout the remaining header file which reflects which !** implementati on is being used.**I** An application program enables this support by defining _SOCKADDR_LEN(** prior to including this header file.*/#ifdef _SOCKADDR_LEN# if (__CRTL_VER < 70000000)H# error " BSD 4.4 Socket package not available before OpenVMS V7.0"# undef _SOCKADDR_LEN # endif#endif/*A** All structures should be member aligned on natural boundaries*/!#pragma __member_alignment __save#pragma __member_alignment/*8** Conditionally define in_addr_t and size_t structures*/5#if !defined __IN_ADDR_T && !defined _DECC_V4_SOURCE# define __IN_ADDR_T" typedef __in_addr_t in_addr_t;#endif#ifndef __SIZE_T# define __SIZE_T 1 typedef __size_t size_t;#endif/*5** Internal Constants for Reentrant Socket Functions*/#define _MAXALIASES 35#define _MAXLINELEN 1024#define _MAXADDRS 35$#define _HOSTBUFSIZE (BUFSIZ + 1)*#define _PATH_HEQUIV "/etc/hosts.equiv"$#define _PATH_HOSTS "/etc/hosts"'#define _PATH_NETWORKS "/etc/networks"(#define _PATH_PROTOCOLS "/etc/protocols"'#define _PATH_SERVICES "/etc/services"/* Internal constants */#define _MAXALIASES 35#define _MAXLINELEN 1024#define _MAXADDRS 35!#define _HOSTBUFSIZE (BUFSIZ + 1)/*G** Structures returned by network data base library. All addresses areF** supplied in host order, and returned in network order (suitable for** use in system calls).**//*** Hostent Structure**E** This structure specifies or obtains a host name, a list of aliases<** associated with the host, and the host's number specifiedH** as an Internet address from the host database. An entry in the host 2** database is created with the following command:**** TCPIP> SET HOST XXXX**H** See the DEC TCP/IP Services for OpenVMS System Management manual for &** a description of the host database.*//*** Netent Structure**H** This structure specifies or obtains a network name, a list of aliasesB** associated with the network, and the network's number specifiedN** as an Internet address from the network database. An entry in the network 2** database is created with the following command:**** UCX > SET NETWORK XXXX**H** See the DEC TCP/IP Services for OpenVMS System Management manual for )** a description of the network database.*/struct hostent {* char *h_name; /* official name of host */# char **h_aliases; /* alias list */( int h_addrtype; /* host address type */& int h_length; /* length of address */= char **h_addr_list; /* list of addresses from name server */F#define h_addr h_addr_list[0] /* address, for backward compatiblity */};/*** Netent Structure**H** This structure specifies or obtains a network name, a list of aliasesB** associated with the network, and the network's number specifiedM** as an Internet address from the network database. An entry in the network2** database is created with the following command:**** TCPIP> SET NETWORK XXXX**G** See the DEC TCP/IP Services for OpenVMS System Management manual for)** a description of the network database.***//*+ * Assumption here is that a network number* * fits in 32 bits -- probably a poor one. */struct netent {* char *n_name; /* official name of net */$ char **n_aliases; /* alias list */( int n_addrtype; /* net address type */$ __in_addr_t n_net; /* network # */};/*** Servent Structure**H** This structure specifies or obtains a service name, a list of aliasesB** associated with the service, and the service's number specifiedO** as an Internet address from the services database. An entry in the services2** database is created with the following command:**** TCPIP> SET SERV XXXX**G** See the DEC TCP/IP Services for OpenVMS System Management manual for*** a description of the services database.*/struct servent {* char *s_name; /* official service name */# char **s_aliases; /* alias list */ int s_port; /* port # */% char *s_proto; /* protocol to use */};struct protoent {+ char *p_name; /* official protocol name */# char **p_aliases; /* alias list */ int p_proto; /* protocol # */};/* * addrinfo structure */struct addrinfo {" int ai_flags; /* input flags */. int ai_family; /* protofamily for socket */% int ai_socktype; /* socket type */- int ai_protocol; /* protocol for socket */4 size_t ai_addrlen; /* length of socket-address */; char *ai_canonname; /* service location canonical name */: struct sockaddr *ai_addr; /* socket-address for socket */8 struct addrinfo *ai_next; /* pointer to next in list */};#ifndef _SOCKADDR_LEN# ifdef getaddrinfo# undef getaddrinfo # endif+# define getaddrinfo getaddrinfo_compat43#endif/* * Flag values for getaddrinfo() */F#define AI_PASSIVE 0x00000001 /* socket address intended for bind() */@#define AI_CANONNAME 0x00000002 /* request for canonical name *//* * Flag values for getnameinfo() */#define NI_DGRAM 0x00000001#define NI_NAMEREQD 0x00000002#define NI_NOFQDN 0x00000004!#define NI_NUMERICHOST 0x00000008!#define NI_NUMERICSERV 0x00000010#define NI_MAXHOST 1025#define NI_MAXSERV 32/* ** DEC C extensions*/ ##if !defined _XOPEN_SOURCE_EXTENDED /* ** Rpcent Structures */ struct rpcent {; char *r_name; /* name of server for rpc program */; char **r_aliases; /* alias list  */; int r_number; /* rpc program number */ };#endif/*M** Error return codes from gethostbyname and gethostbyaddr (left in h_errno)*/P#define HOST_NOT_FOUND 1 /* Authoritative Answer Host not found */R#define TRY_AGAIN 2 /* Non-Authoritive Host not fnd, or SERVERFAIL */P#define NO_RECOVERY 3 /* Non recoverable errors */P#define NO_DATA 4 /* Valid name, no data rec of requested type */P#define NO_ADDRESS NO_DATA /* No address, look for MX record */"#if defined __TCPIP_ALLOCATE_RES__ extern int h_errno;#else# if __CRTL_VER >= 70000000 /*> ** As of OpenVMS V7.0, the DEC C RTL supports h_errno. */( int *decc$h_errno_get_addr(void);0# define h_errno (*decc$h_errno_get_addr())# else /*J ** If the user has defined a feature test macro, __TCPIP_GLOBALS, K ** we will define these functions as globals which are resolved by " ** a TCPIP object library. */# ifdef __TCPIP_GLOBALS) int *TCPIP$GET_H_ERRNO_ADDR(void);/# define h_errno *TCPIP$GET_H_ERRNO_ADDR() # endif # endif#endif/*! * Error values for getaddrinfo() */L#define EAI_ADDRFAMILY 1 /* address family for hostname not supported */B#define EAI_AGAIN 2 /* temporary failure in name resolution */<#define EAI_BADFLAGS 3 /* invalid value for ai_flags */ G#define EAI_FAIL 4 /* non-recoverable failure in name resolution */6#define EAI_FAMILY 5 /* ai_family not supported */9#define EAI_MEMORY 6 /* memory allocation failure */ B#define EAI_NODATA 7 /* no address associated with hostname */K#define EAI_NONAME 8 /* hostname nor servname provided, or not known */F#define EAI_SERVICE 9 /* servname not supported for ai_socktype */:#define EAI_SOCKTYPE 10 /* ai_socktype not supported */=#define EAI_SYSTEM 11 /* system error returned in errno *//*O** 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/*L** The following functions return pointers to memory allocated by the DEC CI** RTL or the underlying tcp/ip layer. These pointers are always 32 bit@** pointers, while the pointer parameters may be 32 or 64 bits.*/I__struct_netent_ptr32 getnetbyaddr (__in_add r_t __net, int __type);0__struct_netent_ptr32 getnetent (void);7__struct_protoent_ptr32 getprotobynumber (int __proto);0__struct_protoent_ptr32 getprotoent (void); >__struct_netent_ptr32 getnetbyname (const char *__name);S__struct_servent_ptr32 getservbyname (const char *__name, const char *__proto);K__struct_servent_ptr32 getservbyport (int __port, const char *__proto);>__struct_protoent_ptr32 getprotobyname (const char *__name);#if __CRTL_VER >= 700000004 __struct_hostent_ptr32 gethostent (void);4 __struct_servent_ptr32 getservent (void); void endnetent (void); void endprotoent (void); void endhostent (void); void endservent (void);& void sethostent (int __stayopen);& void setservent (int __stayopen);& void setnetent (int __stayopen);& void setprotoent (int __stayopen);#endif/*2** These functions have new semantics for BSD 4.4*/#ifdef _SOCKADDR_LEN# if __CAN_USE _EXTERN_PREFIX%# pragma __extern_prefix __save)# pragma __extern_prefix "__bsd44_"# elseT# define gethostbyaddr(__p1,__p2,__p3) __bsd44_gethostbyaddr(__p1,__p2,__p3)J# define gethostbyname(__p1) __bsd44_gethostbyname(__p1) # endif#endifT__struct_hostent_ptr32 gethostbyaddr (const void *__addr, size_t __len, int __type);:__struct_hostent_ptr32 gethostbyname (const char *__name);:__struct_hostent_ptr32 gethostbyname2 (const char *, int);&void f reeaddrinfo (struct addrinfo *);Zint getaddrinfo (const char *, const char *, const struct addrinfo *, struct addrinfo **);Wint getnameinfo (const struct sockaddr *, size_t, char *, size_t, char *, size_t, int);char *gai_strerror (int);#ifdef _SOCKADDR_LEN# if __CAN_USE_EXTERN_PREFIX(# pragma __extern_prefix __restore # endif#endif/* ** DEC C Extensions*/ =#if !defined _XOPEN_SOURCE_EXTENDED && __CRTL_VER >= 70000000# void herror (const char *__s1); ! /*> ** The hstrerror function always returns a 32 bit pointer */% __char_ptr32 hstrerror (int __n);#endif)#define NETDB_INTERNAL -1 /* see errno */(#define NETDB_SUCCESS 0 /* no problem */B#define HOST_NOT_FOUND 1 /* Authoritative Answer Host not found */G#define TRY_AGAIN 2 /* Non-Authoritive Host not found, or SERVERFAIL */L#define NO_RECOVERY 3 /* Non recoverable errors, FORMERR, REFUSED, NOTIMP */E#define NO_DATA 4 /* Valid name, no data record of requested type *"/@#define NO_ADDRESS NO_DATA /* no address, look for MX record *//*%** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif$#pragma __member_alignment __restore#pragma __standard#endif /* __NETDB_LOADED */ww+HE\#ifndef __NL_TYPES_LOADED#define __NL_TYPES_LOADED 1#pragma __nostandard#include A#if __CRTL_VER >= 60200000 /* Support added in O#penVMS V6.2 */M/******************************************************************************** - data types**M*****************************************************************************>** Header introduced by the X/Open CAE Specification, Issue 4M*******************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** $Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N*******************************************************************************/#ifdef __cplusplus extern "C" {#endif#if __INITIAL_POINTER_SI%ZE # pragma __pointer_size __save# pragma __pointer_size 32#endif/*"** Define structures and typedefs*/'typedef struct _nl_catdstruct *nl_catd;typedef int nl_item;/*** Define constants*/#define NL_CAT_LOCALE 1#define NL_SETD 1/*G** When compiling with /POINTER_SIZE, change to long pointers so that I** prototypes reflect the implementation for widened pointers. When notG** using /POINTER_SIZE, the prototypes do not allow for long pointers&.*/#if __INITIAL_POINTER_SIZE# pragma __pointer_size 64#endif/*** Function prototypes*/2nl_catd catopen (const char *__name, int __oflag);int catclose (nl_catd __catd);/*K** The following functions default the parameters and return values to theI** pointer_size used in the command line. Two additional functions are L** provided if the application needs to specically use the 32 bit or 64 bit** interfaces.*/ #if __INITIAL_POINTER_SIZE == 32#pragma __poin'ter_size 32#endifKchar *catgets(nl_catd __catd, int __set_id, int __msg_id, const char* __s); #if __INITIAL_POINTER_SIZE == 32#pragma __pointer_size 64#endif4#if __INITIAL_POINTER_SIZE && __CRTL_VER >= 70000000# pragma __pointer_size 328 char * _catgets32 (nl_catd, int, int, const char *);# pragma __pointer_size 648 char * _catgets64 (nl_catd, int, int, const char *);#endif/*%** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma _(_pointer_size __restore#endif#ifdef __cplusplus }#endif#endif#pragma __standard #endif /* __NL_TYPES_LOADED */ww9HE\#ifndef __PERROR_LOADED#define __PERROR_LOADED 1M/******************************************************************************)** - error message variables **M******************************************************************************* Header is nonstandardM****************************************************** )*************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial lic*ense.**N*******************************************************************************/#pragma __nostandard#include #ifdef __cplusplus extern "C" {#endif#if __INITIAL_POINTER_SIZE # pragma __pointer_size __save# pragma __pointer_size 32#endif/*?** sys_nerr and sys_errlist are implemented as of OpenVMS V6.2*/#if __CRTL_VER >= 60200000 /*) ** Real values in the DECC$SHR image */ # pragma __extern_model __save*# prag+ma __extern_model __relaxed_refdef extern int sys_nerr; extern char *sys_errlist[];## pragma __extern_model __restore#else /*- ** Pre-V6.2 Stub values resolved in OLBs */#ifdef __ALPHA # pragma __extern_model __save*# pragma __extern_model __relaxed_refdef extern int sys_nerr; extern char *sys_errlist[];## pragma __extern_model __restore#else # pragma __extern_model __save(# pragma __extern_model __common_block extern int sys_n,err; extern char *sys_errlist[];## pragma __extern_model __restore#endif#endif/*%** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif#pragma __standard#endif /* __PERROR_LOADED */wwWFHE\#ifndef __PROCESSES_LOADED#define __PROCESSES_LOADED 1M/******************************************************************************)** - Sub process -functions**M******************************************************************************* Header is nonstandardM*******************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial. Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N*******************************************************************************/#pragma __nostandard#include #ifdef __cplusplus extern "C" {#endif#if __INITIAL_POINTER_SIZE # pragma __pointer_size __save# pragma __pointer_size 32#endif/* "** Public typedefs --/ 32-bit mode*/ 1#if !defined __PID_T && !defined _DECC_V4_SOURCE# define __PID_T 1 typedef __pid_t pid_t;#endif/*I** We are done defining things which must always be 32 bit pointers. IfC** the user has used /pointer_size=32 or /pointer_size=64, we will7** allow 64 bit pointers to be used in function calls.*/#if __INITIAL_POINTER_SIZE# pragma __pointer_size 64#endif/* M** DEC C V4 defined execl, execle and execlp without the required arg0. The2** ol0d prototypes are retained for compatibility.*/ #ifdef _DECC_V4_SOURCE# int execl (char *__name, ...);# int execle (char *__name, ...);# int execlp (char *__name, ...);#else; int execl (const char *__path, const char *arg0, ...);; int execle (const char *__path, const char *arg0, ...);; int execlp (const char *__file, const char *arg0, ...);#endif/*J** The following functions take an array of pointers as arguments. These7** arrays are restricted to a1rrays of 32 bit pointers.*/Cint execv (const char *__path, __char_ptr_const_ptr32 __argv);bint execve (const char *__path, __char_ptr_const_ptr32 __argv, __char_ptr_const_ptr32 __envp);Cint execvp (const char *__file, __char_ptr_const_ptr32 __argv);/*G** The pipe function optionally takes additional arguments when not in** standard compilation.*/#ifdef _POSIX_C_SOURCE ( int pipe (int __array_fdscptr[2]);#else- int pipe (int __array_fdscptr[2], ...);2#endif/*** Function prototypes*/1#if defined _POSIX_EXIT && __CRTL_VER >= 70000000# if __CAN_USE_EXTERN_PREFIX# pragma __extern_prefix __save## pragma __extern_prefix "__posix_"# else&# define wait(__p1) __posix_wait(__p1)*# define system(__p1) __posix_system(__p1) # endif#endif__pid_t wait(int *__stat_loc);"int system (const char *__string);1#if defined _POSIX_EXIT && __CRTL_VER >= 70000000# if __CAN_USE_EXTERN_PREFIX"# pragma __extern_prefix __res3tore # endif#endif/*6** The definition of vfork() is architecture specific*/#ifdef __ALPHA/ __int64_ptr32 decc$$get_vfork_jmpbuf(void);C int LIB$GET_CURRENT_INVO_CONTEXT(__int64_ptr32 __invo_context);' int decc$$alloc_vfork_blocks(void);7# define vfork() (decc$$alloc_vfork_blocks() >= 0 ? \@ LIB$GET_CURRENT_INVO_CONTEXT(decc$$get_vfork_jmpbuf()) : -1)#else# ifndef _DECC_V4_SOURCE __pid_t vfork(void); # else int vfork(v4oid); # endif#endif/*%** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif#pragma __standard #endif /* __PROCESSES_LOADED */ww+HE\#ifndef __PWD_LOADED#define __PWD_LOADED 1#pragma __nostandard#include >#if __CRTL_VER >= 70000000 /* Only OpenVMS V7.0 or later */M/*********************************************************************5*********,** - Password file access functions**M*****************************************************************************1** Header introduced by the ISO POSIX-1 StandardM*******************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession6, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N*******************************************************************************/#ifdef __cplusplus extern "C" {#endif#if __INITIAL_POINTER_SIZE # pragma __pointer_size __save# pragma __pointer_size 32#endif/*#**7 Naturally align data structures*/!#pragma __member_alignment __save#pragma __member_alignment/* ** X/Open extensions for types*/5#if defined _XOPEN_SOURCE || !defined _POSIX_C_SOURCE# if !defined __UID_T# define __UID_T 1 typedef __uid_t uid_t; # endif# if !defined __GID_T# define __GID_T 1 typedef __gid_t gid_t; # endif#endif/*** Define the passwd structure**H** Note that following fields typically appear in UNIX implementations.8**** char *pw_passwd;** int pw_quota;** char *pw_comment;** char *pw_gecos;**D** Also note that the following functions are also typically found.**'** struct passwd *getpwent (void);** int setpwent (void);** void endpwent (void);&** void setpwfile (const char *);***/struct passwd { char *pw_name; __uid_t pw_uid; __gid_t pw_gid; char *pw_dir; char *pw_shell;};/*K** Prior to enabl9ing 64 bit pointers, create typedefs for structures which*** are always allocated in 32 bit memory.*/.typedef struct passwd * __struct_passwd_ptr32;/*G** When compiling with /POINTER_SIZE, change to long pointers so that I** prototypes reflect the implementation for widened pointers. When notG** using /POINTER_SIZE, the prototypes do not allow for long pointers.*/#if __INITIAL_POINTER_SIZE# pragma __pointer_size 64#endif/*G** Function prototypes. The second arg:ument to getpwnam is whether it&** should be returned in UNIX format.*/#if __USE_LONG_GID_T!# pragma __extern_prefix __save(# pragma __extern_prefix "__long_gid_"#endif)__struct_passwd_ptr32 getpwuid (__uid_t);:#if (defined (_POSIX_C_SOURCE)) || (__CRTL_VER < 70100000)2 __struct_passwd_ptr32 getpwnam (const char *);#else7 __struct_passwd_ptr32 getpwnam (const char *, ...);#endif#if __USE_LONG_GID_T$# pragma __extern_prefix __restore#endif#if __USE_LO;NG_GID_T void endpwent (void);* __struct_passwd_ptr32 getpwent (void); void setpwent (void);#endif/*%** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif$#pragma __member_alignment __restore#endif /* __PWD_LOADED */#pragma __standard#endif /* __CRTL_VER */wwcIE\#ifndef __REENTRANCY_LOADED#define __REENTRANCY_LOADED 1M/********************* <*********************************************************F** - definitions needed for using DECC$SET_REENTRANCY **M******************************************************************************* Header is nonstandardM*******************************************************************************M** Copyright Digital Equipment Corporation 1993, 1997. All rights reserved.**B** Restricted Rights: Use, duplication, or disclosure by the U.S.F** Government is subjec =t to restrictions as set forth in subparagraphF** (c) (1) (ii) of DFARS 252.227-7013, or in FAR 52.227-19, or in FAR&** 52.227-14 Alt. III, as applicable.**A** This software is proprietary to and embodies the confidentialD** technology of Digital Equipment Corporation. Possession, use, orG** copying of this software and media is authorized only pursuant to aD** valid written license from Digital or an authorized sublicensor.**N********************************************************">***********************/#pragma __nostandard#ifdef __cplusplus extern "C" {#endif/*8** Define literals used in the decc$set_reentrancy call*/#define C$C_TOLERANT 0#define C$C_AST 1#define C$C_MULTITHREAD 2#define C$C_NONE 4/*** Function prototypes*/$int decc$set_reentrancy(int __type);#ifdef __cplusplus }#endif#pragma __standard #endif /* __REENTRANCY_LOADED */wwIE\#ifndef __RESOLV_LOADED#def?ine __RESOLV_LOADED 1#pragma __nostandard#include >#if __CRTL_VER >= 70000000 /* Only OpenVMS V6.2 or later *//*G** THIS HEADER IS SPECIALLY DESIGNED FOR THE TCPIP OPENVMS ENVIRONMENT.**I** THE BIND LIBRARY SHOULD BE BUILT WITH /DEFINE=__TCPIP_RESOLVER_BUILD__@** OTHERWISE THE INTERFACE TO TCPIP$ACCESS_SHR.EXE WILL BE USED.*/M/******************************************************************************,** - Resolver configuration file**M** @***************************************************************************** Header is nonstandardM*******************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer SoftwareA, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N*******************************************************************************/#ifdef __cplusplus extern "C" {#endif#include #include #include #include #include #if __INITIAL_POINTER_SIZE # pragma __pointer_size __save# pragma __pointer_size 32#endBif/*@** Conditionally define in_addr_t and __u_char_ptr32 structures*/#ifndef __U_CHAR_PTR32# define __U_CHAR_PTR32 1$ typedef u_char * __u_char_ptr32;0 typedef const u_char * __const_u_char_ptr32;#endif/*E** Enable 64 bit pointers for prototypes when the user has used the ** /pointer_size qualifier.*/#if __INITIAL_POINTER_SIZE#pragma __pointer_size 64#endif/*** Function prototypes*/&__char_ptr32 hostalias (const char *);/*F * RevisioCn information. This is the release date in YYYYMMDD format.E * It can change every day so the right thing to do with it is use itE * in preprocessor commands such as "#if (__RES > 19931104)". Do notJ * compare for equality; rather, use it to determine whether your resolver. * is new enough to contain a certain feature. */#define __RES 19960801/*2 * Global defines and variables for resolver stub. */6#define MAXNS 3 /* max # name servers we'll track */:#define MAXDFLSRCH 3 /*D # default domain levels to try */7#define MAXDNSRCH 6 /* max # domains in search path */C#define LOCALDOMAINPARTS 2 /* min levels in name that is "local" */9#define RES_TIMEOUT 5 /* min. seconds between retries */8#define MAXRESOLVSORT 10 /* number of net to sort on */<#define RES_MAXNDOTS 15 /* should reflect bit field size */struct __res_state {%#if !defined __TCPIP_RESOLVER_BUILD__ struct {#endif1 int retrans; /* retransmition time interval */1 int retry; /* numbe Er of times to retransmit */1 u_long options; /* option flags - see below. */+ int nscount; /* number of name servers */ struct sockaddr_in2 nsaddr_list[MAXNS]; /* address of name server */?#define nsaddr nsaddr_list[0] /* for backward compatibility */' u_short id; /* current message id */@ char *dnsrch[MAXDNSRCH+1]; /* components of domain to search */7 char defdname[256]; /* default domain (deprecated) */3 u_long pfcode; /* RES_PRF_ flags - see below. */: unsigned ndots:4;F /* threshold for initial abs. query */; unsigned nsort:4; /* number of elements in sort_list[] */ char unused[3]; struct { struct in_addr addr; u_int32_t mask; } sort_list[MAXRESOLVSORT]; union { struct sockaddr_in2 last_nsaddr; /* the server we just talked to */7 char pad[72]; /* On an i386 this means 512b total. */ } reserved;$#define last_ns reserved.last_nsaddr%#if !defined __TCPIP_RESOLVER_BUILD__ } res_state;#endif};/*B * Resolver options (keep th Gese in synch with res_debug.c, please) */5#define RES_INIT 0x00000001 /* address initialized */7#define RES_DEBUG 0x00000002 /* print debug messages */E#define RES_AAONLY 0x00000004 /* authoritative answers only (!IMPL)*/6#define RES_USEVC 0x00000008 /* use virtual circuit */F#define RES_PRIMARY 0x00000010 /* query primary server only (!IMPL) */:#define RES_IGNTC 0x00000020 /* ignore trucation errors */6#define RES_RECURSE 0x00000040 /* recursion desired */=#define RES_DEFNAMES 0x0000008 H0 /* use default domain name */:#define RES_STAYOPEN 0x00000100 /* Keep TCP socket open */?#define RES_DNSRCH 0x00000200 /* search up local domain tree */?#define RES_INSECURE1 0x00000400 /* type 1 security disabled */?#define RES_INSECURE2 0x00000800 /* type 2 security disabled */D#define RES_NOALIASES 0x00001000 /* shuts off HOSTALIASES feature */F#define RES_USE_INET6 0x00002000 /* use/map IPv6 in gethostbyname() */=#define RES_DEFAULT (RES_RECURSE | RES_DEFNAMES | RES_DNSRCH)/**I * Resolver "pfcode" values. Used by dig. */ #define RES_PRF_STATS 0x00000001!#define RES_PRF_UPDATE 0x00000002"#define RES_PRF_CLASS 0x00000004#define RES_PRF_CMD 0x00000008#define RES_PRF_QUES 0x00000010#define RES_PRF_ANS 0x00000020#define RES_PRF_AUTH 0x00000040#define RES_PRF_ADD 0x00000080 #define RES_PRF_HEAD1 0x00000100 #define RES_PRF_HEAD2 0x00000200 #define RES_PRF_TTLID 0x00000400 #define RES_PRF_HEADX 0x00000800 #define RES_PRF_QUERY 0x00001000 #define RES_PRF_JREPLY 0x00002000#define RES_PRF_INIT 0x00004000/* 0x00008000 */Ktypedef enum { res_goahead, res_nextns, res_modified, res_done, res_error } res_sendhookact;Jtypedef res_sendhookact (*res_send_qhook) (struct sockaddr_in * const *ns, const u_char **query, int *querylen, u_char *ans, int anssiz, int *resplen);Htypedef res_sendhookact (*res_send_rhook) (const struct sockaddr_in *ns, const u_char *query, K int querylen, u_char *ans, int anssiz, int *resplen);struct res_sym {1 int number; /* Identifying number, like T_MX */1 char * name; /* Its symbolic name, like "MX" */< char * humanname; /* Its fun name, like "mail exchanger" */};/*G** The following procedures are not defined in the DECC$SHR image, but3** instead must be resolved with the TCPIP images.**J** If the user has defined a feature test macro, __TCPIP_GLOBALS, we willJ**L define these functions as globals which are resolved by a TCPIP object ** library.*/#ifdef __TCPIP_GLOBALS #define res_hnok TCPIP$RES_HNOK"#define res_ownok TCPIP$RES_OWNOK$#define res_mailok TCPIP$RES_MAILOK #define res_dnok TCPIP$RES_DNOK #define sym_ston TCPIP$SYM_STON #define sym_ntos TCPIP$SYM_NTOS #define sym_ntop TCPIP$SYM_NTOP #define b64_ntop TCPIP$B64_NTOP #define b64_pton TCPIP$B64_PTON #define loc_ntoa TCPIP$LOC_NTOA #define loc_aton TCPIP$LOC_ATON$#define fpM_resstat TCPIP$FP_RESSTAT#define p_query TCPIP$P_QUERY&#define dn_skipname TCPIP$DN_SKIPNAME$#define fp_resstat TCPIP$FP_RESSTAT #define fp_query TCPIP$FP_QUERY"#define fp_nquery TCPIP$FP_NQUERY#if 0$# define hostalias TCPIP$HOSTALIAS#endif#define putlong TCPIP$PUTLONG #define putshort TCPIP$PUTSHORT#define p_class TCPIP$P_CLASS#define p_time TCPIP$P_TIME#define p_type TCPIP$P_TYPE#define p_query TCPIP$P_QUERY"#define p_cdnname TCPIP$P_CDNNAME"#definNe p_section TCPIP$P_SECTION #define p_cdname TCPIP$P_CDNAME"#define p_fqnname TCPIP$P_FQNNAME #define p_fqname TCPIP$P_FQNAME #define p_option TCPIP$P_OPTION(#define p_secstodate TCPIP$P_SECSTODATE.#define dn_count_labels TCPIP$DN_COUNT_LABELS#define dn_comp TCPIP$DN_COMP"#define dn_expand TCPIP$DN_EXPAND #define res_init TCPIP$RES_INIT(#define res_randomid TCPIP$RES_RANDOMID"#define res_query TCPIP$RES_QUERY$#define res_search TCPIP$RES_SEARCH.#define res_querydomain TCP OIP$RES_QUERYDOMAIN&#define res_mkquery TCPIP$RES_MKQUERY #define res_send TCPIP$RES_SEND.#define res_isourserver TCPIP$RES_ISOURSERVER.#define res_nameinquery TCPIP$RES_NAMEINQUERY/#define res_queriesmatch TCPIP$RES_QUERIESMATCH"#define res_close TCPIP$RES_CLOSE$#define res_update TCPIP$RES_UPDATE(#define res_mkupdate TCPIP$RES_MKUPDATE(#define res_mkupdrec TCPIP$RES_MKUPDREC,#define res_freeupdrec TCPIP$RES_FREEUPDREC.#define __p_class_syms (TCPIP$P_CLASS_SYMS()),#define __p_tyPpe_syms (TCPIP$P_TYPE_SYMS())'#define _res_opcodes TCPIP$RES_OPCODES.#define _res_resultcodes TCPIP$RES_RESULTCODES1#define _res_sectioncodes TCPIP$RES_SECTION_CODES#endif/*** Function prototypes*/int res_hnok (const char *);int res_ownok (const char *);int res_mailok (const char *);int res_dnok (const char *);<int sym_ston (const struct res_sym *, const char *, int *);A__const_char_ptr32 sym_ntos (const struct res_sym *, int, int *);A__const_char_ptr32 sym_nto Qp (const struct res_sym *, int, int *);7int b64_ntop (u_char const *, size_t, char *, size_t);/int b64_pton (char const *, u_char *, size_t);2int loc_aton (const char *ascii, u_char *binary);@__const_char_ptr32 loc_ntoa (const u_char *binary, char *ascii);2int dn_skipname (const u_char *, const u_char *);0void fp_resstat (struct __res_state *, FILE *);(void fp_query (const u_char *, FILE *);.void fp_nquery (const u_char *, int, FILE *);&__char_ptr32 hostalias (const char *);$void Rputlong (u_int32_t, u_char *);%void putshort (u_int16_t, u_char *);__char_ptr32 p_class (int); __char_ptr32 p_time (u_int32_t);__char_ptr32 p_type (int);void p_query (const u_char *);G__u_char_ptr32 p_cdnname (const u_char *, const u_char *, int, FILE *);A__u_char_ptr32 p_cdname (const u_char *, const u_char *, FILE *);>__u_char_ptr32 p_fqnname (const u_char *cp, const u_char *msg, int, char *, int);G__const_u_char_ptr32 p_fqname (const u_char *, const u_char *, FILE *); S&__char_ptr32 p_option (u_long option);#__char_ptr32 p_secstodate (u_long);$int dn_count_labels (const char *);*int dn_comp (const char *, u_char *, int, u_char **, u_char **);?int dn_expand (const u_char *, const u_char *, const u_char *, char *, int);int res_init (void);u_int res_randomid (void);7int res_query (const char *, int, int, u_char *, int);8int res_search (const char *, int, int, u_char *, int);;int res_querydomain (const char *, const char *, Tint, int, u_char *, int);>int res_mkquery (int, const char *, int, int, const u_char *,) int, const u_char *, u_char *, int);3int res_send (const u_char *, int, u_char *, int);2int res_isourserver (const struct sockaddr_in *);-int res_nameinquery (const char *, int, int,) const u_char *, const u_char *);6int res_queriesmatch (const u_char *, const u_char *,* const u_char *, const u_char *);void res_close (void);1__char_ptr32 p_section (int section,U int opcode);int res_update (ns_updrec *);/int res_mkupdate (ns_updrec *, u_char *, int);Cns_updrec * res_mkupdrec (int, const char *, u_int, u_int, u_long);#void res_freeupdrec (ns_updrec *);/*%** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif#endif /* __RESOLV_LOADED */#pragma __standard#endif /* __CRTL_VER */ww IE\#ifndef __RESOURCE_LOADED V#define __RESOURCE_LOADED 1M/******************************************************************************;** - Declarations for resource operations**M*****************************************************************************I** Header introduced by the X/Open CAE Specification, Issue 4, Version 2M*******************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Reg Wistered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N*******************************************************************************/#pragma __nostandaXrd#include #ifdef __cplusplus extern "C" {#endif/* E** For the moment, the only part implemented is the rusage structure** used by wait3.*/ /*A** All structures should be member aligned on natural boundaries*/!#pragma __member_alignment __save#pragma __member_alignment/*** Public typedefs */2#if !defined __TIME_T && !defined _DECC_V4_SOURCE# define __TIME_T 1 typedef __time_t time_t;#endif#ifndef __TIMEVAL# defineY __TIMEVAL 1A# if defined _XOPEN_SOURCE_EXTENDED || !defined _DECC_V4_SOURCE struct timeval {C __time_t tv_sec; /* seconds since Jan. 1, 1970 */5 long tv_usec; /* microseconds */ };# else struct timeval {C long tv_sec; /* seconds since Jan. 1, 1970 */5 long tv_usec; /* microseconds */ }; # endif#endifstruct rusage {H struct timeval ru_utime; /* user time usZed */H struct timeval ru_stime; /* system time used -- not implemented */};$#pragma __member_alignment __restore#ifdef __cplusplus }#endif#pragma __standard#endif /* __RESOURCE_LOADED */wwߢIE\#ifndef __SETJMP_LOADED#define __SETJMP_LOADED 1M/******************************************************************************** - Nonlocal Jumps**M********************************************************************** [*******,** Header introduced by the ANSI C StandardM*******************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Techni\cal Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N*******************************************************************************/#pragma __nostandard#include #ifdef __cplusplus extern "C" {#endif#if __INITIAL_POINTER_SIZE # pragma __pointer_size __save# pragma __pointer_size 32#endif/*** Define data structures*/#ifndef __ALPHA typedef int jmp_buf [15];# define] __JMP_BUF_TYPE int *#else$# pragma __member_alignment __save# pragma __member_alignment7# if defined(__FAST_SETJMP) || defined(__UNIX_SETJMP)% typedef __int64 jmp_buf [25];# elseT typedef __int64 jmp_buf [68]; /* 68 quadwords - standard invo cntxt block */ # endif'# pragma __member_alignment __restore## define __JMP_BUF_TYPE __int64 *#endif/*H** This section is for functions and declarations which do not support ** 64 bit pointers.*/#i ^fdef __ALPHA7# if defined(__FAST_SETJMP) || defined(__UNIX_SETJMP)( int decc$setjmp (jmp_buf __env);+# define setjmp(env) decc$setjmp(env)B# define longjmp(env, retval) decc$fast_longjmp(env, retval)# elseI int LIB$GET_CURRENT_INVO_CONTEXT (__JMP_BUF_TYPE __invo_context);2 void c$$establish(void *, unsigned short);S# define setjmp(env) (c$$establish(0, 32 ),LIB$GET_CURRENT_INVO_CONTEXT(env)) # endif#else int setjmp (jmp_buf __env);_#endif(void longjmp (jmp_buf __env, int __val);#if __CRTL_VER >= 700000006# if _POSIX_C_SOURCE >= 1 || !defined _ANSI_C_SOURCE# ifdef __ALPHA- typedef __int64 __sigjmp_buf[70]; # else) typedef int __sigjmp_buf[18]; # endif# if !defined _DECC_V4_SOURCE% typedef __sigjmp_buf sigjmp_buf;# endif1 void siglongjmp (__sigjmp_buf __env, int __val);6 int sigsetjmp (__sigjmp_buf __env, int __savemask);# ifdef __ALPHA6 ` void c$$establish(void *, unsigned short);K# define sigsetjmp( p1, p2 ) ( c$$establish(0,32), (sigsetjmp)(p1,p2) )# endif # endif#endif/*%** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif#pragma __standard#endif /* __SETJMP_LOADED */wwIE\#ifndef __SIGNAL_LOADED#define __SIGNAL_LOADED 1M/***********************************************************a*******************!** - Signal Handling **M*****************************************************************************,** Header introduced by the ANSI C StandardM*******************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use bor copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N*******************************************************************************/#pragma __nostandard#include #ifdef __cplusplus extern "C" {#endif#if __INITIAL_POINTER_SIZE # pragma __pointer_size __save# c pragma __pointer_size 32#endif/*#** Naturally align data structures*/!#pragma __member_alignment __save#pragma __member_alignment/* ** Private definitions*/ /* G** __sighnd_t is a pointer to function, where the function is declared** void f(int code);**C** __bsd_sighnd_t is a pointer to function, where the function is:** void f(int code, ... );** A** __vms_handler is a pointer to function, wher the function is:.** unsigned int f(void *sigarr, vodid *mecharr)**F** These definition are private to this header and subject to change.*/ !typedef void (*__sighnd_t) (int);*typedef void (*__bsd_sighnd_t)(int, ... );Jtypedef unsigned int (*__vms_handler) ( void *__sigarr, void *__mecharr );#if __CRTL_VER >= 70000000# ifndef ____SIGSET_T# define ____SIGSET_T 13 typedef struct {unsigned int _set[2];} __sigset_t; # endif#endif# define _SIG_MIN 1#if __CRTL_VER >= 70000000# define _SIG_MAX 64#elif __CRTL_VER >e= 60200000# define _SIG_MAX 17#else# define _SIG_MAX 15# endif/*3** ANSI C Public data definitions and declarations*/%#define SIG_ERR ((__sighnd_t)(-1))"#define SIG_DFL ((__sighnd_t)0)"#define SIG_IGN ((__sighnd_t)1)typedef int sig_atomic_t;/* 8** ISO POSIX-1 public data definitions and declarations*/ 6#if defined _POSIX_C_SOURCE || !defined _ANSI_C_SOURCE# if __CRTL_VER >= 70000000# define SIG_UNBLOCK 0# define SIG_BLOCK 1# define SfIG_SETMASK 2# define SA_NOCLDSTOP 0x20K# if !defined __SIGSET_T && !defined _SIGSET_T_ && !defined _DECC_V4_SOURCE# define __SIGSET_T 1D# define _SIGSET_T_ 1 /* uses this symbol */! typedef __sigset_t sigset_t;# endif# pragma __extern_model __save,# pragma __extern_model __common_block noshrC static const __sigset_t _SIG_EMPTY_SET = {0x00000000, 0x00000000},- _SIG_FULL_SET = {0xFFFFFFFF, 0xFFFFFFFF};!# pragma __extern_model __restore sgtruct sigaction { __sighnd_t sa_handler; __sigset_t sa_mask; int sa_flags; }; # endif#endif/* 1** XPG4 public data definitions and declarations*/ 4#if defined _XOPEN_SOURCE || !defined _ANSI_C_SOURCE4# if !defined __PID_T && !defined _DECC_V4_SOURCE# define __PID_T 1 typedef __pid_t pid_t; # endif#endif/* 4** XPG4 V2 public data definitions and declarations*/ =#if defined _XOPEN_SOURCE_EXTENDED || !defined _ANSI_C_SOURCEh struct sigstack {) char *ss_sp; /* signal stack pointer */% int ss_onstack; /* current status */ };# if __CRTL_VER >= 70000000# define SA_ONSTACK 0x01# define SA_RESETHAND 0x02# define SA_NODEFER 0x08 # endif#endif/* @** DEC C extensions -- public data definitions and declarations*/ #ifndef _ANSI_C_SOURCE struct sigvec {- void (*sv_handler)(); /* handler address */2 int sv_mask; /* mask of signals to be blocked */5 int sv_onstack; i/* flag to indicate signal stack */ }; struct sigcontext {4 int sc_onstack; /* signal stack flag to restore */+ int sc_mask; /* signal mask to restore */+ int sc_sp; /* stack pointerto restore */# int sc_pc; /* pc to return to */" int sc_ps; /* psl to restore */ };#endif/* P** The following signals are defined by the ANSI C standard (ISO/IEC 9899:1990)*/ ?#define SIGABRT 6 /* Abnormal termination signal */B#define SIGFPE 8 / j* Erroneous arithmetic operation */J#define SIGILL 4 /* Detection of an invalid hardware instr. */@#define SIGINT 2 /* Interactive attention signal */;#define SIGSEGV 11 /* segmentation violation */?#define SIGTERM 15 /* External termination signal *//* J** The following signals are defined by ISO POSIX-1 (ISO/IEC 9945-1:1990)*/ 6#if defined _POSIX_C_SOURCE || !defined _ANSI_C_SOURCE6# define SIGALRM 14 /* Timeout signal k */K# define SIGHUP 1 /* Hangup detected on controlling terminal */@# define SIGKILL 9 /* External termination signal */E# define SIGPIPE 13 /* Write on a pipe with no readers */C# define SIGQUIT 3 /* Interactive termination signal */# if __CRTL_VER >= 60200000># define SIGUSR1 16 /* Application-defined signal 1 */># define SIGUSR2 17 /* Application-defined signal 2 */ # endif# if __CRTL_VER >= 70000000D# ldefine SIGCHLD 20 /* Child process terminated or stopped */6# define SIGCONT 21 /* Continue if stopped */9# define SIGSTOP 22 /* Job control stop signal */9# define SIGTSTP 23 /* Interactive stop signal */D# define SIGTTIN 24 /* Terminal read by background process */E# define SIGTTOU 25 /* Terminal write by background process */ # endif# if __CRTL_VER >= 703000009# define SIGWINCH 28 /* Window size changed */ # endif#emndif/* ** Defined by XPG4 V2*/ =#if defined _XOPEN_SOURCE_EXTENDED || !defined _ANSI_C_SOURCEE# define SIGTRAP 5 /* TBIT trace trap or BPT instruction */@# define SIGSYS 12 /* Bad arguments to system call */#endif/* ** DEC C Extensions*/ #ifndef _ANSI_C_SOURCEG# define SIGIOT 6 /* Obsolete name - 6 reused as SIGABRT */B# define SIGEMT 7 /* Opcode reserved to customer */G# define SIGBUS 10 /* invalid access n to memory objects */# if __CRTL_VER >= 70000000C# define SIGSPARE18 18 /* Reserved for future expansions */C# define SIGSPARE19 19 /* Reserved for future expansions */D# define SIGDEBUG 26 /* Permanently reserved to Digital */C# define SIGSPARE27 27 /* Reserved for future expansions */C# define SIGSPARE28 28 /* Reserved for future expansions */C# define SIGSPARE29 29 /* Reserved for future expansions */C# define SIGSPARE30 30 o /* Reserved for future expansions */C# define SIGSPARE31 31 /* Reserved for future expansions */C# define SIGSPARE32 32 /* Reserved for future expansions */D# define SIGRTMIN 33 /* First realtime signal (1003.1b) */C# define SIGRTMAX 64 /* Last realtime signal (1003.1b) */ # endif# define NSIG _SIG_MAX# define BADSIG SIG_ERRC# define ILL_RESAD_FAULT 0x0 /* reserved addressing mode fault */C# define ILL_PRIVIN_FAULT 0x1 /* priviplidged instruction fault */;# define ILL_RESOP_FAULT 0x2 /* reserved operand fault */# define FPE_INTOVF_TRAP 0x1# define FPE_INTDIV_TRAP 0x2# define FPE_FLTOVF_TRAP 0x3# define FPE_FLTDIV_TRAP 0x4# define FPE_FLTUND_TRAP 0x5# define FPE_DECOVF_TRAP 0x6# ifdef __VAX# define FPE_SUBRNG_TRAP 0x7# else# define FPE_INXRES_TRAP 0x7 # endif# define FPE_FLTOVF_FAULT 0x8# define FPE_FLTDIV_FAULT 0x9 # define FPE_FLTUND_FAULT 0x0a# ifndef __VAXq# define FPE_INVOPR_TRAP 0x0b# define FPE_DECDIV_TRAP 0x0c# define FPE_DECINV_TRAP 0x0d# define FPE_SUBRNG_TRAP 0x0e# define FPE_SUBRNG1_TRAP 0x0f# define FPE_SUBRNG2_TRAP 0x10# define FPE_SUBRNG3_TRAP 0x11# define FPE_SUBRNG4_TRAP 0x12# define FPE_SUBRNG5_TRAP 0x13# define FPE_SUBRNG6_TRAP 0x14# define FPE_SUBRNG7_TRAP 0x15 # endif#endif/*** Enable 64 bit pointers*/#if __INITIAL_POINTER_SIZE# pragma __pointer_size 64#endif/*** Function prototyrpes (ANSI).*/2__sighnd_t signal( int __sig, __sighnd_t __func ); /* > ** In strict ANSI mode, raise has a signal parameter. As7 ** a DEC C extension, it accepts a subcode as well. */ #ifndef _ANSI_C_SOURCEC int raise (int __sig, ...); /* 2nd parameter is the subcode */#else int raise (int __sig);#endif/* ** ISO POSIX-1 signal handling*/ 6#if defined _POSIX_C_SOURCE || !defined _ANSI_C_SOURCE# if defined(_POSIX_EXIT)# if __USEs_LONG_GID_T## pragma __extern_prefix __save0# pragma __extern_prefix "__posix_long_gid_"## elif __CRTL_VER >= 70000000 # if __CAN_USE_EXTERN_PREFIX'# pragma __extern_prefix __save+# pragma __extern_prefix "__posix_" # else8# define kill(__p1,__p2) __posix_kill(__p1,__p2) # endif# endif # endif% int kill (__pid_t __pid, int __sig);# if defined(_POSIX_EXIT)# if __USE_LONG_GID_T&# pragma __extern_prefix __resttore## elif __CRTL_VER >= 70000000 # if __CAN_USE_EXTERN_PREFIX*# pragma __extern_prefix __restore # endif# endif # endif# if __CRTL_VER >= 70000000/ int sigaddset (__sigset_t * __set, int __sig);/ int sigdelset (__sigset_t * __set, int __sig);7 int sigismember (const __sigset_t * __set, int __sig);: int sigaction (int __sig, const struct sigaction * __act,! struct sigaction * __oact);7 int sigprocmask (int __how, const __sigset_t * __set, u __sigset_t * __oset);% int sigpending (__sigset_t * __set);+ int sigsuspend (const __sigset_t * __set); # if __cplusplus && !__NO_MACROS1 inline int sigemptyset (__sigset_t *__set) { *__set =_SIG_EMPTY_SET; return 0; }0 inline int sigfillset (__sigset_t *__set) { *__set =_SIG_FULL_SET; return 0; }# else* int sigemptyset (__sigset_t * __set);* int sigfillset (__sigset_t * __set);# if !__NO_MACROSB# define sigemptyset(set) (*(__vsigset_t*)(set)=_SIG_EMPTY_SET, 0)@# define sigfillset(set) (*(__sigset_t*)(set)=_SIG_FULL_SET, 0) # endif# endif # endif#endif/* ** XPG4 V2 function prototypes*/ >#if defined _XOPEN_SOURCE_EXTENDED || !defined _ANSI_C_SOURCE int sigpause (int __mask);A int sigstack (struct sigstack *__ss, struct sigstack *__oss);#endif/*** DEC C extensions*/#ifndef _ANSI_C_SOURCE@ __bsd_sighnd_t ssignal (int __sig, __bsd_sighnd_t __action);J inwt sigvec (int __sigveca, struct sigvec *__sv, struct sigvec *__osv); int sigblock (int __mask); int sigsetmask (int __mask);! int gsignal (int __sig, ...);, void VAXC$ESTABLISH (__vms_handler __f); void VAXC$CRTL_INIT (void);# ifndef __cplusplus void DECC$CRTL_INIT (void); # endif# ifdef __ALPHA8 void c$$establish(__void_ptr32, unsigned short);C# define VAXC$CRTL_INIT() ( c$$establish(0,32), (VAXC$CRTL_INIT)())# ifndef __cplusplusF# definex DECC$CRTL_INIT() (c$$establish(0,32), (DECC$CRTL_INIT)())# endif # endif /* E ** ISO POSIX-1 defines alarm, sleep as being in . ForE ** compatibility with DEC C V4, the old prototypes are supported. */ # ifndef _DECC_V4_SOURCE/ unsigned int alarm (unsigned int __seconds);1 unsigned int sleep (unsigned __seconds); # else , int alarm (unsigned int __seconds);( int sleep (unsigned __seconds); # endif /* / y** ISO POSIX-1 defines pause in  */  int pause (void); /* @ ** XPG4 V2 removed sigmask from signal.h in a corrigenda to ** that specification. */ # if __CRTL_VER >= 70000000 int sigmask (int __sig);## define sigmask(m) (1L << ((m)-1)) # endif#endif/* ** Restore pointer size context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif$#pragma __member_alignmentz __restore#pragma __standard#endif /* __SIGNAL_LOADED */ww[^IE\#ifndef __SOCKET_LOADED#define __SOCKET_LOADED 1M/********************************************************************************* - TCP/IP socket definitions**M*****************************************************************************I** Header introduced by the X/Open CAE Specification, Issue 4, Version 2M***************************************************************************** {**.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N************|********************************************************************?** Copyright (c) 1982 Regents of the University of California.A** All rights reserved. The Berkeley software License Agreement:** specifies the terms and conditions for redistribution.**%** socket.h 6.6 (Berkeley) 6/8/85**N*******************************************************************************/#pragma __nostandard#include #ifdef __cplusplus extern "C" {#endif#include} #include #if __INITIAL_POINTER_SIZE # pragma __pointer_size __save# pragma __pointer_size 32#endif/* E** Strict XPG4 V2 compliance requires the BSD 4.4 socket interfaces,4** which is only available on OpenVMS V7.0 or later*/ V#if defined _XOPEN_SOURCE_EXTENDED && !defined _SOCKADDR_LEN && __CRTL_VER >= 70000000# define _SOCKADDR_LEN 1#endif/*I** The OpenVMS V7.0 release added a second implementation of the socket F** functions which is compa~tible with BSD 4.4. Define a local to be C** used throughout the remaining header file which reflects which !** implementation is being used.**I** An application program enables this support by defining _SOCKADDR_LEN(** prior to including this header file.*/#ifdef _SOCKADDR_LEN# if (__CRTL_VER < 70000000)H# error " BSD 4.4 Socket package not available before OpenVMS V7.0"# undef _SOCKADDR_LEN # endif#endif/*A** All structures should be member aligned on natural boundaries*/!#pragma __member_alignment __save#pragma __member_alignment/*!** Public typedefs (32-bit mode)*/O#if !defined(__CADDR_T) && !defined(CADDR_T) && !defined _XOPEN_SOURCE_EXTENDED# define __CADDR_T 1!# ifndef __HIDE_FORBIDDEN_NAMES# define CADDR_T 1 # endif typedef __caddr_t caddr_t;#endif2#if !defined __SIZE_T && !defined _DECC_V4_SOURCE# define __SIZE_T 1 typedef __size_t size_t;#endif3#if !defined __SSIZE_T && !defined _DECC_V4_SOURCE# define __SSIZE_T 1 typedef __ssize_t ssize_t;#endif2#if !defined __TIME_T && !defined _DECC_V4_SOURCE# define __TIME_T 1 typedef __time_t time_t;#endif /* F** is a header defined by XPG4 V2. That specificationE** puts struct timeval, the FD* macros and select in . A** We define select here for compatibility with DEC C V4, unless#** the program is in XPG4 V2 mode. */ 9#if !defined __TIMEVAL && !defined _XOPEN_SOURCE_EXTENDED# define __TIMEVAL 1# if !defined _DECC_V4_SOURCE struct timeval {D __time_t tv_sec; /* seconds since Jan. 1, 1970 */6 long tv_usec; /* microseconds */ };# else struct timeval {D long tv_sec; /* seconds since Jan. 1, 1970 */6 long tv_usec; /* microseconds */ }; # endif#endif> /* FD_SETSIZE may be defined by the user. It is n ormally > ** equal to the maximum number of descriptors supported byC ** the system. Here it is set to the minimum maximum supportedA ** by the system. In order to accomodate programs which use D ** a larger number of open files with select, increase this sizeF ** within a program by providing a larger definition of FD_SETSIZE. ** before including or  */T#if !defined __FD_SET && !defined _XOPEN_SOURCE_EXTENDED && !defined _DECC_V4_SOURCE# defi ne __FD_SET 1# ifndef FD_SETSIZE"# define FD_SETSIZE 1024 # endif typedef long fd_mask;C# define NBBY 8 /* bits per byte */C# define NFDBITS (sizeof(fd_mask) * NBBY) /* bits per mask */Z# define FD_SET(__n, __p) ((__p)->fds_bits[(__n)/NFDBITS] |= (1 << ((__n) % NFDBITS)))[# define FD_CLR(__n, __p) ((__p)->fds_bits[(__n)/NFDBITS] &= ~(1 << ((__n) % NFDBITS)))Y# define FD_ISSET(__n, __p) ((__p)->fds_bits[(__n)/NFDBITS] & (1 << ((__n) % NFDBITS))):# define __howmany(__x, __y) (((__x)+((__y)-1))/(__y))S typedef struct fd_set { /* descriptor set */ 8 fd_mask fds_bits[__howmany(FD_SETSIZE, NFDBITS)]; } fd_set;# ifdef __ALPHA&# if __INITIAL_POINTER_SIZE == 64"# pragma __pointer_size 64 # endif8 void *__MEMSET(void *__s, int __c, __size_t __n);=# define FD_ZERO(__p) __MEMSET((__p), 0, sizeof(*(__p)))&# if __INITIAL_POINTER_SIZE == 64"# pragma __pointer_size 32 # endif# elseF void _MOVC5(unsigned short __srclen, const char *__src, char __fill, / unsigned short __destlen, char *__dest, ...);D# define FD_ZERO(__p) _MOVC5(0, 0, 0, sizeof(*(__p)), (char *)(__p)) # endif#endif/*6** Define non-standard BSD socket compatible typedefs*/A#if !defined __SOCKET_TYPEDEFS && !defined _XOPEN_SOURCE_EXTENDED# define __SOCKET_TYPEDEFS 1" typedef unsigned char u_char;# typedef unsigned short u_short;" typedef unsigned long u_long;#endif/*** Defined XPG4 typedefs*/6#if !defined __SA_FAMILY_T && !defined _DECC_V4_SOURCE# define __SA_FAMILY_T& typedef __sa_family_t sa_family_t;#endif/*D * Definitions related to sockets: types, address families, options. *//* * Types */*#define SOCK_STREAM 1 /* stream socket */+#define SOCK_DGRAM 2 /* datagram socket */0#define SOCK_RAW 3 /* raw-protocol interface */4#define SOCK_RDM 4 /* r eliably-delivered message */7#define SOCK_SEQPACKET 5 /* sequenced packet stream *//* * Option flags per-socket. */?#define SO_DEBUG 0x0001 /* turn on debugging info recording */;#define SO_ACCEPTCONN 0x0002 /* socket has had listen() */<#define SO_REUSEADDR 0x0004 /* allow local address reuse */9#define SO_KEEPALIVE 0x0008 /* keep connections alive */?#define SO_DONTROUTE 0x0010 /* just use interface addresses */C#define SO_BROADCAST 0x0020 /* permit sending of broadcast msgs */B#define SO_USELOOPBACK 0x0040 /* bypass hardware when possible */?#define SO_LINGER 0x0080 /* linger on close if data present */B#define SO_OOBINLINE 0x0100 /* leave received OOB data in line */B#define SO_REUSEPORT 0x0200 /* allow local addr and port reuse */ #if SEC_BASE #if SEC_NETL#define SO_EXPANDED_RIGHTS 0x1016 /* return expanded rights on recv */C#define SO_DEFAULT_ATTR 0x1017 /* set def. socket attr. */B#define SO_RCV_ATTR 0x1018 /* set socket rcv mask. */M#define SO_AUTHENTICATION 0x1019 /* set socket authentication data. */H#define SO_ACCESS_ERROR 0x1020 /* record security violation. */P#define SO_SEC_ATTRIBUTES 0x1021 /* get sec. attrs. for last byte read */P#define SO_REMOTE_KEY 0x1022 /* get auth. data for remote process. */O#define SO_NEW_ATTRS_ONLY 0x1023 /* Only return attrs if they change. */P#define SO_SET_TNET_TCB 0x1024 /* Set/reset ALLOWNETACCESS on socket.*/P#define SO_GET_TNET_TCB 0x1025 /* Return ALLOWNETACC. flag on socket.*/#elseF#define SO_EXPANDED_RIGHTS 0x0400 /* return expanded rights on recv */#endif /*SEC_NET*/#endif/*. * Additional options, not kept in so_options. */0#define SO_SNDBUF 0x1001 /* send buffer size */3#define SO_RCVBUF 0x1002 /* receive buffer size */5#define SO_SNDLOWAT 0x1003 /* send low-water mark */8#define SO_RCVLOWAT 0x1004 /* receive low-water mark */.#define SO_SNDTIMEO 0x1005 /* send timeout */1#define SO_RCVTIMEO 0x1006 /* receive timeout */9#define SO_ERROR 0x1007 /* get error status and clear */.#define SO_TYPE 0x1008 /* get socket type */4#define SO_STATE 0x1009 /* get socket state bits */8#define SO_FAMILY 0x100a /* get socket address family*/;#define SO_XSE 0x100b /* _XOPEN_SOURCE_EXTENDED socket */;#define SO_SHARE 0x100c /* ovms Share between processes */:#define SO_CCL 0x100d /* ovms Carriage Control socket *//*"** Full duplex code socket option*/D#define SO_FULL_DUPLEX_CLOSE 0x2000 /* full duplex close option *//*;** Linger Structure: Used for manipulating linger options.**;** This structure specifies the setting or resetting of the9** socket opt for the time interval that the socket will 7** linger for data. linger is supported only by STREAM** type sockets.*/struct linger {L int l_onoff; /* Linger option; 1 sets linger and 0 resets linger. */D int l_linger; /* Number of seconds to linger; defaulted to' ** 120 seconds. */};/*A** Level number for (get/set)sockopt() to apply to socket itself.*/9#define SOL_SOCKET 0xffff /* options for socket level *//*** Address families.*/&#define AF_UNSPEC 0 /* unspecified */8#define AF_UNIX 1 /* local to host (pipes, portals) */6#define AF_INET 2 /* internetwork: UDP, TCP, etc. */1#define AF_IMPLINK 3 /* arpanet imp addresses */0#define AF_PUP 4  /* pup protocols: e.g. BSP */-#define AF_CHAOS 5 /* mit CHAOS protocols */*#define AF_NS 6 /* XEROX NS protocols */&#define AF_ISO 7 /* ISO protocols */#define AF_OSI AF_ISO9#define AF_ECMA 8 /* european computer manufacturers */-#define AF_DATAKIT 9 /* datakit protocols */4#define AF_CCITT 10 /* CCITT protocols, X.25 etc */!#define AF_SNA 11 /* IBM SNA */"#define AF_DECnet 12 /* DECnet */8#define AF_DLI 13 /* DEC Direct data link interface */#define AF_LAT 14 /* LAT */,#define AF_HYLINK 15 /* NSC Hyperchannel */)#define AF_APPLETALK 16 /* Apple Talk */4#define AF_ROUTE 17 /* Internal Routing Protocol *//#define AF_LINK 18 /* Link layer interface */#ifdef _XOPEN_SOURCE_EXTENDEDB#define _pseudo_AF_XTP 19 /* eXpress Transfer Protocol (no AF) */#elseA#define pseudo_AF_XTP 19 /* eXpress Transfer Protocol (no AF) */#endif2#define AF_NETMAN 20 /* DNA Network Management */&#define AF_X25 21 /* X25 protocol *//#define AF_CTF 22 /* Com mon Trace Facility */5#define AF_WAN 23 /* Wide Area Network protocols */<#define AF_USER 24 /* Wild card (user defined) protocol */<#define AF_AAL 25 /* Native AAL ATM */B#define AF_INET6 26 /* IPV6: UDP, TCP, etc. */(#define AF_KEY 27 /* Key management */:#define AF_UNUSED1 28 /* Placeholder, currently unused */:#define AF_UNUSED2 29 /* Placeholder, currently unused */:#define AF_UNUSED3 30 /* Placeholder, currently unused */#define AF_MAX 31I#define SHUT_RD 0 /* Disables further receive operations */F#define SHUT_WR 1 /* Disables further send operations */R#define SHUT_RDWR 2 /* Disables further send and receive operations *//*>** sockaddr structure used by kernel to store most addresses.*/#ifdef _SOCKADDR_LEN /* ** BSD 4.4 sockaddr */ struct sockaddr {> unsigned char sa_len; /* total length */? __sa_family_t sa_family; /* address family */P char sa_data[14]; /* up to 14 bytes of direct address */ };&# if !defined _XOPEN_SOURCE_EXTENDED /*) ** BSD 4.3 sockaddr (for compatibility) */ struct osockaddr {7 unsigned short sa_family; /* address family */I char sa_data[14]; /* up to 14 bytes of direct address */ }; # endif#else /* ** BSD 4.3 sockaddr */ struct sockaddr {> unsigned short sa_family; /* address family */P char sa_data[14]; /* up to 14 bytes of direct address */ };#endif##if !defined _XOPEN_SOURCE_EXTENDED /*L ** Structure used by kernel to pass protocol information in raw sockets */ struct sockproto {+ u_short sp_family; /* address family */+ u_short sp_protocol; /* protocol */ }; /*; ** Protocol families, same as address families for now */#define PF_UNSPEC AF_UNSPEC#define PF_UNIX AF_UNIX#define PF_INET AF_INET#define PF_IMPLINK AF_IMPLINK#define PF_PUP AF_PUP#define PF_CHAOS AF_CHAOS#define PF_NS AF_NS#define PF_ISO AF_ISO#define PF_OSI AF_ISO#define PF_ECMA AF_ECMA#define PF_DATAKIT AF_DATAKIT#define PF_CCITT AF_CCITT#define PF_SNA AF_SNA#define PF_DECnet AF_DECnet#define PF_DLI AF_DLI#define PF_LAT AF_LAT#define PF_HYLINK AF_HYLINK!#define PF_APPLETALK AF_APPLETALK#define PF_ROUTE AF_ROUTE#define PF_LINK AF_LINK#ifdef _XOPEN_SOURCE_EXTENDEDD#define PF_XTP _pseudo_AF_XTP /* really just proto family, no AF */#elseC#define PF_XTP pseudo_AF_XTP /* really just proto family, no AF */#endif#define PF_NETMAN AF_NETMAN#define PF_X25 AF_X25#define PF_CTF AF_CTF#define PF_WAN AF_WAN#define PF_AAL AF_AAL#define PF_INET6 AF_INET6#define PF_KEY AF_KEY#define PF_UNUSED1 AF_UNUSED1#define PF_UNUSED2 AF_UNUSED2#define PF_UNUSED3 AF_UNUSED3#define PF_MAX AF_MAX/*. * Maximum queue length specifiable by listen. */#define SOMAXCONN 1024#endif/*** Msghdr Structure**=** This structure specifies the message buffer parameter for @** recvmsg and sendmsg calls. It allows you to specify an arrayC** of scatter/gather buffers. Recvmsg scatters the data to several@** user receive buffers. Sendmsg gathers data from several user(** transmit buffers before transmitting.** */#ifdef _SOCKADDR_LEN!# ifdef _XOPEN_SOURCE_EXTENDED struct msghdr {N void *msg_name; /* The address of the destina-P ** tion socket, if the socket isO ** connected. If no address isN ** required, this field can be? ** set to NULL.2 */I __size_t msg_namelen; /* Len of msg_name field.2 */H struct iovec *msg_iov; /* scatter/gather array.2 */I int msg_iovlen; /* # elements in msg_iov.2 */L void *msg_control; /* Ancillary data consistingO ** of a sequence of pairs, eachK  ** consisting of a cmsghdr O ** structure followed by a dataN ** array. The data array con-K ** tains the ancillary dataL ** message, and the cmsghdr P ** struct contains info allowingM  ** applications to parse the 8 ** data.2 */M __size_t msg_controllen; /* Ancillary data buffer len.2 */M int msg_flags; /* Flags on received message.2 */ }; # endif!# ifdef _XOPEN_SOURCE_EXTENDED struct __Omsghdr { #  else struct msghdr { # endifN __caddr_t msg_name; /* The address of the destina-P ** tion socket, if the socket isO ** connected. If no address isN ** required, this field can be? ** set to NULL.2 */I unsigned int msg_namelen; /* Len of msg_name field.2 */!# ifdef _XOPEN_SOURCE_EXTENDEDH struct __Oiovec *msg_iov; /* scatter/gather array.2 */ # elseH struct iovec *msg_iov; /* scatter/gather array.2 */ # endifI unsigned int msg_iovlen; /* # elements in msg_iov.2  */M __caddr_t msg_control; /* Ancillary data, see above.2 */M unsigned int msg_controllen; /* Ancillary data buffer len.2 */M int msg_flags; /* Flags on received message.2 */ };'# if !defined _XOPEN_SOURCE_EXTENDED  /*6 ** BSD 4.3 message header (for compatibility) */ struct omsghdr {I __caddr_t msg_name; /* The address of the destina-K ** tion socket, if the socket isJ ** connected. If no address isI ** required, this field can be: ** set to NULL.-  */D int msg_namelen; /* Len of msg_name field.- */C struct iovec *msg_iov; /* scatter/gather array.- */K int msg_iovlen; /* # elements in msg_iov. - */K __caddr_t msg_accrights; /* Points to a buffer containingN ** access rights sent with message.- */N int msg_accrightslen;/* Len of the msg_accrights buffer.- */ }; # endif#else /* ** BSD 4.3 message header */ struct msghdr {C __caddr_t msg_name; /* The address of the destina-J ** tion socket, if the socket isI ** connected.  If no address isH ** required, this field can be9 ** set to NULL., */C int msg_namelen; /* Len of msg_name field., */B struct iovec *msg_iov; /* Scatter/Gather array., */C int msg_iovlen; /* # elements in msg_iov.,  */J __caddr_t msg_accrights; /* Points to a buffer containingM ** access rights sent with message., */M int msg_accrightslen;/* Len of the msg_accrights buffer., */ };#endif/*** */##if !defined _XOPEN_SOURCE_EXTENDED#define MSG_MAXIOVLEN 16#endifF#define MSG_OOB 0x 1 /* process out-of-band data */F#define MSG_PEEK 0x2 /* peek at incoming message */F#define MSG_EOR 0x8 /* data completes record */F#define MSG_TRUNC 0x10 /* data discarded before delivery */F#define MSG_CTRUNC 0x20 /* control data lost before delivery */F#define MSG_WAITALL 0x40 /* wait for full request or error */"/* Following used within kernel */6#define MSG_NONBLOCK 0x4000 /* nonblocking request */4#define MSG_COMPAT 0x8000 /* 4.3-format sockaddr */##if !defined _XOPEN_SOURCE_EXTENDEDI# define MSG_DONTWAIT 0x80 /* this message should be nonblocking */I# define MSG_DONTROUTE 0x4 /* send without using routing tables */#endif /*F** Header for ancillary data objects in msg_control buffer. Used forC** additional information with/about a datagram not expressible byB** flags. The format is a sequence of message elements headed by** cmsghdr structures.*/#ifdef _XO PEN_SOURCE_EXTENDED struct cmsghdr {N __size_t cmsg_len; /* data byte count, including hdr.. */K int cmsg_level; /* originating protocol, valuesM ** will be legal values for levelP ** arg to getsockopt(),setsockopt().. */F int cmsg_type; /* protocol-specific type.. */+ /* followed by u_char cmsg_data[]; */ };#endif#ifdef _XOPEN_SOURCE_EXTENDED struct __Ocmsghdr {#else struct cmsghdr {#endifP unsigned int cmsg_len; /* data byte count, including hdr */P int cmsg_level; /* originating protocol; see above*/H int cmsg_type; /* protocol-specific type */+ /* followed by u_char cmsg_data[]; */ };/*>** Given a pointer to a cmsghdr structure, this macro returnsC** an unsigned character pointer to the data array associated with** the cmsghdr structure.*/7#define CMSG_DATA(cmsg) ((unsigned char *)((cmsg) + 1))/*G** Given a ptr to a msghdr structure and a ptr to cmsghdr structure inH** the ancillary data, pointed to by the msg_control field of the inputF** msghdr structure, this macro returns a pointer to the next cmsghdrD** structure, or NULL if this structure is the last cmsghdr in the ** ancillary data. */#ifdef _XOPEN_SOURCE_EXTENDED /* R ** Macro for checking and aligning a pointer to the machines native word size. */# define _ALIGN(p) \: (void *)((__caddr_t)(p) + sizeof(void *) - 1UL - \J ((unsigned int)((__caddr_t)(p) + sizeof(void *) - 1UL) % \ sizeof(void *)))K /* given pointer to struct adatahdr, return pointer to next adatahdr */$# define CMSG_NXTHDR(mhd r, cmsg) \M ((((__caddr_t)(cmsg)) + (cmsg)->cmsg_len + sizeof(struct cmsghdr) > \J ((__caddr_t)((mhdr)->msg_control)) + (mhdr)->msg_controllen) ? \" (struct cmsghdr *)0 : \N (struct cmsghdr *)_ALIGN((((__caddr_t)(cmsg)) + (cmsg)->cmsg_len)))$#else /* ! _XOPEN_SOURCE_EXTENDED */ /*G ** Round p (pointer or byte index) up to a correctly-aligned valueI ** for all data types (int, long, ...). The result is unsigned int5 ** and must be ca st to any desired pointer type. */-# define __ALIGNBYTES (sizeof (void *) - 1)N# define __ALIGN(__p) (((unsigned int)(__p) + __ALIGNBYTES) &~ __ALIGNBYTES)K /* given pointer to struct adatahdr, return pointer to next adatahdr */$# define CMSG_NXTHDR(mhdr, cmsg) \K (((__caddr_t)(cmsg) + (cmsg)->cmsg_len + sizeof(struct cmsghdr) > \; (mhdr)->msg_control + (mhdr)->msg_controllen) ? \! (struct cmsghdr *)0 : \L (struct cmsghdr *)((__caddr_t)(cmsg) + __ALIGN((cmsg)->cmsg_len)))$#endif /* _XOPEN_SOURCE_EXTENDED *//*C** Given a ptr to a msghdr structure, this macro returns a pointer B** to the first cmsghdr structure in the ancillary data associatedG** with the msghdr structure or NULL if no ancillary data is associated** with the msghdr structure.*/G#define CMSG_FIRSTHDR(mhdr) ((struct cmsghdr *)(mhdr)->msg_control)/*)** "Socket"-level control message types:*/J#define SCM_RIGHTS 0x01 /* access rights (array of int) *//*J** This section is for functions and declarations which do support 64 bitK** pointers being passed (or returned). The socket interface is differentG** from other 64 bit interfaces in that only a select set of functionsK** accept 64 bit pointers. The DEC C RTL is a thin layer between the user/** application and a vendors tcp/ip interface.*/#ifdef _SOCKADDR_LEN# if __CAN_USE_EXTERN_PREFIX%# pragma __extern_prefix __save)# pragma __extern_prefix "__bsd44_"# elseF# define recvmsg(__p1,__p2,__p3) __bsd44_recvmsg(__p1,__p2,__p3)F# define sendmsg(__p1,__p2,__p3) __bsd44_sendmsg(__p1,__p2,__p3) # endif#endif@__ssize_t recvmsg (int __sd, struct msghdr *__msg, int __flags);F__ssize_t sendmsg (int __sd, const struct msghdr *__msg, int __flags);#ifdef _SOCKADDR_LEN# if __CAN_USE_EXTERN_PREFIX(# pragma __extern_prefix __restore # endif#endif/*O** 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/*E** Functions which will always accept 32 or 64 bit pointers. If theJ** underlying tcp/ip layer has 64 bit support, then the addresses will beE** passed as they are. If the underlying layer does not have 64 bitH** address support, then the data will be copied to a malloced area and+** then passed on to the underlying l ayer.*/#ifdef _SOCKADDR_LEN# if __CAN_USE_EXTERN_PREFIX%# pragma __extern_prefix __save)# pragma __extern_prefix "__bsd44_"# elseI# define accept(__p1,__p2,__p3) __bsd44_accept(__p1,__p2,__p3)G# define bind(__p1,__p2,__p3) __bsd44_bind(__p1,__p2,__p3)J# define connect(__p1,__p2,__p3) __bsd44_connect(__p1,__p2,__p3)N# define getpeername(__p1,__p2,__p3) __bsd44_getpeername(__p1,__p2,__p3)N# define getsockname(__p1,__p2,__p 3) __bsd44_getsockname(__p1,__p2,__p3)f# define recvfrom(__p1,__p2,__p3,__p4,__p5,__p6) __bsd44_recvfrom(__p1,__p2,__p3,__p4,__p5,__p6)d# define sendto(__p1,__p2,__p3,__p4,__p5,__p6) __bsd44_sendto(__p1,__p2,__p3,__p4,__p5,__p6) # endif#endif /* ? ** In DEC C V4.0, the following routines used int or int *> ** for the length parameters. X/Open specifies that these ** are size_t. */ #if !defined _DECC_V4_SOURCE K int accept (int __sd, struct sockaddr *__S_addr, __size_t *__len);T int bind (int __sd, const struct sockaddr *__s_name, __size_t __len); N int connect (int __sd, const struct sockaddr *__name, __size_t __len);I int getpeername (int __sd, struct sockaddr *__name, __size_t *__len);I int getsockname (int __sd, struct sockaddr *__name, __size_t *__len);P __ssize_t recvfrom (int __sd, void *__buf, __size_t __buflen, int __flags, E struct sockaddr *__from, __size_t *__fr omlen);V __ssize_t sendto (int __sd, const void *__msg, __size_t __msglen, int __flags, F const struct sockaddr *__to, __size_t __tolen);#elseE int accept (int __sd, struct sockaddr *__S_addr, int *__addrlen);B int bind (int __sd, struct sockaddr *__s_name, int __namelen);C int connect (int __sd, struct sockaddr *__name, int __namelen);H int getpeername (int __sd, struct sockaddr *__name, int *__namelen);H int getsockname (int __sd, struct sockaddr *__name, int *__namelen);m int recvfrom (int __sd, char *__buf, int __length, int __flags, struct sockaddr *__from, int *__fromlen);f int sendto (int __sd, char *__msg, int __length, int __flags, struct sockaddr *__to, int __tolen);#endif#ifdef _SOCKADDR_LEN# if __CAN_USE_EXTERN_PREFIX(# pragma __extern_prefix __restore # endif#endif /* ? ** In DEC C V4.0, the following routines used int or int *; ** for the length parameters and char * for the op tion A ** value. X/Open specifies that these are size_t and void *. */ #if !defined _DECC_V4_SOURCE _ int getsockopt (int __sd, int __level, int __optname, void *__optval, __size_t *__optlen);d int setsockopt (int __sd, int __level, int __optname, const void *__optval, __size_t __optlen);L __ssize_t recv (int __sd, void *__buf, __size_t __length, int __flags);R __ssize_t send (int __sd, const void *__msg, __size_t __length, int __flags);#elseY int getsockopt (int __sd, int __level, int __optname, char *__optval, int *__optlen);X int setsockopt (int __sd, int __level, int __optname, char *__optval, int __optlen);@ int send (int __sd, char *__msg, int __length, int __flags);@ int recv (int __sd, char *__buf, int __length, int __flags);#endif*int listen (int __sd, int __backlog);'int shutdown (int __sd, int __mode);=int socket (int __af, int __mess_type, int __prot_type); /* ** DEC C Extensions (64-bit) */ #ifndef _XOPEN_SOURCE_EXTENDED# if __CRTL_VER >= 70000000+ int decc$socket_fd (int __channel);/# if !defined(_DECC) || (__DECC_VER < 60400000)* int socket_fd (int __channel); # endif # endif( int decc$get_sdc (int __descrip_no);*# define vaxc$get_sdc(x) decc$get_sdc(x)# int gethostaddr (char *__addr);# ifdef _DECC_V4_SOURCE6 int gethostname (char *__name, int __namelen);A int select (int __nfds, int *__readfds, int *__writefds, C int *__exceptfds, struct timeval *__timeout);# else; int gethostname (char *__name, __size_t __namelen);G int select (int __nfds, fd_set *__readfds, fd_set *__writefds, F fd_set *__exceptfds, struct timeval *__timeout); # endif#endif/*%** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif$#pragma __member_alignment __restore#pragma __standard#endif /* __SOCKET_LOADED */wwG42IE\#ifndef __STAT_LOADED#define __STAT_LOADED 1M/******************************************************************************2** - stat/fstat UNIX emulation functions**M*****************************************************************************1** Header introduced by the ISO POSIX-1 StandardM***************************************************************************** **.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N*******************************************************************************/#pragma __nostandard#include #ifdef __cplusplus extern "C" {#endif#if __INITIAL_POINTER_SIZE # pragma __pointer_size __save# pragma __pointer_size 32#endif/**** Do not naturally align data structures*/!#pragma __member_alignment __save#pragma __nomember_alignment/*** Disable warning messages*/#pragma __message __save-#pragma __message __disable (__MISALGNDSTRCT)+#pragma __message __disable (__MISALGNDMEM)/*J** Create 'public' typedefs that are either insensitive to pointer or are:** sensitive to pointer size and must use short pointers.*//* ** X/Open definitions*/S#if defined _XOPEN_SOURCE || (!defined _POSIX_C_SOURCE && !defined _DECC_V4_SOURCE)# ifndef __TIME_T# define __TIME_T 1 typedef __time_t time_t; # endif# ifndef __DEV_T# define __DEV_T 1 typedef __dev_t dev_t; # endif# ifndef __INO_T# !define __INO_T 1 typedef __ino_t ino_t; # endif# ifndef __NLINK_T# define __NLINK_T 1 typedef __nlink_t nlink_t; # endif# ifndef __MODE_T# define __MODE_T 1 typedef __mode_t mode_t; # endif# ifndef __OFF_T# define __OFF_T 1 typedef __off_t off_t; # endif# ifndef __UID_T# define __UID_T 1 typedef __uid_t uid_t; # endif# ifndef __GID_T# define __GID_T 1 typedef __gid_t gid_t; # endif#endif/* A** ISO POSIX-1 de fines off_t to be a signed arithmetic type, and?** requires the st_size field to be of type off_t. DEC C V5.0-** and prior declared the field as unsigned.**@** Also note that times are given in units of seconds since the<** Epoch i.e. times returned are measured in seconds since ** 00:00:00 GMT, Jan. 1, 1970.*/ struct stat{K __dev_t st_dev; /* pointer to physical device name */B __ino_t st_ino[3]; /* 3 words to receive fid */Q  __mode_t st_mode; /* file "mode" i.e. prot, dir, reg, etc. */O __nlink_t st_nlink; /* for compatibility - not really used */D __uid_t st_uid; /* from ACP - QIO uic field */L __gid_t st_gid; /* either short group number extractedN from st_uid or long group number from; POSIX_OWNER ACE */5#if defined _XOPEN_SOURCE || !defined _POSIX_C_SOURCEK  __dev_t st_rdev; /* for compatibility - always zero */#else __dev_t st_fill1;#endif#ifdef _DECC_V4_SOURCEC unsigned int st_size; /* file size in bytes, was unsigned */#else> __off_t st_size; /* file size in bytes */#endifU __time_t st_atime; /* file access time; always same as st_mtime */B __time_t st_mtime; /* last modification time */> __time_t st_ctime; /* file creation time */#ifndef _POSIX_C_SOURCE9 char st_fab_rfm; /* record format */= char st_fab_rat; /* record attributes */= char st_fab_fsz; /* fixed header size */7 unsigned int st_fab_mrs; /* record size */#else char st_fill2[3]; unsigned int st_fill3;#endif};/* ** DEC C extensions*/ #ifndef _POSIX_C_SOURCE typedef struct stat stat_t; #endif/* ** Private definitions*/ 0#def ine __S_IFMT 0170000 /* type of file */0#define __S_IFIFO 0010000 /* pipe or fifo */-#define __S_IFDIR 0040000 /* directory */5#define __S_IFCHR 0020000 /* character special */1#define __S_IFBLK 0060000 /* block special */+#define __S_IFREG 0100000 /* regular */<#define __S_IFMPC 0030000 /* multiplexed char special */=#define __S_IFMPB 0070000 /* multiplexed block special */*#define __S_IFSOCK 0140000 /* socket */1#define __S_IFLNK 0120000 /* symbolic link *//* ** ISO POSIX-1 definitions*/ :#define S_ISUID 0004000 /* set user id on execution */;#define S_ISGID 0002000 /* set group id on execution */@#define S_IRWXU 0000700 /* read,write,execute perm: owner */8#define S_IRUSR 0000400 /* read permission: owner */9#define S_IWUSR 0000200 /* write permission: owner */B#define S_IXUSR 0000100 /* execute/search permission: owner */@#define S_IRWXG 0000070 /* read,write,execute perm: group */8#def ine S_IRGRP 0000040 /* read permission: group */9#define S_IWGRP 0000020 /* write permission: group */B#define S_IXGRP 0000010 /* execute/search permission: group */@#define S_IRWXO 0000007 /* read,write,execute perm: other */8#define S_IROTH 0000004 /* read permission: other */9#define S_IWOTH 0000002 /* write permission: other */B#define S_IXOTH 0000001 /* execute/search permission: other */2#define S_ISFIFO(m) (((m)& __S_IFMT) == __S_IFIFO)2#define S_ISDIR(m) (((m)& __S_IFMT) == __S_IFDIR)2#define S_ISCHR(m) (((m)& __S_IFMT) == __S_IFCHR)2#define S_ISBLK(m) (((m)& __S_IFMT) == __S_IFBLK)2#define S_ISREG(m) (((m)& __S_IFMT) == __S_IFREG)/* ** X/Open XPG4 definitions*/ 5#if defined _XOPEN_SOURCE || !defined _POSIX_C_SOURCE1# define S_IFMT __S_IFMT /* type of file */1# define S_IFIFO __S_IFIFO /* pipe or fifo */.# define S_IFDIR __S_IFDIR /* directory */6# define S_IFCHR __S_IFCHR /* character special */2# define S_IFBLK __S_IFBLK /* block special */,# define S_IFREG __S_IFREG /* regular */ #endif /* ** X/Open XPG4 V2 definitions*/ >#if defined _XOPEN_SOURCE_EXTENDED || !defined _POSIX_C_SOURCE+# define S_IFSOCK __S_IFSOCK /* socket */2# define S_IFLNK __S_IFLNK /* symbolic link */1# define S_ISLNK(m) (((m)& S_IFMT) == S_IFLNK)2# define S_ISSOCK(m) (((m)& S_IFMT) == S_IFSOCK)E# define S_ISVTX 0001000 /* save swapped text even after use */#endif/* ** DEC C extensions*/ #ifndef _POSIX_C_SOURCE;# define S_IREAD 0000400 /* read permission, owner */<# define S_IWRITE 0000200 /* write permission, owner */E# define S_IEXEC 0000100 /* execute/search permission, owner */=# define S_IFMPC __S_IFMPC /* multiplexed char special */># define S_IFMPB __S_IFMPB /* multiplexed block special */#endif/*H** We are done defining things which must always be short pointers. IfH** the user has used /pointer_size=short or /pointer_size=long, we will4** allow ong pointers to be used in function calls.*/#if __INITIAL_POINTER_SIZE# pragma __pointer_size 64#endif/*H** On Alpha, beginning in version of OpenVMS Alpha following V7.3, statI** and fstat support 32-bit gid_t datatype. The stat and fstat functionsJ** supporting long gid_t datatype can return UTC time only. If local timeH** is required, define _VMS_V6_SOURCE macro. Defining _DECC_SHORT_GID_TJ** or _VMS_V6_SOURCE macro causes DEC C RTL to use 16-bit gid_t datatype.*/#if __USE_LONG_GID_T!# pragma __extern_prefix __save(# pragma __extern_prefix "__long_gid_"#else/*C** Beginning in OpenVMS Version 7.0 stat has two implementations. ?** One for compatibility stat() which returns time in terms ofG** local time and one __utc_stat() which returns time in terms of UTC.*/#if __CRTL_VER >= 70000000# if !defined _VMS_V6_SOURCE$# ifdef __CAN_USE_EXTERN_PREFIX'# pragma __extern_prefix __save)# pragma __extern_prefix "__utc_" # else8# define stat(__p1,__p2) __utc_stat(__p1,__p2)9# define fstat(__p1,__p2) __utc_fstat(__p1,__p2) # endif # endif##endif /* __CRTL_VER >= 70000000 */#endif /* __USE_LONG_GID_T *//*** Function prototypes*/3int fstat (int __file_desc, struct stat *__buffer);/*N** If we cannot use extern prefix, then the user cannot get the ellipsis formM** of the prototype. Applications which must use the optional arguments mayK** either upgrade the compiler or change the call site to use decc$stat or$** decc$__utc_stat instead of stat.*/C#if (defined _POSIX_C_SOURCE) || (!defined __CAN_USE_EXTERN_PREFIX)7 int stat (const char *__path, struct stat *__buf);#else< int stat (const char *__path, struct stat *__buf, ...);#endif/*2** Disable extern_prefix if we enabled it earlier*/#if __USE_LONG_GID_T$# pragma __extern_prefix __restore#else#if __CRTL_VER >= 70000000# if !defined _VMS_V6_SOURCE$# ifdef __CAN_USE_EXTERN_PREFIX+# pragma __extern_prefix __restore # endif # endif#endif#endif#if __USE_LONG_GID_T!# pragma __extern_prefix __save(# pragma __extern_prefix "__long_gid_"#endif7int chmod (const char *__file_spec, __mode_t __mode);#if __USE_LONG_GID_T$# pragma __extern_prefix __restore#endif&__mode_t umask (__mode_t __old_mask);#ifdef _POSIX_C_SOURCE 8 int mkdir (const char *__dir_spec, __mode_t __mode);#else= int mkdir (const char *__dir_spec, __mode_t __mode, ...);#endif/*%** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif#pragma __message __restore$#pragma __member_alignment __restore#pragma __standard#endif /* __STAT_LOADED */wwS9IE\#ifndef __STDARG_LOADED#define __STDARG_LOADED 1M/******************* ***********************************************************$** - Variable Arguments **M*****************************************************************************,** Header introduced by the ANSI C StandardM*******************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N*******************************************************************************/#pragma __nostandard #include #ifdef __cplusplus extern "C" {#endif/*M** The header files VARARGS.H and STDARG.H cannot be used together; undo the** effects of VARARGS.H.*/#ifdef __VARARGS_LOADED# undef __VARARGS_LOADED# undef va_dcl# undef va_count# undef va_start_1# undef va_start# undef va_arg# undef va_end#endif/*** Declare a va_list */#ifndef __VA_LIST# define __VA_LIST typedef __va_list va_list;#endif#ifdef __ALPHA# if __X_FLOAT## define va_start(ap, parmN) \B ap = (__va_list) ((char *) __VA_START_BUILTIN(parmN) + \] (((__IS_X_FLOAT_BUILTIN(parmN) ? sizeof(long double *) : sizeof(parmN)) + 7) & ~7)) # define va_arg(ap, type) \, (ap = (__va_list) ((char *) ap + \a (((__IS_X_FLOAT_BUILTIN(type) ? sizeof(long double *) : sizeof(type)) + 7) & ~7)), \+ __IS_X_FLOAT_BUILTIN(type) ? \ (** (type **)((char *) ap - (((__IS_X_FLOAT_BUILTIN(type) ? sizeof(long double *) : sizeof(type)) + 7) & ~7))) : \} ( * (type *) ((char *) ap - (((__IS_X_FLOAT_BUILTIN(type) ? sizeof(long double *) : sizeof(type)) + 7) & ~7))) )# elseu# define va_start(ap, parmN) ap = (__va_list) ((char *) __VA_START_BUILTIN(parmN) + ((sizeof (parmN) + 7) & ~7))^# define va_arg(ap, type) (ap = (__va_list) ((char *) ap + ((sizeof (type) + 7) & ~7)), \A (* (type *)((char *) ap - ((sizeof (type) + 7) & ~7)))) # endif /* 1 ** va_count is an extension to the standard. */ !# ifndef __HIDE_FORBIDDEN_NAMES- unsigned int __VA_COUNT_BUILTIN(void);<# define va_count(count) (count = __VA_COUNT_BUILTIN()) # endif#else=# if (__DECC_VER >= 50300000) || (__DECCXX_VER >= 50300000)B# define va_start(ap, parmN) ap = __VA_START1_BUILTIN(parmN)!# define va_arg(ap, type) \` (__VA_START_BUILTIN(), (ap = (__va_list) ((char *) ap + ((sizeof (type) + 3) & ~3)), \A * (type *) ((char *) ap - ((sizeof (type) + 3) & ~3))))# else# ifdef __cplusplusf# define va_start(ap, parmN) ap = (__va_list) ((char *) &parmN + ((sizeof (parmN) + 3) & ~3))$# define va_arg(ap, type) \M (ap = (__va_list) ((char *) ap + ((sizeof (type) + 3) & ~3)), \D * (type *) ((char *) ap - ((sizeof (type) + 3) & ~3))) # else'# define va_start(ap, parmN) \+ ap = (__VA_START_BUILTIN(), \J (__va_list) ((char *) &parmN + ((sizeof (parmN) + 3) & ~3)))$# define va_a rg(ap, type) \d (__VA_START_BUILTIN(), (ap = (__va_list) ((char *) ap + ((sizeof (type) + 3) & ~3)), \E * (type *) ((char *) ap - ((sizeof (type) + 3) & ~3)))) # endifG# endif /* (__DECC_VER >= 50300000) || (__DECCXX_VER >= 50300000) */!# ifndef __HIDE_FORBIDDEN_NAMES* void decc$va_count( int *__count );7# if defined(__DECC) || (__DECCXX_VER >= 50300000)O# define va_count(count) (__VA_START_BUILTIN(), decc$va_count (&count)) #  else8# define va_count(count) decc$va_count (&count) # endif # endif#endif&#define va_end(ap) ap = (__va_list) 0#ifdef __cplusplus }#endif#pragma __standard#endif /* __STDARG_LOADED */ww'i>IE\#ifndef __STDBOOL_LOADED#define __STDBOOL_LOADED 1M/******************************************************************************'** - C99 boolean data type**M************************************************************ *****************)** Header introduced by the C99 StandardM*****************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**M******************************************************************************/#pragma __nostandard#include 1#if ! (defined(__DECC) && __DECC_VER >= 60400000)E# error "C99 header is not supported by this compiler."#else# define bool _Bool# define true 1# define false 0,# define __bool_true_false_are_defined 16#endif /* defined(__DECC) && __DECC_VER >= 60400000 */#pragma __standard#endif /* __STDBOOL_LOADED */ww?IE\#ifndef __STDDEF_LOADED#define __STDDEF_LOADEDM/******************************************************************************$** - Common Definitions **M*****************************************************************************,** Header introduced by the ANSI C StandardM********************************************************** *********************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N*******************************************************************************/#pragma __nostandard#include typedef int ptrdiff_t;#ifndef __SIZE_T# define __SIZE_T 1 typedef __size_t size_t;#endif#ifndef __WCHAR_T# define __WCHAR_T typedef __wchar_t wchar_t;#endif #ifndef NULL# define NULL __NULL#endifL#define offsetof(type, identifier) ((__size_t)(&((type*) NULL)->identifier))#pragma __standard#endif /* __STDDEF_LOADED */wwBIE\#ifndef __STDIO_LOADED#define __STDIO_LOADED 1M/******************************************************************************%** - Standard Input/Output**M*****************************************************************************,** Header introduced by the ANSI C StandardM*******************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo R egistered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N*******************************************************************************/#pragma __nostandard#include #ifdef __cplusplus extern "C" {#endif#if __INITIAL_POINTER_SIZE # pragma __pointer_size __save# pragma __pointer_size 32#endif/*3** Cplusplus and unix_putc does not work together.@** Primarily for pragma inline functions. So put out an error. *//# if defined __UNIX_PUTC && defined __cplusplus6# error " Use of __UNIX_PUTC not permitted with C++"# endif/*** Member align structures*/!#pragma __member_alignment __save#pragma __member_alignment/*K** Create 'public' typedefs that are either insensitive to pointer size or>** are sensitive to pointer size and must use short pointers.*/ #ifndef NULL# define NULL __NULL#endifstruct _iobuf { int _cnt; char *_ptr; char *_base; unsigned char _flag;#if __CRTL_VER >= 70000000" unsigned char _padfile;  unsigned char _pad1; unsigned char _pad2;  int _file;#else unsigned char _file;  unsigned char _pad1; unsigned char _pad2;#endif};#ifndef __FILE_T# define __FILE_T typedef __FILE FILE;#endifAtypedef struct {unsigned __f0 : 32; unsigned __f1 : 32; } fpos_t;#ifndef __SIZE_T# define __SIZE_T 1 typedef __size_t size_t;#endif/*5** Define macros to access stdin, stdout, and stderr*/#ifdef __ALPHA"# define stderr (decc$ga_stderr)!# define stdin (decc$ga_stdin)"# define stdout (decc$ga_stdout)#else## define stderr (*decc$ga_stderr)"# define stdin (*decc$ga_stdin)## define stdout (*decc$ga_stdout)#endif/*$** Define stdin, stdout, and stderr*/#pragma __extern_model __save&#pragma __extern_model __strict_refdef extern __FILE * stderr; extern __FILE * stdin; extern __FILE * stdout; #pragma __extern_model __restore/*A** Define optind, opterr, optopt, and optarg. X/Open originallyG** specified these in . ISO POSIX-2 moved them to ** X/Open retains them in both.*/G#if __CRTL_VER >= 60200000 /* Supported starting with OpenVMS V6.2 */9# if defined(_XOPEN_SOURCE) || !defined(_ANSI_C_SOURCE)## pragma __extern_model __save,# pragma __extern_model __strict_refdef extern int optind; extern int opterr; extern int optopt; extern char *optarg;&# pragma __extern_model __restore # endif#endif/*L** The ANSI standard defines the following integral constant expressions asJ** having distinct values, suitable for use as the third argument to the ** setvbuf function.*/#define _IOLBF 0x01#define _IOFBF 0x02#define _IONBF 0x04/*M** Values for _flag field in the _iobuf structure. This flag is used by theG** functions clearerr(), feof() and ferror(). A standards conforming@** program should not use _IOEOF or _IOERR. Use clearerr, feof** and ferror macros instead.*/# define _IOEOF 0x10# define _IOERR 0x20#ifndef _ANSI_C_SOURCE# define _IOREAD 0x01# define _IOWRT 0x02# define _IOMYBUF 0x08# define _IOSTRG 0x40# define _IORW 0x80#endif/*F** Define seek modes. Note that the SEEK_EOF value is not defined byD** the ANSI standard, but is provided for compatibility with VAX C.*/#define SEEK_SET 0#define SEEK_CUR 1#define SEEK_END 2#ifndef _ANSI_C_SOURCE# define SEEK_EOF SEEK_END#endif/*I** The literal BUFSIZ is defined by the ANSI standard as the size of the'** buffer used by the setbuf function.*/#ifdef __ALPHA# define BUFSIZ 32768#else# define BUFSIZ 8192#endif/*;** DEC C RTL extension. Define the values TRUE and FALSE.*/#ifndef _ANSI_C_SOURCE# ifndef TRUE# define TRUE 1 # endif# ifndef FALSE# define FALSE 0 # endif#endif/*L** The ANSI standard defines EOF as a negative integral constant expressionB** that is returned by several functions to indicate end-of-file.*/#define EOF (-1)/*B** The ANSI standard defines FILENAME_MAX as an integral constantK** expression that is the size needed for an array of char large enough toH** hold the longest file name string that the implementation guarantees** can be opened.**J** The ANSI standard defines FOPEN_MAX as an integral constant expressionJ** that is the minumum number of files that the implementation guaranteesJ** can be opened simultaneously. This value is difficult to define as anJ** accurate constant value since many things affect the ability to open a** given number of files.*/#define FILENAME_MAX 256#define FOPEN_MAX 8/*M** DEC C RTL extension. Define OPEN_MAX to be identical to FOPEN_MAX. Also*** define _NFILE for VAX C compatibility.*/#ifndef _ANSI_C_SOURCE# define OPEN_MAX FOPEN_MAX# define _NFILE 20#endif/*C** The literal values L_tmpnam and TMP_MAX are defined by the ANSIE** standard. If the argument to the tmpnam() function is not a nullD** pointer, it is assumed to point to an array of at least L_tmpnamH** characters. The value TMP_MAX represents the number of unique namesJ** which must be returned from the tmpnam() function on successive calls.*/#define L_tmpnam 256#define TMP_MAX 32/*F** ISO POSIX-1 extensions. These literal values are analogous to the/** L_tmpnam value for tmpnam() function calls.*/8#if defined(_POSIX_C_SOURCE) || !defined(_ANSI_C_SOURCE)# define L_cuserid 16# define L_ctermid 64#endif/*D** DEC C RTL extensions. These literal values are analogous to the/** L_tmpnam value for tmpnam() function calls.*/#ifndef _ANSI_C_SOURCE# define L_lcltmpnam 256# define L_nettmpnam 256#endif/*E** The MIA standard requires use of a special rename() and freopen();** function. Define macros when compiling with that mode.*/ #ifdef __MIA"# define rename decc$mia_rename## define freopen decc$mia_freopen#endif/*** DEC C Performance (Macros)*/M#define feof(stream) (((unsigned int)((*(stream))->_flag) & _IOEOF) != 0)M#define ferror(stream) (((unsigned int)((*(stream))->_flag) & _IOERR) != 0)K#define clearerr(stream) ((void)((*(stream))->_flag &= ~(_IOERR | _IOEOF)))/*** DEC C Performance (Inlined)**L** Certain DEC C functions are available as inline code instead of making aE** call to the DEC C RTL. Using this inline code offers performanceM** improvements and are enabled here for all programs on the ALPHA platform.*/#ifdef __ALPHA /*E ** ANSI standard says that getc/putc can evaluate its parameters ** more than once. ** */# ifndef getc%# define getc(__fp) ((*__fp) ? \F (((((*__fp)->_cnt > 0) & !((int)(*__fp)->_flag & 0x40)) ? \N ((*__fp)->_cnt--, ((int) ((unsigned char) *((*__fp)->_ptr++)))) : \) (getc)(__fp))) : (getc)(__fp)) # endif# ifndef getchar%# define getchar() ((*stdin) ? \H (((((*stdin)->_cnt > 0) & !((int)(*stdin)->_flag & 0x40)) ? \P ((*stdin)->_cnt--, ((int) ((unsigned char) *((*stdin)->_ptr++)))) : \' (getchar)())) : (getchar)()) # endif /*? ** This is conditional until a problem with static inline 0 ** procedures is corrected in the compiler.9 ** When this is corrected, we must separate this and' ** conditionalize this out of c++. **  */# ifdef __UNIX_PUTC# ifndef putc# pragma __inline __putc= static int __putc( int __c, struct _iobuf **__p2 ) {$ struct _iobuf *__p = *__p2;/ if (!(*__p2)) return (putc)(__c,__p2);$ if ( !((__p)->_flag & 0x40)B & ((int)((__p)->_ptr) != (int) *(((int *) (__p)) + 6))8 & !(*(((unsigned char *)(__p))+14) & 0x10 )) {- if ((__p)->_cnt) (__p)->_cnt--;% *(__p)->_ptr++ = (__c);8 *(((unsigned char *) (__p)) + 14) |= 0x02; return __c; + } else return (putc)(__c,__p2); }'# define putc(c,fp) __putc(c,fp) # endif# ifndef putchar # pragma __inline __putchar( static int __putchar( int __c ) {& struct _iobuf *__p = *stdout;/ if (!(*stdout)) return (putchar)(__c);# if (!((__p)->_flag & 0x40)= & ((int)((__p)->_ptr)!=(int) *(((int *)(__p))+6))8 & !(*(((unsigned char *)(__p))+14) & 0x10 )) {- if ((__p)->_cnt) (__p)->_cnt--;% *(__p)->_ptr++ = (__c);8 *(((unsigned char *) (__p)) + 14) |= 0x02; return __c; ) } else return (putchar)(__c); }%# define putchar(c) __putchar(c) # endif # endif /*@ ** ANSI standard says that fgetc/fputc cannot evaluate its 9 ** parameters more than once so make sure it is doneJ ** via a static inline function. and surrounded by unix conditionals. */# ifdef __UNIX_PUTC# ifndef fgetc# pragma inline __fgetcA static int __fgetc (__FILE *__fp) {return (getc (__fp));}# define fgetc(fp) __fgetc(fp)# endif# ifndef fputc# pragma __inline __fputcU static int __fputc(int __c, struct _iobuf **__p2) {return (putc(__c, __p2));}(# define fputc(c,fp) __fputc(c,fp) # endif # endif#endif /* Alpha *//*H** This section is for functions and declarations which do not support /** 64 bit pointers being passed (or returned).*/.void setbuf (__FILE *__stream, char *__buf);Kint setvbuf (__FILE *__stream, char *__buf, int __mode, __size_t __size);/* K** The function cuserid is defined by IEEE Std 1003.1-1988 and was changedO** from mandatory to permitted by ISO POSIX-1. With IEEE Std 1003.1-1988, theN** definition is in . X/Open added it to while retaining ** the definition in **L** The function getopt was originally in ISO POSIX-2 moved it to)** X/Open retains it in both.*/ 6#if defined(_XOPEN_SOURCE) || !defined(_ANSI_C_SOURCE)J# if __CRTL_VER >= 60200000 /* Supported starting with OpenVMS V6.2 */O int getopt (int __argc, char * const __argv[], const char *__optstring); # endif#endif/*H** We are done defining things which must always be short pointers. IfH** the user has used /pointer_size=short or /pointer_size=long, we will5** allow long pointers to be used in function calls.*/#if __INITIAL_POINTER_SIZE# pragma __pointer_size 64#endif/*** ANSI Function prototypes*/S__size_t fread (void *__ptr, __size_t __size, __size_t __nmemb, __FILE *__stream);Y__size_t fwrite (const void *__ptr, __size_t __size, __size_t __nmemb, __FILE *__stream);#int fclose (__FILE *__stream);#int fflush (__FILE *__stream);2int fgetpos (__FILE *__stream, fpos_t *__pos);>int fprintf (__FILE *__stream, const char *__format, ...);4int fputs (const char *__s, __FILE *__stream);>int fscanf (__FILE *__stream, const char *__format, ...);Dint fseek (__FILE *__stream, long int __offset, int __whence);8int fsetpos (__FILE *__stream, const fpos_t *__pos);#long ftell (__FILE *__stream);"void perror (const char *__s);,int printf (const char *__format, ...);"int puts (const char *__s);)int remov e (const char *__filename);7int rename (const char *__old, const char *__new);,int scanf (const char *__format, ...);7int sprintf (char *__s, const char *__format, ...);=int sscanf (const char *__s, const char *__format, ...);,int ungetc (int __c, __FILE *__stream);Kint vfprintf (__FILE *__stream, const char *__format, __va_list __arg); 8int vprintf (const char *__format, __va_list __arg);Cint vsprintf (char *__s, const char *__format, __va_list __arg);__FILE_ptr32 tmpfile(void);/*>** The following function prototypes may be defined as macros*/#void (clearerr) (__FILE *__stream);#int (feof) (__FILE *__stream);#int (ferror) (__FILE *__stream);#int (fgetc) (__FILE *__stream);,int (fputc) (int __c, __FILE *__stream);#int (getc) (__FILE *__stream);int (getchar) (void);,int (putc) (int __c, __FILE *__stream);int (putchar) (int __c);/*H** By defining __UNIX_FOPEN, a macro for fopen is  defined which ensuresF** that the created file does not inherit attributes from an existingE** file. To use the fopen function with optional RMS arguments, theC** caller is required to use (fopen)() to prevent macro expansion.*/#ifdef __UNIX_FOPENI __FILE_ptr32 fopen (const char *__filename, const char *__mode, ...);# define fopen(__p1,__p2) \C (fopen)(__p1,__p2,"ctx=stm","rfm=stmlf","rat=cr","mrs=0")#else# ifdef _ANSI_C_SOURCEG __FILE_ptr32 fopen (const char *__filename, const char *__mode); # else L __FILE_ptr32 fopen (const char *__filename, const char *__mode, ...); # endif#endif/*H** The DEC C RTL extends the ANSI standard definitions of the followingH** functions. The function prototypes used in this header file differ 0** when the user is compiling /standard=ansi89.*/#ifdef _ANSI_C_SOURCEX __FILE_ptr32 freopen (const char *__filename, const char *__mode, __FILE *__stream);# void rewind (__FILE *__stream);#else] __FILE_ptr32 freopen (const char *__filename, const char *__mode, __FILE *__stream, ...);# int rewind (__FILE *__stream);#endif/*K** The following functions have interfaces of XXX, _XXX32, and _XXX64 due J** 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#endif8#if defined(_POSIX_C_SOURCE) || !defined(_ANSI_C_SOURCE) char *ctermid (char *__str);#endif6#if defined(_XOPEN_SOURCE) || !defined(_ANSI_C_SOURCE) char *cuserid (char *__str);#endif char *gets (char *__s);9 char *fgets (char *__s, int __n, __FILE *__stream); char *tmpnam (char *__s); #if __INITIAL_POINTER_SIZE == 32#pragma __pointer_size 64#endifP#if __INITIAL_POINTER_SIZE && !defined(_ANSI_C_SOURCE) && __CRTL_VER >= 70000000# pragma __pointer_size 32# char *_ctermid32 (char *__str);# char *_cuserid32 (char *__str); char *_gets32 (char *);- char *_fgets32 (char *, int, __FILE *); char *_tmpnam32 (char *);# pragma __pointer_size 64# char *_ctermid64 (char *__str);# char *_cuserid64 (char *__str); char *_gets64 (char *);- char *_fgets64 (char *, int, __FILE *); char *_tmpnam64 (char *);#endif/*** ISO POSIX-1 Extensions*/8#if defined(_POSIX_C_SOURCE) || !defined(_ANSI_C_SOURCE)$ int (fileno) (__FILE *__stream);= __FILE_ptr32 fdopen(int __file_desc, const char *__mode);#endif/* ** ISO POSX-2 Extensions*/ N#if _POSIX_C_SOURCE >= 2 || !defined(_ANSI_C_SOURCE) && __CRTL_VER >= 70000000B __FILE_ptr32 popen(const char *__command, const char *__mode);! int pclose(__FILE *__stream);#endif/* ** X/Open extensions*/ 6#if defined(_XOPEN_SOURCE) || !defined(_ANSI_C_SOURCE) int getw (__FILE *__stream);/ int putw (int __integer, __FILE *__stream);J#if __CRTL_VER >= 70000000 /* tempnam() was introduced in OpenVMS V7.0 *//* E** P_tmpdir is the directory name used for tempnam(). It is defined** by X/Open.*/ "# define P_tmpdir "SYS$SCRATCH:"; __char_ptr32 tempnam(const char *dir, const char *pfx);#endif#endif/* B** DEC C RTL extensions. This include explicit 64-bit interfaces#** to otherwise standard routines.*/ #ifndef _ANSI_C_SOURCE## if __INITIAL_POINTER_SIZE == 32# pragma __pointer_size 32 # endif7 char *fgetname(__FILE *__strea m, char *__buf, ...);7# if __INITIAL_POINTER_SIZE && __CRTL_VER >= 70000000 # pragma __pointer_size 32> char *_fgetname32(__FILE *__stream, char *__buf, ...); # pragma __pointer_size 64> char *_fgetname64(__FILE *__stream, char *__buf, ...); # endifB int decc$read (int __file_desc, void *__buffer, int __nbytes);f# define decc$record_read(stream, buf, max_size) decc$read (((*(stream))->_file), (buf), (max_size))S# define decc$record_write(stream, buf, size) fwrite ((buf), (size), 1, (stream))$# define FILE_TYPE struct _iobuf *! int fwait (__FILE *__stream); int lwait (int __file_desc); /* ; ** fsync is standardized by X/Open to be in  */ int fsync (int __file_desc);# endif/*1** Support code for precompiled printf functions*/5#if ((__DECC_VER > 50600000) && defined(_INTRINSICS))/# pragma intrinsic(printf, fprintf, sprintf)# ifdef _INLINE_INTRINSICSB static __inline int decc$__CFE_print_puts(const char *x) {# return(fputs(x,stdout)); }: static __inline int decc$__CFE_print_putc(int x) { putc(x,stdout); return(1); }= static __inline int decc$__CFE_print_putc_nl(int x) {- putc(x,stdout); putc('\n',stdout); return(2); }R static __inline int decc$__CFE_fprint_puts_nl(const char *x, __FILE *f) { ( register int i = fputs(x,f);   putc('\n',f);  return(i+1); }F static __inline int decc$__CFE_fprint_putc(int x, __FILE *f) { putc(x,f); return(1); }I static __inline int decc$__CFE_fprint_putc_nl(int x, __FILE *f) {# putc(x,f); putc('\n',f); return(2); } # else3 int decc$__CFE_print_puts( const char *x );+ int decc$__CFE_print_putc( int x );. int decc$__CFE_print_putc_nl( int x );B int decc$__CFE_fprint_puts_nl( const char *x, __FILE *f );7 int decc$__CFE_fprint_putc( int x, __FILE *f );: int decc$__CFE_fprint_putc_nl( int x, __FILE *f ); # endif#endif/*%** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif$#pragma __member_alignment __restore#pragma __standard#endif /* __STDIO_LOADED */ww1OIE\#ifndef __STDLIB_LOADED#define __STDLIB_LOADED 1M/******************************************************************************"** - General Utilities**M*****************************************************************************,** Header introduced by the ANSI C StandardM*******************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N*******************************************************************************/#pragma __nostandard#include #ifdef __cplusplus  extern "C" {#endif/* E** X/Open specifies that WNOHANG, WUNTRACED, WEXITSTATUS, WIFEXITED,N** WIFSIGNALED, WIFSTOPPED, WSTOPSIG and WTRERMSIG are defined here, and thatJ** inclusion of may make visible all symbols from */ R#if defined _XOPEN_SOURCE || (!defined _ANSI_C_SOURCE && !defined _DECC_V4_SOURCE)# include #endif#if __INITIAL_POINTER_SIZE # pragma __pointer_size __save# pragma __pointer_size 32#endif/*** Member align structures*/!#pragma __member_alignment __save#pragma __member_alignment/*H** Create 'public' typedefs that are sensitive to pointer size and mustK** use 32 bit pointers. Create other declarations which are not sensitive** to pointer size.*/ #ifndef NULL# define NULL __NULL#endif#ifndef __SIZE_T# define __SIZE_T 1 typedef __size_t size_t;#endif#ifndef __WCHAR_T# define __WCHAR_T typedef __wchar_t wchar_t;#endiftypedef struct {  int quot, rem;} div_t;typedef struct { long int quot, rem; } ldiv_t;/* .** mode_t is needed for a DEC C RTL Extension*/ #ifndef _ANSI_C_SOURCE5# if !defined __MODE_T && !defined _DECC_V4_SOURCE# define __MODE_T 1 typedef __mode_t mode_t; # endif#endif/*** Define constant values*//*<** Exit function failure definition changes corresponding to+** V7.0 "UNIX"-like exit function behavior.*/2#if __CRTL_VER >= 70000000 && defined(_POSIX_EXIT)# define EXIT_FAILURE (1) #else&# define EXIT_FAILURE 0x10000002 #endif#define EXIT_SUCCESS 0!#define RAND_MAX 2147483647/*F** Beginning in OpenVMS V6.2, MB_CUR_MAX is no longer a literal value*/#if __CRTL_VER < 60200000# define MB_CUR_MAX 1#else # pragma __extern_model __save)# pragma __extern_model __strict_refdef% extern int decc$$gl___mb_cur_max;## pragma __extern_model __restore-# define MB_CUR_MAX (decc$$gl___mb_cur_max)#endifM/******************************************************************************2** Functions which do not support 64 bit pointers**M****************************************************************************//*** ANSI functions */$ int atexit(void(*__func)(void));/*** X/Open functions*/4#if defined _XOPEN_SOURCE || !defined _ANSI_C_SOURCE# if __CRTL_VER >= 70000000/ int putenv (const char *__string); # endif#endif /*** X/Open Extended functions*/W#if defined _XOPEN_SOURCE_EXTENDED || !defined _ANSI_C_SOURCE && __CRTL_VER >= 70000000 char *setstate(char *);/ char *initstate(unsigned int, char *, int);#endif/*M** We are done defining things which must always be 32 bit pointers. If theL** 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#endifM /******************************************************************************;** Functions which accept either 32 bit or 64 bit pointers**M****************************************************************************//*** ANSI functions */ void abort (void); int abs (int __j);+ double atof (const char *__nptr);+ int atoi (const char *__nptr);+ long int atol (const char *__nptr);1 div_t div (int __numer, int __denom);$ void free (void *__ptr);% long int labs (long int __j);; ldiv_t ldiv (long int __numer, long int __denom);6 int mblen (const char *__s, __size_t __n);I __size_t mbstowcs (__wchar_t *__pwcs, const char *__s, __size_t __n);H int mbtowc (__wchar_t *__pwc, const char *__s, __size_t __n); int rand (void);, void srand (unsigned int __seed);I __size_t wcstombs (char *__s, const __wchar_t *__pwcs, __size_t __ n);5 int wctomb (char *__s, __wchar_t __wchar);2#if __CRTL_VER >= 70000000 && defined(_POSIX_EXIT)# if __CAN_USE_EXTERN_PREFIX$# pragma __extern_prefix __save(# pragma __extern_prefix "__posix_"# else&# define exit(__p1) __posix_exit(__p1)*# define system(__p1) __posix_system(__p1) # endif#endif% void exit (int __status);- int system (const char *__string);2#if __CRTL_VER >= 70000000 && defined(_POSIX_EXIT)# if __CAN_USE_E XTERN_PREFIX'# pragma __extern_prefix __restore # endif#endif/*** X/Open functions */4#if defined _XOPEN_SOURCE || !defined _ANSI_C_SOURCE# if __CRTL_VER >= 70000000 double drand48 (void);8 double erand48 (unsigned short int __xsubi[3]);8 long int jrand48 (unsigned short int __xsubi[3]);8 void lcong48 (unsigned short int __param[7]); long int lrand48 (void); long int mrand48 (void);8 long int nrand48 (unsigned short int __xsubi[3]);- void srand48 (long int __seedval); # endif#endif/*** X/Open Extended functions*/=#if defined _XOPEN_SOURCE_EXTENDED || !defined _ANSI_C_SOURCE# if __CRTL_VER >= 70000000& int mkstemp (char *path);  long int random (void);' void srandom (unsigned int); # endif#endif/*** DEC C extensions*/#ifndef _ANSI_C_SOURCE< int nice (int __increment); /* */< __mode_t umask (__mode_t __old_mask); /* */! void cfree (void *__ptr);# ifdef __ALPHAA typedef struct { __int64 quot, rem; } __qdiv_t, __lldiv_t;, __int64 atoll (const char *__nptr);, __int64 atoq (const char *__nptr);% __int64 llabs (__int64 __j);: __lldiv_t lldiv (__int64 __numer, __int64 __denom);% __int64 qabs (__int64 __j);: __lldiv_t qdiv (__int64 __numer, __int64 __denom); # endif# if __CRTL_VER >= 70000000P int setenv (const char *__name, const char *__value, int __overwrite);* void unsetenv (const char *__name); # endif2#if __CRTL_VER >= 70000000 && defined(_POSIX_EXIT)# if __CAN_USE_EXTERN_PREFIX$# pragma __extern_prefix __save(# pragma __extern_prefix "__posix_"# else+# define _exit(__p1) __posix__exit(__p1) # endif#endif< void _exit (int __status); /* */2#if __CRTL_VER >= 70000000 && defined(_POSIX_EXIT)#  if __CAN_USE_EXTERN_PREFIX'# pragma __extern_prefix __restore # endif#endif#endifM/******************************************************************************H** Functions which accept either 32 bit or 64 bit pointers, but always ** return 32 bit pointers.**M****************************************************************************//*** ANSI functions*/- __char_ptr32 getenv (const char *__name);/*** X/Open functions*/4#if defined _XOPEN_SOURCE || !defined _ANSI_C_SOURCE# if __CRTL_VER >= 70000000B __unsigned_short_ptr32 seed48(unsigned short __seed16v[3]); # endif#endif/*** X/Open Extended functions*/=#if defined _XOPEN_SOURCE_EXTENDED || !defined _ANSI_C_SOURCEP __char_ptr32 ecvt (double __value, int __ndigit, int *__decpt, int *__sign);P __char_ptr32 fcvt (double __value, int __ndigit, int *__decpt, int *__sign);#endif/*** DEC C extensions.*/#ifndef _ANSI_C_SOURCEB __ void_ptr32 brk (unsigned long int __addr); /* */: __void_ptr32 sbrk (long int __incr); /* */#endifM/******************************************************************************G** Functions which have separate implementations for 32 bit and 64 bitG** pointers. The implementation defaults to that corresponding to theI** default pointer size used in the /POINTER_SIZE qualifier. The 32 bitH** interface is used with no /POINTER_SIZE qualifier is present. LaterE** in this header file we will define additional function prototypesG** which allow you to call the non-default form of the implementation.**M****************************************************************************/ #if __INITIAL_POINTER_SIZE == 32# pragma __pointer_size 32#endif/*** ANSI functions*/7 void * calloc (__size_t __nmemb, __size_t __size);% void * malloc (__size_t __size);9 void * realloc (__void_ptr64 __ptr, __size_t __size);q void * bsearch (const void *, const void *, __size_t, __size_t, int (*__compar)(const void *, const void *));] void qsort (void *, __size_t, __size_t, int (*__compar)(const void *, const void *));9 double strtod (const char *__nptr, char **__endptr);F long int strtol (const char *__nptr, char **__endptr, int __base);P unsigned long int strtoul (const char *__nptr, char **__endptr, int __base);/*** X/Open Extended functions*/=#if defined _XOPEN_SOURCE_EXTENDED || !defined _ANSI_C_SOURCEA char * gcvt (double __value, int __ndigit, char *__buffer);% char * mktemp (char *__template);#endif/*!** DEC C extensions (Alpha only)*/.#if !defined _ANSI_C_SOURCE && defined __ALPHAE __int64 strtoll(const char *__nptr, char **__endptr, int __base);E __int64 strtoq (const char *__nptr, char **__endptr, int __base);O unsigned __int64 strtoull(const char *__nptr, char **__endptr, int __base);O unsigned __int64 strtouq (const char *__ nptr, char **__endptr, int __base);#endifM/******************************************************************************I** In addition to the function prototypes above, two additional functionG** prototypes are defined. These prototypes are prefixed with "_" andI** have a suffix of either "32" or "64" depending on whether you want toB** use the 32 bit pointer form or the 64 bit pointer form. TheseG** functions can be used if you have used the /POINTER_SIZE qualifier,I** and you need to explitly call either the 32 or 64 bit pointer form of** the function.**M****************************************************************************/5#if __INITIAL_POINTER_SIZE && !defined _ANSI_C_SOURCEM /************************************************************************ ** ** 32 Bit Interfaces **M ************************************************************************/# pragma __pointer_size 32 /* ** ANSI functio ns */+ void * _calloc32 (__size_t, __size_t);! void * _malloc32 (__size_t);) void * _realloc32 (void *, __size_t);t void * _bsearch32 (const void *, const void *, __size_t, __size_t, int (*__compar)(const void *, const void *));` void _qsort32 (void *, __size_t, __size_t, int (*__compar)(const void *, const void *));. double _strtod32 (const char *, char **);4 long int _strtol32 (const char *, char **, int);> unsigned long int _strtoul32 (const char *, char **, int); /*! ** X/Open Extended functions */D char * _gcvt32 (double __value, int __ndigit, char *__buffer); char * _mktemp32 (char *); /*% ** DEC C extensions (Alpha only) */4 __int64 _strtoll32 (const char *, char **, int);4 __int64 _strtoq32 (const char *, char **, int);> unsigned __int64 _strtoull32 (const char *, char **, int);> unsigned __int64 _strtouq32 (const char *, char **, int);M /************************************************************************ ** ** 64 Bit Interfaces **M ************************************************************************/# pragma __pointer_size 64 /* ** ANSI functions */+ void * _calloc64 (__size_t, __size_t);! void * _malloc64 (__size_t);) void * _realloc64 (void *, __size_t);t void * _bsearch64 (const void *, const void *, __size_t, __size_t, int (*__compar)(const void *, const void *));` void _qsort64 (void *, __size_t, __size_t, int (*__compar)(const void *, const void *));. double _strtod64 (const char *, char **);4 long int _strtol64 (const char *, char **, int);> unsigned long int _strtoul64 (const char *, char **, int); /*! ** X/Open Extended functions */D char * _gcvt64 (double __value, int __ndigit, char *__buffer); char * _mktemp64 (char *); /*% ** DEC C extensions (Alpha only) */4 __int64 _strtoll64 (const char *, char **, int);4 __int64 _strtoq64 (const char *, char **, int);> unsigned __int64 _strtoull64 (const char *, char **, int);> unsigned __int64 _strtouq64 (const char *, char **, int);#endif/*** DEC C Performance**F** Certain DEC C functions are available as compiler builtins. UsingD** the builtins offer performance improvements and are enabled here0** for all programs including this header file.*/'#if defined(__ALPHA) && defined(__DECC) int __ABS (int __j);# long int __LABS (long int __j);# define abs(__x) __ABS(__x) # define labs(__x) __LABS(__x)#endif/*%** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif$#pragma __member_alignment __restore#pragma __standard#endif /* __STDLIB_LOADED */wwVIE\#ifndef __STRING_LOADED#define __STRING_LOADED 1M/****************************************************************************** ** - String Handling**M*****************************************************************************,** Header introduced by the ANSI C StandardM*******************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession,  use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N*******************************************************************************/#pragma __nostandard#include #ifdef __cplusplus extern "C" {#endif#if __INITIAL_POINTER_SIZE # pragma __pointer_size __save!# pragma __pointer_size 32#endif/*N** Create 'public' typedefs, structure definitions, and definitions which areM** 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 typedef __size_t size_t;#endif #ifndef NULL# define NULL __NULL#endif/*L** At this point in the processing, we are done defining those things whichJ** must always be short pointers. If the use"r has used the /pointer_sizeG** qualifier, we will allow long pointers to be used in function callsE** regardless of whether they have specified short or long pointers.*/#if __INITIAL_POINTER_SIZE# pragma __pointer_size 64#endif/*O** The following functions have interfaces of XXX, _XXX32, and _XXX64 due onlyM** 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 ##endif7void *memchr (const void *__s, int __c, __size_t __n);Bvoid *memcpy (void *__s1, __const_void_ptr64 __s2, __size_t __n);Bvoid *memmove (void *__s1, __const_void_ptr64 __s2, __size_t __n);1void *memset (void *__s, int __c, __size_t __n);4char *strcat (char *__s1, __const_char_ptr64 __s2);)char *strchr (const char *__s, int __c);4char *strcpy (char *__s1, __const_char_ptr64 __s2);Bchar *strncat (char *__s1, __const_char_ptr64 __s2, __size_t __n);Bchar *strncpy (char *__s1, __c$onst_char_ptr64 __s2, __size_t __n);:char *strpbrk (const char *__s1, __const_char_ptr64 __s2);)char *strrchr (const char *__s, int __c);:char *strstr (const char *__s1, __const_char_ptr64 __s2);4char *strtok (char *__s1, __const_char_ptr64 __s2); #if __INITIAL_POINTER_SIZE == 32#pragma __pointer_size 64#endifO#if __INITIAL_POINTER_SIZE && !defined _ANSI_C_SOURCE && __CRTL_VER >= 70000000# pragma __pointer_size 32> void *_memchr32 (const void *__s, int __c, __size_t __n);I% void *_memcpy32 (void *__s1, __const_void_ptr64 __s2, __size_t __n);I void *_memmove32 (void *__s1, __const_void_ptr64 __s2, __size_t __n);8 void *_memset32 (void *__s, int __c, __size_t __n);; char *_strcat32 (char *__s1, __const_char_ptr64 __s2);0 char *_strchr32 (const char *__s, int __c);; char *_strcpy32 (char *__s1, __const_char_ptr64 __s2);I char *_strncat32 (char *__s1, __const_char_ptr64 __s2, __size_t __n);I char *_strncpy32 (char *__s1, __const_char &_ptr64 __s2, __size_t __n);A char *_strpbrk32 (const char *__s1, __const_char_ptr64 __s2);0 char *_strrchr32 (const char *__s, int __c);A char *_strstr32 (const char *__s1, __const_char_ptr64 __s2);; char *_strtok32 (char *__s1, __const_char_ptr64 __s2);# pragma __pointer_size 64> void *_memchr64 (const void *__s, int __c, __size_t __n);B void *_memcpy64 (void *__s1, const void *__s2, __size_t __n);B void *_memmove64 (void *__s1, const void *__s2, __size_t __n ');8 void *_memset64 (void *__s, int __c, __size_t __n);4 char *_strcat64 (char *__s1, const char *__s2);0 char *_strchr64 (const char *__s, int __c);4 char *_strcpy64 (char *__s1, const char *__s2);B char *_strncat64 (char *__s1, const char *__s2, __size_t __n);B char *_strncpy64 (char *__s1, const char *__s2, __size_t __n);: char *_strpbrk64 (const char *__s1, const char *__s2);0 char *_strrchr64 (const char *__s, int __c);: char *_strstr64 (const char *__s1, (const char *__s2);4 char *_strtok64 (char *__s1, const char *__s2);#endif/*J** The following functions have only a single interface regardless of theI** pointer size in effect. The parameters can accept both 32 bit and 64** bit addresses.*/Bint memcmp (const void *__s1, const void *__s2, __size_t __n);4int strcmp (const char *__s1, const char *__s2);4int strcoll (const char *__s1, const char *__s2);Bint strncmp (const char *__s1, const char *__s2, __size_t _)_n);6__size_t strcspn (const char *__s1, const char *__s2);#__size_t strlen (const char *__s);6__size_t strspn (const char *__s1, const char *__s2);>__size_t strxfrm (char *__s1, const char *__s2, __size_t __n);5#if !defined _ANSI_C_SOURCE && __CRTL_VER >= 602000001__size_t strnlen (const char *__s, __size_t __n);#endif/*H** The following function has a different prototype based on whether or=** not we are compiling in strict ANSI C compatibility mode.*/#if defined _ANSI_*C_SOURCE( __char_ptr32 strerror(int __errnum);#else- __char_ptr32 strerror(int __errnum, ...);#endif/* ** X/Open extensions*/ 4#if defined _XOPEN_SOURCE || !defined _ANSI_C_SOURCE## if __INITIAL_POINTER_SIZE == 32# pragma __pointer_size 32 # endif# if __CRTL_VER >= 70000000= void *memccpy(void *, __const_void_ptr64, int, __size_t); # endif#endif/* ** X/Open extended*/ =#if defined _XOPEN_SOURCE_EXTENDED || !defined _ANSI_C_SOURC+E## if __INITIAL_POINTER_SIZE == 32# pragma __pointer_size 32 # endif# if __CRTL_VER >= 70000000% char *strdup(__const_char_ptr64); # endif#endif/* C** BSD 4.4 extensions. strsep is specified by BSD 4.4 but X/OpenA** There is not currently a feature test macro defined for BSD44*/ 5#if !defined _ANSI_C_SOURCE && __CRTL_VER >= 70000000## if __INITIAL_POINTER_SIZE == 32# pragma __pointer_size 32 # endif. char *strsep(char **, __co,nst_char_ptr64);# if __INITIAL_POINTER_SIZE # pragma __pointer_size 32. char *_strsep32(char **, __const_char_ptr64); # pragma __pointer_size 64( char *_strsep64(char **, const char *);# endif#endif/*** DEC C ExtensionsF** X/Open extended specifies that bcmp, bcopy, bzero, ffs, strcasecmp7** strncasecmp, index and rindex appear in .L** X/Open extended specifies that basename and dirname appear in */5#if !defined _ANSI_C_SOURCE &&- __CRTL_VER >= 70000000## if __INITIAL_POINTER_SIZE == 32# pragma __pointer_size 64 # endifD 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);0 int strcasecmp(const char *, const char *);; int strncasecmp(const char *, const char *, __size_t);## if __INITIAL_POINTER_SIZE == 32# pragma __pointer_size 32 # en.dif# char *index(const char *, int);$ char *rindex(const char *, int); char *basename(char *); char *dirname(char *);# if __INITIAL_POINTER_SIZE # pragma __pointer_size 32, char *_strdup32(__const_char_ptr64);= void *_memccpy32(void *, __const_void_ptr64, int, __size_t); char *_basename32(char *); char *_dirname32(char *);# char *_index32(const char *, int);$ char *_rindex32(const char *, int); # pragma __pointer_size 64& char */_strdup64(const char *);7 void *_memccpy64(void *, const void *, int, __size_t); char *_basename64(char *); char *_dirname64(char *);# char *_index64(const char *, int);$ char *_rindex64(const char *, int); # endif#endif/* ** DEC C Performance (Builtins)**F** Certain DEC C functions are available as compiler builtins. UsingD** the builtins offer performance improvements and are enabled here0** for all programs including this header file.**K** In a 64 bit OpenVMS 0environment, the builtins accept and return 64 bit ,** pointers. We will explicitly use casts */#if defined(__ALPHA) #if __INITIAL_POINTER_SIZE == 32# pragma __pointer_size 32#endifC void * __MEMCPY (void *__s1, const void *__s2, __size_t __n);B void * __MEMMOVE (void *__s1, const void *__s2, __size_t __n);8 void * __MEMSET (void *__s, int __c, __size_t __n);# if (__DECC_VER > 50600000)) __size_t __STRLEN (const char *__s);4 char * __STRCPY (char *__s1, co 1nst char *__s2); # endif8# define memcpy(__x, __y, __z) __MEMCPY(__x, __y, __z):# define memmove(__x, __y, __z) __MEMMOVE(__x, __y, __z)8# define memset(__x, __y, __z) __MEMSET(__x, __y, __z)# if (__DECC_VER > 50600000)$# define strlen(__x) __STRLEN(__x).# define strcpy(__x, __y) __STRCPY(__x, __y) # endifY# if !defined _ANSI_C_SOURCE && __CRTL_VER >= 70000000 /* BSD byte string extensions */7# define bcopy(__x, __y, __z) __MEMMOVE(__y, __x, __z) /# define bzero(__x, 2__y) __MEMSET(__x, 0, __y) # endif #if __INITIAL_POINTER_SIZE == 32# pragma __pointer_size 64#endif#endif/*$** DEC C RTL Performance (Linkages)**B** Certain DEC C RTL functions are defined with linkages declaredE** which gives the compiler more information as to register usage in** the implementation.*/'#if defined(__ALPHA) && defined(__DECC)%# pragma __linkage __str_link1 = (\L __notused(__r1,__r2,__r3,__r4,__r5,__r6,__r7,__r8,__r9,__r10,__r11,\O 3 __r12,__r13,__r14,__r15,__r17,__r18,__r19,__r20,__r21,__r22,\+ __r23,__r24,__r25,__r29,\K __f0,__f1,__f2,__f3,__f4,__f5,__f6,__f7,__f8,__f9,__f10,\O __f11,__f12,__f13,__f14,__f15,__f16,__f17,__f18,__f19,__f20,\P __f21,__f22,__f23,__f24,__f25,__f26,__f27,__f28,__f29,__f30),\ __notneeded(__ai))%# pragma __linkage __str_link2 = (\L __notused(__r1,__r2,__r3,__r4,__r5,__r6,__r7,__r8,__r9,__r10,__r 411,\I __r12,__r13,__r14,__r15,__r22,__r23,__r24,__r25,__r29,\K __f0,__f1,__f2,__f3,__f4,__f5,__f6,__f7,__f8,__f9,__f10,\O __f11,__f12,__f13,__f14,__f15,__f16,__f17,__f18,__f19,__f20,\P __f21,__f22,__f23,__f24,__f25,__f26,__f27,__f28,__f29,__f30),\ __notneeded(__ai))%# pragma __linkage __str_link3 = (\M __notused(__r2,__r3,__r4,__r5,__r6,__r7,__r8,__r9,__r10,__r11,__r12,\O __r13,__r14,__r1 55,__r18,__r19,__r20,__r21,__r22,__r23,__r24,\ __r25,__r29,\K __f0,__f1,__f2,__f3,__f4,__f5,__f6,__f7,__f8,__f9,__f10,\O __f11,__f12,__f13,__f14,__f15,__f16,__f17,__f18,__f19,__f20,\P __f21,__f22,__f23,__f24,__f25,__f26,__f27,__f28,__f29,__f30),\ __notneeded(__ai))# if (__DECC_VER > 50600000)0# pragma __use_linkage __str_link2 (strcmp)1# pragma __use_linkage __str_link3 (strnlen)# else0# pra6gma __use_linkage __str_link1 (strlen)8# pragma __use_linkage __str_link2 (strcpy, strcmp)1# pragma __use_linkage __str_link3 (strnlen) # endif#endif/*%** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif#pragma __standard#endif /* __STRING_LOADED */ww_IE\#ifndef __STRINGS_LOADED#define __STRINGS_LOADED 1#pragma __nostandard#include E#if __CRTL_VER >= 70000000 /* Supported beginning in OpenVMS V7.0 */M/******************************************************************************!** - String Handling**M*****************************************************************************I** Header introduced by the X/Open CAE Specification, Issue 4, Version 2M*******************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Co 8mpaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N****************************************************************************9***/#ifdef __cplusplus extern "C" {#endif#if __INITIAL_POINTER_SIZE # pragma __pointer_size __save# pragma __pointer_size 64#endif/*N** Create 'public' typedefs, structure definitions, and definitions which areM** 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 typedef __size_t size_t;#endif/*B** X/Open extended definitions which accept 32 or 6:4 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 *);8int strncasecmp (const char *, const char *, __size_t);/*O** The following functions have interfaces of XXX, _XXX32, and _XXX64 due onlyM** to the fact that the return argument is a pointer that is relative to one** of the argum;ents.*/ #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/* 7** 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)**F** Certain DEC C functions are available as compiler builtins. UsingD** the builtins offer performance improvements and are enabled here0** for all programs including this header file.*/#if defined(__ALPHA)## if __INITIAL_POINTER_SIZE == 32# pragma __pointer_size 32 # endifA void *__MEMMOVE (void *__s1, const void *__s2, __size_t __n)=;7 void *__MEMSET (void *__s, int __c, __size_t __n);9# define bcopy(__x, __y, __z) __MEMMOVE(__y, __x, __z) 6# 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 */wwcIE\#ifndef __STROPTS_LOADED#define __STROPTS_ >LOADEDM/******************************************************************************#** - STREAMS interface**M*****************************************************************************I** Header introduced by the X/Open CAE Specification, Issue 4, Version 2M*******************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office. ?**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N********************************************************************************&** Based on header available through:**E** Copyright (c) 1982@, 1994 Regents of the University of California.A** All rights reserved. The Berkeley software License Agreement:** specifies the terms and conditions for redistribution.**/** ioctl.h 8.6 (Berkeley) 3/28/94**N*******************************************************************************/ #pragma __nostandard#include #ifdef __cplusplus extern "C" {#endif#include #include #include #if !defined(__VMS)?A# if !defined(_XOPEN_SOURCE_EXTENDED) || defined(_OSF_SOURCE)"# include # endif#endif#if __INITIAL_POINTER_SIZE # pragma __pointer_size __save# pragma __pointer_size 32#endif/*I** The OpenVMS V7.0 release added a second implementation of the socket F** functions which is compatible with BSD 4.4. Define a local to be C** used throughout the remaining header file which reflects which !** implementation is being used.**I** An applicatiBon program enables this support by defining _SOCKADDR_LEN(** prior to including this header file.*/#ifdef _SOCKADDR_LEN# if (__CRTL_VER < 70000000)H# error " BSD 4.4 Socket package not available before OpenVMS V7.0"# undef _SOCKADDR_LEN # endif#endif/*A** All structures should be member aligned on natural boundaries*/!#pragma __member_alignment __save#pragma __member_alignment/*4** External names follow the "relaxed_refdef" model*/#pragma __exteCrn_model __save'#pragma __extern_model __relaxed_refdef/*** Define Page Size*/#ifdef __ALPHA# define NBPG 8192#else# define NBPG 512#endif/*F** Window/terminal size structure. This information is stored by theF** kernel in order to provide a consistent interface, but is not used** by the kernel.*/<#if !defined(_XOPEN_SOURCE_EXTENDED) || defined(_OSF_SOURCE) struct winsize {2 unsigned short ws_row; /* rows, in characters */5 unsigned short ws_col; D /* columns, in characters */8 unsigned short ws_xpixel; /* horizontal size, pixels */6 unsigned short ws_ypixel; /* vertical size, pixels */ }; /* ** Pun for SUN. */ struct ttysize { unsigned short ts_lines; unsigned short ts_cols; unsigned short ts_xxx; unsigned short ts_yyy; };# define TIOCGSIZE TIOCGWINSZ# define TIOCSSIZE TIOCSWINSZ#endif/*G** Ioctl's have the command encoded in the lower word, and the size ofG** any in or Eout parameters in the upper word. The high 3 bits of theE** upper word are used to encode the in/out status of the parameter.*/O#define IOCPARM_MASK 0x1fff /* parameter length, at most 13 bits */4#define IOCPARM_LEN(x) (((x) >> 16) & IOCPARM_MASK)+#define IOCBASECMD(x) ((x) & ~IOCPARM_MASK)+#define IOCGROUP(x) (((x) >> 8) & 0xff)N#define IOCPARM_MAX NBPG /* max size of ioctl, mult. of NBPG */;#define IOC_VOID 0x20000000 /* no parameters */ FA#define IOC_OUT 0x40000000 /* copy out parameters */@#define IOC_IN 0x80000000 /* copy in parameters */(#define IOC_INOUT (IOC_IN|IOC_OUT)B#define IOC_DIRMASK 0xe0000000 /* mask for IN/OUT/VOID */0#define _IOC_VOID 0x20000000 /* no parameters */5#define _IOC_OUT 0x40000000 /* copy out parameters */4#define _IOC_IN 0x80000000 /* copy in parameters */%#define _IOC_INOUT (_IOC_IN|_IOC_OUT):#define _IOC_DIRMASK 0xe0000000 /* mask for IN/OUT/VOID */G##define _IOC(inout,group,num,len) \G (inout | ((len & IOCPARM_MASK) << 16) | ((group) << 8) | (num))4#define _IO(g,n) _IOC(IOC_VOID, (g), (n), 0)<#define _IOR(g,n,t) _IOC(IOC_OUT, (g), (n), sizeof(t))<#define _IOW(g,n,t) _IOC(IOC_IN, (g), (n), sizeof(t))5/* this should be _IORW, but stdio got there first */<#define _IOWR(g,n,t) _IOC(IOC_INOUT, (g), (n), sizeof(t))/*** For terminal drivers*/@#define TIOCMODG _IOR('t', 3, int) /* get modem control Hstate */@#define TIOCMODS _IOW('t', 4, int) /* set modem control state */(#define TIOCM_LE 0001 /* line enable */1#define TIOCM_DTR 0002 /* data terminal ready */-#define TIOCM_RTS 0004 /* request to send *//#define TIOCM_ST 0010 /* secondary transmit */.#define TIOCM_SR 0020 /* secondary receive */+#define TIOCM_CTS 0040 /* clear to send */,#define TIOCM_CAR 0100 /* carrier detect */#define TIOCM_CD TIOCM_CAR"#define TIOCM_RNG 0200 /* ring */#define TIOCM_RI TIOCM_RNG,#defin Ie TIOCM_DSR 0400 /* data set ready */ /* 8-10 compat */<#define TIOCEXCL _IO('t', 13) /* set exclusive use of tty */>#define TIOCNXCL _IO('t', 14) /* reset exclusive use of tty */ /* 15 unused */8#define TIOCFLUSH _IOW('t', 16, int) /* flush buffers */ /* 17-18 compat */G#define TIOCGETA _IOR('t', 19, struct termios) /* get termios struct */G#define TIOCSETA _IOW('t', 20, struct termios) /* set termios struct */G#define TIOCSETAW _IOW('t', 21, struct termios) /* drain outpuJt, set */J#define TIOCSETAF _IOW('t', 22, struct termios) /* drn out, fls in, set *//*** System V terminal ioctls*/ #define TCGETS TIOCGETA #define TCSETS TIOCSETA!#define TCSETSW TIOCSETAW!#define TCSETSF TIOCSETAFK#define TCGETA _IOR('t', 23, struct termio) /* get termio struct */K#define TCSETA _IOW('t', 24, struct termio) /* set termio struct */L#define TCSETAW _IOW('t', 25, struct termio) /* drain output, set */M#defKine TCSETAF _IOW('t', 28, struct termio) /* drn out, flsh, set */6#define TCSBREAK _IO('t', 29) /* Send break */ #define TCSBRK TCSBREAK<#define TCXONC _IO('t', 30) /* Set flow control */7#define TCFLSH _IO('t', 31) /* Flush queue */=#define TIOCGETD _IOR('t', 26, int) /* get line discipline */=#define TIOCSETD _IOW('t', 27, int) /* set line discipline *//*** locals, from 127 down*/3#define TIOCSBRK _IO('t', 123) /* set break bit * L/5#define TIOCCBRK _IO('t', 122) /* clear break bit */=#define TIOCSDTR _IO('t', 121) /* set data terminal ready */?#define TIOCCDTR _IO('t', 120) /* clear data terminal ready */=#define TIOCGPGRP _IOR('t', 119, pid_t) /* get pgrp of tty */=#define TIOCSPGRP _IOW('t', 118, pid_t) /* set pgrp of tty */ /* 117-116 compat */<#define TIOCOUTQ _IOR('t', 115, int) /* output queue size */C#define TIOCSTI _IOW('t', 114, char) /* simulate terminal input */;#define TIOCNOTTY _IO('t', 1 M13) /* void tty association */E#define TIOCPKT _IOW('t', 112, int) /* pty: set/clear packet mode */,#define TIOCPKT_DATA 0x00 /* data packet */1#define TIOCPKT_FLUSHREAD 0x01 /* flush packet */2#define TIOCPKT_FLUSHWRITE 0x02 /* flush packet */,#define TIOCPKT_STOP 0x04 /* stop output */.#define TIOCPKT_START 0x08 /* start output */1#define TIOCPKT_NOSTOP 0x10 /* no more ^S, ^Q *//#define TIOCPKT_DOSTOP 0x20 /* now do ^S ^Q */:#define TIOCSTOP _IO('t', 111) /* stop output, like N ^S */<#define TIOCSTART _IO('t', 110) /* start output, like ^Q */=#define TIOCMSET _IOW('t', 109, int) /* set all modem bits */9#define TIOCMBIS _IOW('t', 108, int) /* bis modem bits */9#define TIOCMBIC _IOW('t', 107, int) /* bic modem bits */=#define TIOCMGET _IOR('t', 106, int) /* get all modem bits */A#define TIOCREMOTE _IOW('t', 105, int) /* remote input editing */G#define TIOCGWINSZ _IOR('t', 104, struct winsize) /* get window size */G#define TIOCSWINSZ _IOW('t', 103, struct winsi Oze) /* set window size */F#define TIOCUCNTL _IOW('t', 102, int) /* pty: set/clr usr cntl mode */5#define UIOCCMD(n) _IO('u', n) /* usr cntl op "n" */A#define TIOCCONS _IOW('t', 98, int) /* become virtual console */<#define TIOCSCTTY _IO('t', 97) /* become controlling tty */B#define TIOCEXT _IOW('t', 96, int) /* pty: external processing */9#define TIOCSIG _IO('t', 95) /* pty: generate signal *//*!** SLIP (Serial Line IP) ioctl's*/?#define SLIOGUNIT _IOR('t', 88, int) /* get Pslip unit number */D#define SLIOCSFLAGS _IOW('t', 89, int) /* set configuration flags */D#define SLIOCGFLAGS _IOR('t', 90, int) /* get configuration flags */5#define TTYDISC 0 /* termios tty line discipline */+#define TABLDISC 3 /* tablet discipline */.#define SLIPDISC 4 /* serial IP discipline */-#define DUDISC 7 /* Dialup IP discipline */H#define KJIDISC 8 /* Kanji Shift JIS discipline */M#define ASYDISC 9 /* Asian multibyte line discipQline */N#define TSBDISC 10 /* I18N single-byte line discipline */J#define KDBDISC 11 /* debug filter line discipline *//*6** Macros for determining Asian/I18N line disciplines*/1#define IS_ASY_LINE(tp) ((tp)->t_line == ASYDISC)1#define IS_TSB_LINE(tp) ((tp)->t_line == TSBDISC)/*** SYS V RELEASE 4 PTY IOCTL*/9#define ISPTM _IO('t',71) /* get dev_t */F#define UNLKPT _IO('t',73) /* unlock slave Rpty */P#define ISPTS _IO('t',74) /* ret. maj+min of pty master */8#define TIOCGSID _IOR('t', 72, int) /* get sid of tty */;#define FIOCLEX _IO('f', 1) /* set close on exec on fd */8#define FIONCLEX _IO('f', 2) /* remove close on exec */F#define FIONREAD _IOR('f', 127, int) /* get number of bytes to read */E#define FIONBIO _IOW('f', 126, int) /* set/clear non-blocking i/o */>#define FIOASYNC _IOW('f', 125, int) /* set/clear async i/o */5#define FIOSETOWN _IOW('f' S, 124, int) /* set owner */5#define FIOGETOWN _IOR('f', 123, int) /* get owner */L#define FIOPIPESTAT _IOR('f', 122, struct stat) /* pipe|fifo stat */G#define FIOFATTACH _IOW('f', 121, void *) /* internal: fattach */G#define FIOFDETACH _IOW('f', 120, void *) /* internal: fdetach *//* ** Socket ioctl's. */A#define SIOCSHIWAT _IOW('s', 0, int) /* set high watermark */A#define SIOCGHIWAT _IOR('s', 1, int) /* get high watermark */A#define SIOCSLOWAT _IO TW('s', 2, int) /* set low watermark */A#define SIOCGLOWAT _IOR('s', 3, int) /* get low watermark */A#define SIOCATMARK _IOR('s', 7, int) /* at oob mark? */C#define SIOCSPGRP _IOW('s', 8, __pid_t) /* set process group */C#define SIOCGPGRP _IOR('s', 9, __pid_t) /* get process group */ #if SEC_ARCH>#define SIOCGPEERPRIV _IOR('s', 10, int) /* get peer privs */#endif@#define SIOCADDRT _IOW('r', 10, struct ortentry) /* add route */C#define SIOCDELRT _IOW('r', U11, struct ortentry) /* delete route */J#define SIOCSIFADDR _IOW('i', 12, struct ifreq) /* set ifnet address */H#define SIOCSIFDSTADDR _IOW('i', 14, struct ifreq) /* set p-p address */H#define SIOCSIFFLAGS _IOW('i', 16, struct ifreq) /* set ifnet flags */H#define SIOCGIFFLAGS _IOWR('i',17, struct ifreq) /* get ifnet flags */K#define SIOCSIFBRDADDR _IOW('i', 19, struct ifreq) /* set broadcast addr */J#define SIOCSIFNETMASK _IOW('i', 22, struct ifreq) /* set net addr mask */F#define SIVOCGIFMETRIC _IOWR('i',23, struct ifreq) /* get IF metric */F#define SIOCSIFMETRIC _IOW('i', 24, struct ifreq) /* set IF metric */G#define SIOCDIFADDR _IOW('i', 25, struct ifreq) /* delete IF addr */M#define SIOCAIFADDR _IOW('i', 26, struct ifaliasreq)/* add/chg IF alias */G#define SIOCRDZCTRS _IOWR('i', 27, struct ctrreq) /* Read counter */G#define SIOCRDCTRS _IOWR('i', 28, struct ctrreq) /* Read counter */M#define SIOCPIFADDR _IOW('i', 29, struct ifaliasreq)/* set primary Waddr */J#define SIOCSARP _IOW('i', 30, struct arpreq) /* set arp entry */M#define SIOCDARP _IOW('i', 32, struct arpreq) /* delete arp entry */L#define SIOCARPREQ _IOWR('i',40, struct ifreq) /* arp request pkt */J#define SIOCMANREQ _IOWR('i',45, struct ifdata) /* mgmt request */ H#define SIOCGETEVENTS _IOWR('i',46, struct ifdata) /* event notif */L#define SIOCIFRESET _IOW('i',47, struct ifreq) /* Reset interface */I#define SIOCEEUPDATE _IOW('i',48 X, struct ifeeprom) /* Write EEPROM */H#define SIOCADDMULTI _IOW('i', 49, struct ifreq) /* add m'cast addr */H#define SIOCDELMULTI _IOW('i', 50, struct ifreq) /* del m'cast addr */O#define SIOCGETVIFCNT _IOWR('r', 54, struct sioc_vif_req)/* get vif pkt cnt */O#define SIOCGETSGCNT _IOWR('r', 55, struct sioc_sg_req) /* get s,g pkt cnt */ #if SEC_NETG#define SIOCGIFNET _IOWR('i', 56, struct ifreq) /* get ifnet struct */I#define SIOCSIFNET _IOW('i', 57, struct ifreq) /* set Yifnet struct */#endif/*#** Set/get interface access filter*/H#define SIOCSIFAFILT _IOW('i', 58, struct ifafiltreq)/* set filter */I#define SIOCGIFAFILT _IOWR('i', 59, struct ifafiltreq)/* get filter *//*'** Added by choosing arbitrary numbers*/M#define SIOCENABLBACK _IOW('i', 60, struct ifreq) /* Enable loopback */N#define SIOCDISABLBACK _IOW('i', 61, struct ifreq) /* Disable loopback */L#define SIOCRPHYSADDR _IOWR('i', 62, struct ifdevea) /* Read Ph Zys addr */F#define SIOCSPHYSADDR _IOWR('i', 63, struct ifdevea) /* Set addr */P#define SIOCIFSETCHAR _IOWR('i', 64, struct ifchar) /* Set characteristic */K#define SIOCSMACSPEED _IOW('i', 65, struct ifreq) /* Set MAC speed */L#define SIOCRMACSPEED _IOWR('i', 66, struct ifreq) /* Read MAC speed */N#define SIOCSIPMTU _IOW('i', 67, struct ifreq) /* Set intf. IP MTU */O#define SIOCRIPMTU _IOWR('i', 68, struct ifreq) /* Read intf. IP MTU *//*** Source Rou[ting ioctl*/E#define SIOCSRREQR _IOWR('i', 70, struct srreq) /* SR read request */F#define SIOCSRREQW _IOWR('i', 71, struct srreq) /* SR write request */D#define SIOCGIFINDEX _IOWR('i', 72, struct ifreq) /* get IF index *//*3** IP traffic control (Integrated Services) ioctls3** See ip_tcntl.h for definition of structs below.*/J#define SIOCFLOWSPEC _IOWR('i', 86, struct flowreq) /* flowspec request */J#define SIOCFILTSPEC _IOWR('i', 87, struct filtreq) /* filtspec request */E#def\ine SIOCGADSPEC _IOWR('i', 88, struct adspecreq) /* get adspec */S#define SIOCGTCNTLLIST _IOWR('i', 89, struct tcntllistreq) /* list filters/flows */N#define SIOCTCNTLCONF _IOWR('i', 90, struct tcntlconfreq) /* tcntl config *//*3** These ioctls help RSVP get routing information.** See rsvp_route.h*/I#define SIOCGROUTE _IOWR('r', 91, struct rtgetreq) /* get routing info */F#define SIOCGVIFCONF _IOWR('r', 92, struct vifconf) /* get vif list */#ifdef _SOCKADDR_LEN /*5] ** BSD 4.4 sockaddr format accepted and returned */P# define OSIOCGIFADDR _IOWR('i',13, struct ifreq) /* get ifnet address */P# define SIOCGIFADDR _IOWR('i',33, struct ifreq) /* get ifnet address */P# define OSIOCGIFDSTADDR _IOWR('i',15, struct ifreq) /* get p-p address */P# define SIOCGIFDSTADDR _IOWR('i',34, struct ifreq) /* get p-p address */P# define OSIOCGIFBRDADDR _IOWR('i',18, struct ifreq) /* get broadcast adr */P# define SIOCGIFBRDADDR _IOW^R('i',35, struct ifreq) /* get broadcast adr */P# define OSIOCGIFCONF _IOWR('i',20, struct ifconf) /* get ifnet list */P# define SIOCGIFCONF _IOWR('i',36, struct ifconf) /* get ifnet list */P# define OSIOCGIFNETMASK _IOWR('i',21, struct ifreq) /* get net addr mask */P# define SIOCGIFNETMASK _IOWR('i',37, struct ifreq) /* get net addr mask */P# define OSIOCGARP _IOWR('i',31, struct arpreq) /* get arp entry */P# define SIOCGARP _IOWR('i',38, stru _ct arpreq) /* get arp entry */#else /* ** BSD 4.3 sockaddr format */P# define SIOCGIFADDR _IOWR('i',13, struct ifreq) /* get ifnet address */P# define SIOCGIFDSTADDR _IOWR('i',15, struct ifreq) /* get p-p address */P# define SIOCGIFBRDADDR _IOWR('i',18, struct ifreq) /* get broadcast adr */P# define SIOCGIFCONF _IOWR('i',20, struct ifconf) /* get ifnet list */P# define SIOCGIFNETMASK _IOWR('i',21, struct ifreq) /* get net addr mask */`P# define SIOCGARP _IOWR('i',31, struct arpreq) /* get arp entry */#endif/*** Tape i/o controls*/>#define MTIOCTOP _IOW('m', 1, struct mtop) /* Do a tape op.*/<#define MTIOCGET _IOR('m', 2, struct mtget) /* Get status *//*&** STREAMS ioctl commands - group 'S'*/O#define I_NREAD _IO('S', 1) /* return the number of bytes in 1st msg */L#define I_PUSH _IO('S', 2) /* push module just below stream head */F#define I_POP _IO('S', 3) /*a pop module below stream head */N#define I_LOOK _IO('S', 4) /* retrieve name of first stream module */N#define I_FLUSH _IO('S', 5) /* flush all input and/or output queues */;#define I_SRDOPT _IO('S', 6) /* set the read mode */C#define I_GRDOPT _IO('S', 7) /* get the current read mode */J#define I_STR _IO('S', 8) /* create an internal ioctl message */J#define I_SETSIG _IO('S', 9) /* request SIGPOLL signal on events */E#define I_GETSIG _IO(b'S',10) /* query the registered events */D#define I_FIND _IO('S',11) /* check for module in stream */E#define I_LINK _IO('S',12) /* connect stream under mux fd */@#define I_UNLINK _IO('S',13) /* disconnect two streams */H#define I_ISASTREAM _IO('S',14) /* identifies as stream/pipe/fifo */D#define I_PEEK _IO('S',15) /* peek at data on read queue */N#define I_FDINSERT _IO('S',16) /* create a message and send downstream */O#define I_SENDFD _IO('Sc',17) /* send an fd to a connected pipe stream */D#define I_RECVFD _IO('S',18) /* retrieve a file descriptor */U#define I_FLUSHBAND _IO('S',19) /* flush a particular input and/or output band */<#define I_SWROPT _IO('S',20) /* set the write mode */D#define I_GWROPT _IO('S',21) /* get the current write mode */O#define I_LIST _IO('S',22) /* get a list of all modules on a stream */J#define I_ATMARK _IO('S',23) /* is the next message is "marked"? */R#definde I_CKBAND _IO('S',24) /* check for a message of a particular band */J#define I_GETBAND _IO('S',25) /* get the band of the next message */]#define I_CANPUT _IO('S',26) /* check to see if a message may be passed on a stream */D#define I_SETCLTIME _IO('S',27) /* set the close timeout wait */L#define I_GETCLTIME _IO('S',28) /* get the current close timeout wait */S#define I_PLINK _IO('S',29) /* persistently connect a stream under a mux */F#define I_PUNLINK e _IO('S',30) /* disconnect a persistent link */9 /* 31-39 available */>#define I_GETMSG _IO('S',40) /* getmsg() system call */>#define I_PUTMSG _IO('S',41) /* putmsg() system call */?#define I_GETPMSG _IO('S',42) /* getpmsg() system call */?#define I_PUTPMSG _IO('S',43) /* putpmsg() system call */G#define I_PIPE _IO('S',44) /* connect two streams as a pipe */F#define I_FIFO _IO('S',45) /* convert a stream into af FIFO */ #if SEC_BASE##define I_STR_ATTR _IO('S',60)##define I_PEEK_ATTR _IO('S',61)##define I_FDINSERT_ATTR _IO('S',62)##define I_SENDFD_ATTR _IO('S',63)##define I_RECVFD_ATTR _IO('S',64)##define I_GETMSG_ATTR _IO('S',65)##define I_PUTMSG_ATTR _IO('S',66)#endif /* SEC_BASE *//*!** binary event logger - group B*/+#define BINLOG_ENABLE _IO('B', 1)+#define BINLOG_DISABLE _IO('B', 2)+#define BINLOG_ASCIIENABLE _IO('B', 3)+#defin ge BINLOG_ASCIIDISABLE _IO('B', 4)+#define BINLOG_CLRCNTRS _IO('B', 5)2#define BINLOG_SETPID _IOW('B', 6, long)F#define BINLOG_GETSTATUS _IOR('B', 20, struct binlog_getstatus)/*J** This section is for functions and declarations which do support 64 bit(** pointers being passed (or returned).**F** The function ioctl passes a numeric "request code" followed by an G** argument pointer. Since this request code could specify both inputJ** and output argumhents, and since the DEC C RTL does not interpret these=** arguments, they are restricted from being in high memory.*/#if __CRTL_VER >= 700000001 int ioctl (int __sd, int __r, void * __argp);#endif/*%** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif$#pragma __member_alignment __restore #pragma __extern_model __restore#pragma __standard#endif /* __STROPTS_LOADED */wiw - TCP descriptions**M******************************************************************************* Header is nonstandardM*******************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Offic je.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N********************************************************************************?** Copyright (c) 1982 Regents of the University of Californiak.A** All rights reserved. The Berkeley software License Agreement:** specifies the terms and conditions for redistribution.**(** @(#)tcp.h 6.3 (Berkeley) 6/8/85**N*******************************************************************************/#pragma __nostandard#include #ifdef __cplusplus extern "C" {#endif#if __INITIAL_POINTER_SIZE # pragma __pointer_size __save# pragma __pointer_size 32#endif/*** Member align structures*/l!#pragma __member_alignment __save#pragma __nomember_alignment/*** Disable messages*/#pragma __message __save-#pragma __message __disable (__MISALGNDSTRCT)+#pragma __message __disable (__MISALGNDMEM)#if defined __DECC,# pragma __message __disable (__BITNOTINT)#endif/*-** Define a caddr_t if not defined elsewhere*/*#if !defined __CADDR_T && !defined CADDR_T# define __CADDR_T 1!# ifndef __HIDE_FORBIDDEN_NAMES# define CADDR_T 1 # endif typemdef __caddr_t caddr_t;#endif/*6** Define non-standard BSD socket compatible typedefs*/#ifndef __SOCKET_TYPEDEFS# define __SOCKET_TYPEDEFS 1" typedef unsigned char u_char;# typedef unsigned short u_short;" typedef unsigned long u_long;#endiftypedef u_long tcp_seq;/*.** TCP header. Per RFC 793, September, 1981.*/struct tcphdr {4 u_short th_sport; /* source port */4 u_short th_dport; /* destination port */4 tcp_seq thn_seq; /* sequence number */4 tcp_seq th_ack; /* acknowledgement number */4 /* LITTLE_ENDIAN defn */4 u_char th_x2:4; /* (unused) */4 u_char th_off:4; /* data offset */4 u_char th_flags; /* */4 u_short th_win; /* window */4 u_short th_sum; /* checksum */4 u_short th_urp; /* urgent pointer */};/*** Define th_flags vaolues*/#define TH_FIN 0x01#define TH_SYN 0x02#define TH_RST 0x04#define TH_PUSH 0x08#define TH_ACK 0x10#define TH_URG 0x20#define TCPOPT_EOL 0#define TCPOPT_NOP 1#define TCPOPT_MAXSEG 2#define TCPOLEN_MAXSEG 4#define TCPOPT_WINDOW 3#define TCPOLEN_WINDOW 33#define TCPOPT_SACK_PERMITTED 4 /* Experimental */##define TCPOLEN_SACK_PERMITTED 2*#define TCPOPT_SACK 5 /* Experimental */#define TCPOPT_TIMpESTAMP 8 #define TCPOLEN_TIMESTAMP 10F#define TCPOLEN_TSTAMP_APPA (TCPOLEN_TIMESTAMP+2) /* appendix A */#define TCPOPT_TSTAMP_HDR \I (TCPOPT_NOP<<24|TCPOPT_NOP<<16|TCPOPT_TIMESTAMP<<8|TCPOLEN_TIMESTAMP)/*( * Default maximum segment size for TCP.6 * For RFC1122 MUST conformance, this needs to be 536.& * With an IP MSS of 576, this is 536,' * but 512 is probably more convenient.I * This should be defined as min(512, IP_MSS - sizeof (struct tcpiphdr)). */4#define TCP_MSqS 536 /* XXX - BSD4.4lite uses 512 */B#define TCP_MAXWIN 65535 /* largest value for (unscaled) window */6#define TCP_MAX_WINSHIFT 14 /* maximum window shift *//*4 * User-settable options (used with set/getsockopt). */C#define TCP_NODELAY 0x01 /* don't delay send to coalesce packets */6#define TCP_MAXSEG 0x02 /* set maximum segment size *//* F * Number of retransmissions before dropping connection. Larger than & * TCP_MAXRXTSHIFT or -1 for infinity  */B#define TCP_RPTR2RXT 0 rx03 /* set repeat count for R2 RXT timer */ F#define TCP_KEEPIDLE 0x04 /* seconds before initial keepalive probe */A#define TCP_KEEPINTVL 0x05 /* seconds between keepalive probes */E#define TCP_KEEPCNT 0x06 /* number of keepalive probes before drop */A#define TCP_KEEPINIT 0x07 /* initial connect timeout (seconds) */A#define TCP_PUSH 0x08 /* set push bit in outbound data packets */D#define TCP_NODELACK 0x09 /* don't delay send to coalesce packets *//*%** Restore the users pointer contexst*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif#pragma __message __restore$#pragma __member_alignment __restore#pragma __standard#endif /* __TCP_LOADED */wwWuIE\#ifndef __TGMATH_LOADED#define __TGMATH_LOADED 1M/******************************************************************************0** - C99 type-generic math functions**M************************************************** t***************************)** Header introduced by the C99 StandardM*****************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, aundK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**M******************************************************************************/#pragma __nostandard#include F#if !( defined(__ALPHA) && defined(__DECC) && __DECC_VER >= 60400000 )D# error "C99 header is not supported by this compiler."#else#include #include /*5 * Remove builtins forced by tradivtional VMS  */ #undef fabs #undef cos #undef sin%#define acos(__x) __TGacos(__x)&#define acosh(__x) __TGacosh(__x)%#define asin(__x) __TGasin(__x)&#define asinh(__x) __TGasinh(__x)%#define atan(__x) __TGatan(__x)*#define atan2(__x,__y) __TGatan2(__x,__y)&#define atanh(__x) __TGatanh(__x)%#define carg(__x) __TGcarg(__x)%#define cbrt(__x) __TGcbrt(__x)%#define ceil(__x) __TGceil(__x)&#define cimag(__x) __TGcimag(w__x)%#define conj(__x) __TGconj(__x)1#define copysign(__x,__y) __TGcopysign(__x,__y)$#define cos(__x) __TGcos(__x)%#define cosh(__x) __TGcosh(__x)&#define cproj(__x) __TGcproj(__x)&#define creal(__x) __TGcreal(__x)$#define erf(__x) __TGerf(__x)%#define erfc(__x) __TGerfc(__x)$#define exp(__x) __TGexp(__x)%#define exp2(__x) __TGexp2(__x)&#define expm1(__x) __TGexpm1(__x)%#define fabs(__x) __TGfabs(__x))#define fdim(_ x_x,__y) __TGfdim(__x,__y)&#define floor(__x) __TGfloor(__x)0#define fma(__x,__y,__z) __TGfma(__x,__y,__z))#define fmax(__x,__y) __TGfmax(__x,__y))#define fmin(__x,__y) __TGfmin(__x,__y))#define fmod(__x,__y) __TGfmod(__x,__y)*#define frexp(__x,__y) __TGfrexp(__x,__y)*#define hypot(__x,__y) __TGhypot(__x,__y)&#define ilogb(__x) __TGilogb(__x)*#define ldexp(__x,__y) __TGldexp(__x,__y)'#define lgamma(__x) __TGlgamma(__x)'#define llrint(__x) __TGllrint(__x) y(#define llround(__x) __TGllround(__x)$#define log(__x) __TGlog(__x)&#define log10(__x) __TGlog10(__x)&#define log1p(__x) __TGlog1p(__x)%#define log2(__x) __TGlog2(__x)%#define logb(__x) __TGlogb(__x)&#define lrint(__x) __TGlrint(__x)'#define lround(__x) __TGlround(__x)*#define nearbyint(__x) __TGnearbyint(__x)2#define nextafter(__x,__y) __TGnextafter(__x,__y)3#define nexttoward(__x,__y) __TGnexttoward(__x,__y)(#define pow(__x,__y) __TGpow( z__x,__y)2#define remainder(__x,__y) __TGremainder(__x,__y)3#define remquo(__x,__y,__z) __TGremquo(__x,__y,__z)%#define rint(__x) __TGrint(__x)&#define round(__x) __TGround(__x)0#define scalbln(__x,__y) __TGscalbln(__x,__y)+#define scalbn(__x,__y) __TGscalbn(__x,__y)$#define sin(__x) __TGsin(__x)%#define sinh(__x) __TGsinh(__x)%#define sqrt(__x) __TGsqrt(__x)$#define tan(__x) __TGtan(__x)%#define tanh(__x) __TGtanh(__x)'#define tgamma(__x{) __TGtgamma(__x)&#define trunc(__x) __TGtrunc(__x)J#endif /* defined(__ALPHA) && defined(__DECC) && __DECC_VER >= 60400000 */#pragma __standard#endif /* __TGMATH_LOADED */wwOdxIE\#ifndef __TIME_LOADED#define __TIME_LOADEDM/******************************************************************************** - Date and Time**M*******************************************************************************,** Header introduced by the ANSI C |Standard**K** Definitions in this header file may not be available on all versions ofK** OpenVMS. See the DEC C Runtime Library reference manual for specifics.**M*******************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Cons}istent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N*******************************************************************************/#pragma __nostandard#include #ifdef __cplusplus extern "C" {#endif/*K** 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/* ** Member align structures*/!#pragma __member_alignment __save#pragma __member_alignment/*** Disable messages*/#pragma __message __save-#pragma __message __disable (__MISALGNDSTRCT)+#pragma __message __disable (__MISALGNDMEM)/*I** Create 'private' typedefs that are sensitive to pointer size  and must** use 32 bit pointers.*/&typedef struct tm * __struct_tm_ptr32;/*(** ANSI Standard Definitions & Typedefs*/#define CLOCKS_PER_SEC 100 #ifndef NULL# define NULL __NULL#endif#ifndef __SIZE_T# define __SIZE_T 1 typedef __size_t size_t;#endif#ifndef __TIME_T# define __TIME_T typedef __time_t time_t;#endif#ifndef __CLOCK_T # define __CLOCK_T 1 typedef long int clock_t;#endif struct tm {; int tm_sec; /* s econds after the minute [0, 61] */; int tm_min; /* minutes after the hour [0, 59] */; int tm_hour; /* hours since midnight [0, 23] */; int tm_mday; /* day of the month [1, 31] */; int tm_mon; /* months since January [0, 11] */; int tm_year; /* years since 1900 */; int tm_wday; /* days since Sunday [0, 6] */; int tm_yday; /* days since January 1 [0, 365] */; int tm_isdst; /* Daylight Saving Time flag */Q#if __CRTL_VER >= 70000000 && !defined _ANSI_C_SOURCE && !defined _DECC_V4_SOURCE; long tm_gmtoff; /* offset from UTC in seconds */; char *tm_zone; /* timezone abbreviation */#endif};/*/** ISO POSIX-1 Standard Definitions & Typedefs*/6#if defined _POSIX_C_SOURCE || !defined _ANSI_C_SOURCE /*A ** Number of clock ticks per second returned by the times ()# ** function. (To be Withdrawn) */# define CLK_TCK 100 /* 3 ** tzname is the name of the current timezone,3 ** it is not visible if compiling for a local & ** time based compatibility mode. */ # if __CRTL_VER >= 70000000"# if !defined _VMS_V6_SOURCE(# pragma __extern_model __save1# pragma __extern_model __strict_refdef# extern char *tzname[2];+# pragma __extern_model __restore # endif # endif#endif/* .** X/Open extension definitions and typedefs,0** these variables are not visible if compiling-** in a local time based compatibility mode.*/ 4#if defined _XOPEN_SOURCE || !defined _ANSI_C_SOURCE# if __CRTL_VER >= 70000000"# if !defined _VMS_V6_SOURCE(# pragma __extern_model __save1# pragma __extern_model __strict_refdef! extern int daylight; % extern long int timezone;+# pragma __extern_model __restore # endif # endif#endif/* ,** DEC C extension definitions and typedefs*/ #ifndef _ANSI_C_SOURCE typedef struct tm tm_t; /* = ** struct timeb is defined by XPG4 V2 to be in  */ # ifndef __TIMEB_STR_LOADED## define __TIMEB_STR_LOADED 1 struct timeb { __time_t time;$ unsigned short millitm; short timezone; short dstflag; }; # endif# ifndef __TIMEB_T# define __TIMEB_T$ typedef struct timeb timeb_t; # endif9# if __CRTL_VER >= 70000000 && !defined _DECC_V4_SOURCE# ifndef __TMS# define __TMS struct tms {5 clock_t tms_utime; /* user CPU time */7 clock_t tms_stime; /* system CPU time */N clock_t tms_cutime; /* user CPU of terminated child processes */P clock_t tms_cstime; /* system CPU of terminated child processes */ }; # endif # endif# ifndef __TBUFFER_T#  define __TBUFFER_T 1 typedef struct tbuffer { int proc_user_time; int proc_system_time; int child_user_time;! int child_system_time; } tbuffer_t; # endif#endif/*M** We are done defining things which must always be 32 bit pointers. If theL** 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/*I** Create 'private' typedefs that are sensitive to pointer size and must@** use long pointers. Protect identically in all header files.*/&typedef struct tm * __struct_tm_ptr64;/*3** ANSI Function prototypes -- full 64 bit support*/  clock_t clock (void);; double difftime (__time_t __time1, __time_t __time0);; __char_ptr32 asctime (const struct tm *__timeptr);6#if defined _POSIX_C_SOURCE || !defined _ANSI_C_SOURCED __char_ptr32 asctime_r(const struct tm *tm, __char_ptr32 __buf);#endif/*B** Beginning in OpenVMS Version 7.0 mktime, time, ctime, strftime=** have two implementations. One implementation is providedA** for compatibility and deals with time in terms of local time,6** the other __utc_* deals with time in terms of UTC.*/#if __CRTL_VER >= 70000000# if !defined _VMS_V6_SOURCE$# ifdef __CAN_USE_EXTERN_PREFIX(# pragma __extern_prefix __save*# pragma __extern_prefix "__utc_" # else4# define mktime(__p1) __utc_mktime(__p1)2# define time(__p1) __utc_time(__p1)3# define ctime(__p1) __utc_ctime(__p1)T# define strftime(__p1,__p2,__p3,__p4) __utc_strftime(__p1,__p2,__p3,__p4) # endif # endif##endif /* __CRTL_VER >= 70000000 *// __time_t mktime (struct tm *__timeptr);, __time_t time (__time_t *__timer);1 __char_ptr32 ctime (const __time_t *__timer);L __size_t strftime (char *__s, __size_t __maxsize, const char *__format, 1 const struct tm *__timeptr);/*2** Disable extern_prefix if we enabled it earlier*/#if __CRTL_VER >= 70000000# if !defined _VMS_V6_SOURCE$# ifdef __CAN_USE_EXTERN_PREFIX+# pragma __extern_prefix __restore # endif # endif#endif/*F** Beginning in OpenVMS Version 7.2, we have added and implementationD** of the ctime_r function. There are both local time and utc time** implementations.*/#if __CRTL_VER >= 70000000# if !defined _VMS_V6_SOURCE$# ifdef __CAN_USE_EXTERN_PREFIX(# pragma __extern_prefix __save*# pragma __extern_prefix "__utc_" # else=# define ctime_r(__p1,__p2) __utc_ctime_r(__p1,__p2) # endif # endifG __char_ptr32 ctime_r (const __time_t *__timer, __char_ptr32 __buf);# if !defined _VMS_V6_SOURCE$# ifdef __CAN_USE_EXTERN_PREFIX+# pragma __extern_prefix __restore # endif # endif##endif /* __CRTL_VER >= 70000000 *//*D** Beginning in OpenVMS Version 7.0 gmtime and localtime have threeP** implementations. One implementation is provided for compatibility and dealsK** with time in terms of local time. Two implementations __utc* deal withL** time in terms of UTC. __utctz_* implementations provide support for theK** additional tm_gmtoff and tm_zone fields of the tm structure; the _utc_*F** implementations deal with the ANSI definition of the tm structure.*/#if __CRTL_VER >= 70000000U# if !defined _ANSI_C_SOURCE && !defined _DECC_V4_SOURCE && !defined _VMS_V6_SOURCE$# ifdef __CAN_USE_EXTERN_PREFIX(# pragma __extern_prefix __save,# pragma __extern_prefix "__utctz_" # else6# define gmtime(__p1) __utctz_gmtime(__p1)9# define localtime(__p1) __utctz_localtime(__p1) # endif # elif !defined _VMS_V6_SOURCE$# ifdef __CAN_USE_EXTERN_PREFIX(# pragma __extern_prefix __save*# pragma __extern_prefix "__utc_" # else4# define gmtime(__p1) __utc_gmtime(__p1)7# define localtime(__p1) __utc_localtime(__p1) # endif # endif##endif /* __CRTL_VER >= 70000000 */; __struct_tm_ptr32 localtime (const __time_t *__timer); 9 __struct_tm_ptr32 gmtime (const __time_t *__timer); /*2** Disable extern_prefix if we enabled it earlier*/#if __CRTL_VER >= 70000000# if !defined _VMS_V6_SOURCE$# ifdef __CAN_USE_EXTERN_PREFIX+# pragma __extern_prefix __restore # endif # endif#endif/*L** Beginning in OpenVMS Version 7.2, we have added gmtime_t and localtime_tI** implementations. The same three interfaces are supported for each as** described above.*/#if __CRTL_VER >= 70000000U# if !defined _ANSI_C_SOURCE && !defined _DECC_V4_SOURCE && !defined _VMS_V6_SOURCE$# ifdef __CAN_USE_EXTERN_PREFIX(# pragma __extern_prefix __save,#  pragma __extern_prefix "__utctz_" # elseD# define gmtime_r(__p1,__p2) __utctz_gmtime_r(__p1,__p2)G# define localtime_r(__p1,__p2) __utctz_localtime_r(__p1,__p2) # endif # elif !defined _VMS_V6_SOURCE$# ifdef __CAN_USE_EXTERN_PREFIX(# pragma __extern_prefix __save*# pragma __extern_prefix "__utc_" # elseB# define gmtime_r(__p1,__p2) __utc_gmtime_r(__p1,__p2)E# define localtime_r(__p1,__p2) __utc_localtime_r(__p1,__p2) # endif # endifV __struct_tm_ptr32 gmtime_r (const __time_t *__timer, __struct_tm_ptr32 __result); Y __struct_tm_ptr32 localtime_r (const __time_t *__timer, __struct_tm_ptr32 __result); # if !defined _VMS_V6_SOURCE$# ifdef __CAN_USE_EXTERN_PREFIX+# pragma __extern_prefix __restore # endif # endif#endif/* :** ISO POSIX-1 Function prototypes -- full 64 bit support*/ 6#if defined _POSIX_C_SOURCE || !defined _ANSI_C_SOURCE8# if __CRTL_VER >= 70000000 && !defined _VMS_V6_SOURCE void tzset (void); # endif# endif/*O** The following functions have interfaces of XXX, _XXX32, and _XXX64 due onlyM** 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#endif4#if defined _XOPEN_SOURCE || !defined _ANSI_C_SOURCE# if __CRTL_VER >= 60200000\ char *strptime (const char *__buf, __const_char_ptr64 __fmt, __struct_tm_ptr64 __tm); # endif#endif #if __INITIAL_POINTER_SIZE == 32# pragma __pointer_size 64#endif/* ** DEC C Extensions*/ #ifndef _ANSI_C_SOURCE /*H** Beginning in OpenVMS Version 7.0 ftime has two implementations. OneM** implementation is provided for compatibility and deals with time in termsI** of local time, the other __utc_ftime deals with time in terms of UTC.*/#if __CRTL_VER >= 70000000# if !defined _VMS_V6_SOURCE$# ifdef __CAN_USE_EXTERN_PREFIX(# pragma __extern_prefix __save*# pragma __extern_prefix "__utc_" # else1# define ftime(__p1) __utc_ftime(__p1) # endif # endif##endif /* __CRTL_VER >= 70000000 *// int ftime (struct timeb *__timeptr); /*2** Disable extern_prefix if we enabled it earlier*/#if __CRTL_VER >= 70000000# if !defined _VMS_V6_SOURCE$# ifdef __CAN_USE_EXTERN_PREFIX+# pragma __extern_prefix __restore # endif # endif#endif9# if __CRTL_VER >= 70000000 && !defined _DECC_V4_SOURCE) clock_t times(struct tms *buffer);# else> void times (tbuffer_t *__buffer); /* */ # endif# if __INITIAL_POINTER_SIZE# pragma __pointer_size 32P char * _strptime32 (const char *, __const_char_ptr64, __struct_tm_ptr64);# pragma __pointer_size 64D char * _strptime64 (const char *, const char *, struct tm *); # endif#endifM/******************************************************************************** - time types**G** The following is the equivalent of . It is merged into@** since DEC C on OpenVMS systems does not distinguish** the two header files.*/[#if defined _XOPEN_SOURCE_EXTENDED || (!defined _ANSI_C_SOURCE && !defined _DECC_V4_SOURCE)/*A** Values for the which argument of getitimer() and setitimer().*/;# define ITIMER_ REAL 0 /* Real time */B# define ITIMER_VIRTUAL 1 /* Per-process time */G# define ITIMER_PROF 2 /* Per-process user time */# ifndef __TIMEVAL# define __TIMEVAL 1 struct timeval {C __time_t tv_sec; /* seconds since Jan. 1, 1970 */3 long tv_usec; /* microseconds */e }; # endif struct itimerval {9 struct timeval it_interval; /* timer interval */8 struct timeval it_value; /* current value */ };  /*A ** Select () examines I/O descriptor sets which are stored asB ** bit fields in arrays of integers. The following macros are7 ** provided for manipulating such descriptor sets.  */> /* FD_SETSIZE may be defined by the user. It is normally > ** equal to the maximum number of descriptors supported byC ** the system. Here it is set to the minimum maximum supportedA ** by the system. In order to accomodate programs which use D ** a larger number of open files with select, increase this sizeF ** within a program by providing a larger definition of FD_SETSIZE. ** before including or  */# if !defined __FD_SET# define __FD_SET 1# ifndef FD_SETSIZE(# define FD_SETSIZE 1024# endif typedef long fd_mask;H#  define NBBY 8 /* bits per byte */H# define NFDBITS (sizeof(fd_mask) * NBBY) /* bits per mask */_# define FD_SET(__n, __p) ((__p)->fds_bits[(__n)/NFDBITS] |= (1 << ((__n) % NFDBITS)))`# define FD_CLR(__n, __p) ((__p)->fds_bits[(__n)/NFDBITS] &= ~(1 << ((__n) % NFDBITS)))^# define FD_ISSET(__n, __p) ((__p)->fds_bits[(__n)/NFDBITS] & (1 << ((__n) % NFDBITS)))?# define __howmany(__x, __y) (((__x)+((__y)-1))/(__y))O  typedef struct fd_set { /* descriptor set */= fd_mask fds_bits[__howmany(FD_SETSIZE, NFDBITS)]; } fd_set;# if defined __ALPHA%# if __INITIAL_POINTER_SIZE == 32# pragma __pointer_size 32 # endif6 void *__MEMSET(void *__s, int __c, __size_t __n);<# define FD_ZERO(__p) __MEMSET((__p), 0, sizeof(*(__p)))%# if __INITIAL_POINTER_SIZE == 32# pragma __pointer_size 64 # endif# else= void _MOVC5(unsigned short __srclen, const char *__src, < char __fill, unsigned short __destlen, char *__dest, ...);H# define FD_ZERO(__p) _MOVC5(0, 0, 0, sizeof(*(__p)), (char *)(__p))# endif # endif/*M** We are done defining things which must always be 32 bit pointers. If theL** 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/*  B** Note that gettimeofday() is UTC based, so it is not visible if 6** compiling in a local time based compatibility mode.*/ #if __CRTL_VER >= 70000000 ; int getitimer (int __which, struct itimerval *__value);] int setitimer (int __which, const struct itimerval *__value, struct itimerval *__ovalue);# if !defined _VMS_V6_SOURCE= int gettimeofday (struct timeval *__tp, void *__tzp); # endif#endifX int select (int __nfds, fd_set *__readfds, fd_set *__writefds, fd_set *__exceptfds, + struct timeval *__timeout);#endif#if __CRTL_VER >= 70300000 # if !defined _VMS_V6_SOURCE$# ifdef __CAN_USE_EXTERN_PREFIX(# pragma __extern_prefix __save*# pragma __extern_prefix "__utc_" # else<# define utimes(__p1,__p2) __utc_utimes(__p1,__p2) # endif # endif@int utimes(const char *__path, const struct timeval __times[2]);# if !defined _VMS_V6_SOURCE$# ifdef __CAN_USE_EXTERN_PREFIX+# pragma __extern_prefix __restore # endif # endif#endif/* %** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif#pragma __message __restore$#pragma __member_alignment __restore#pragma __standard#endif /* __TIME_LOADED */ww/IE\#ifndef __TIMEB_LOADED#define __TIMEB_LOADED 1M/*************************************************** ***************************3** - ftime() return structure definition**M*****************************************************************************I** Header introduced by the X/Open CAE Specification, Issue 4, Version 2M*******************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N*******************************************************************************/#pragma __nostandard#include #ifdef __cplusplus extern "C" {#endif#if __INIT IAL_POINTER_SIZE # pragma __pointer_size __save# pragma __pointer_size 32#endif/*** Member align structures*/!#pragma __member_alignment __save#pragma __member_alignment/*** Disable certain messages*/#pragma __message __save-#pragma __message __disable (__MISALGNDSTRCT)+#pragma __message __disable (__MISALGNDMEM)/*** Define the time_t structure*/#ifndef __TIME_T# define __TIME_T 1 typedef __time_t time_t;#endif/*** Define the timeb structure*/#ifndef __TIMEB_STR_LOADED# define __TIMEB_STR_LOADED 1 struct timeb { __time_t time; unsigned short millitm; short timezone; short dstflag; };#endif/* ** DEC C extensions*/ 9#if !defined _XOPEN_SOURCE_EXTENDED && !defined __TIMEB_T# define __TIMEB_T! typedef struct timeb timeb_t;#endif/* ** Function prototypes*/ #if __INITIAL_POINTER_SIZE# pragma __pointer_size 64#endif/*H ** Beginning in OpenVMS Version 7.0 ftime has two implementations. OneM** implementation is provided for compatibility and deals with time in termsI** of local time, the other __utc_ftime deals with time in terms of UTC.*/#if __CRTL_VER >= 70000000# if !defined _VMS_V6_SOURCE$# ifdef __CAN_USE_EXTERN_PREFIX(# pragma __extern_prefix __save*# pragma __extern_prefix "__utc_" # else1# define ftime(__p1) __utc_ftime(__p1) # endif # endif##endif /* __CRTL_VER >= 70000000 */( int ftime (struct timeb *__timeptr);/*2** Disable extern_prefix if we enabled it earlier*/#if __CRTL_VER >= 70000000# if !defined _VMS_V6_SOURCE$# ifdef __CAN_USE_EXTERN_PREFIX+# pragma __extern_prefix __restore # endif # endif#endif/*%** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif#pragma __message __restore$#pragma __member_alignment __restore#pragma __standard #endif /* __TIMEB_LOADED */ww-IE\#ifndef __TIMERS_LOADED#define __TIMERS_LOADED 1M/********************************************************************************* - Clock and timer functions**M******************************************************************************* Header is nonstandardM***************************************************************************** **.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N*******************************************************************************/#pragma __nostandard#include #ifdef __cplusplus extern "C" {#endif#include #if __INITIAL_POINTER_SIZE # pragma __pointer_size __save# pragma __pointer_size 64#endif/* ** Constants for Functions */0#define TIMEOFDAY 1 /* time of day clock type *//* ** Typedef*/#ifndef _TIMESPEC_T_# define _TIMESPEC_T_ typedef struct timespec {9 unsigned long tv_sec; /* seconds */= long tv_nsec; /* nanoseconds */ } timespec_t;#endif /*?** Functions added in OpenVMS V7.0, Note, that getclock is UTCA** based so it is not visible if compiling in a local time based** compatibility mode.*/#if __CRTL_VER >= 70000000# if !defined _VMS_V6_SOURCE: int getclock(int clock_type, struct timespec *tp); # endif#endif/*%** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif#pragma __standard#endif /* __TIMERS_LOADED */ww;:IE\#ifndef __TIMES_LOADED#define __TIMES_LOADED 1M/******************************************************************************@** - file access and modification times structure**M*****************************************************************************1** Header introduced by the ISO P OSIX-1 StandardM*******************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N*******************************************************************************/#pragma __nostandard#include #ifdef __cplusplus extern "C" {#endif#if __INITIAL_POINTER_SIZE # pragma __pointer_size __save# pragma __pointer_size 64#endif/*** Member align structures*/!#pragma __member_alignment __save#pragma __member_alignmentO/*************************** *****************************************************M** This header file either defines the ISO POSIX-1 structures and prototypesM** or defines the DEC C specific structures and prototypes. The ISO POSIX-1K** support was added in OpenVMS V7.0. The user could still access the old)** interface by defining _DECC_V4_SOURCE**P*******************************************************************************/S#if __CRTL_VER >= 70000000 && (defined _POSIX_C_SOURCE || !defined _DECC_V4_SOURCE)O /**************************************************************************< ** ISO POSIX-1 definitions of structures and prototypesP ***************************************************************************/# ifndef __CLOCK_T# define __CLOCK_T typedef int clock_t; # endif# ifndef __TMS# define __TMS struct tms {4 clock_t tms_utime; /* user CPU time */- clock_t tms_stime; /* system CPU time */H clock_t tms_cutime; /* user CPU of terminated child processes */H clock_t tms_cstime; /* system CPU of terminated child processes */ }; # endif) clock_t times (struct tms *__buffer);#elseO /**************************************************************************. ** DEC C specific (prior to OpenVMS V7.0)P ***************************************************************************/# ifndef __TBUFFER_T # define __TBUFFER_T 1 typedef struct tbuffer { int proc_user_time; int proc_system_time; int child_user_time;! int child_system_time; } tbuffer_t; # endif9 void times (tbuffer_t *__buffer); /* */#endif/*%** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif$#pragma __member_alignment __restore#pragma __standard #endif /* __TIMES_LOADED */wwsGIE\#ifndef __TYPES_LOADED#define __TYPES_LOADED 1M/******************************************************************************)** - Standard Type Definitions**M*****************************************************************************1** Header introduced by the ISO POSIX-1 StandardM*******************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and t he Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N*******************************************************************************/!#pragma __nostandard#include #ifdef __cplusplus extern "C" {#endif#if __INITIAL_POINTER_SIZE # pragma __pointer_size __save# pragma __pointer_size 32#endif/*** Public typedefs *//*** ISO POSIX-1 typedefs*//* ** Used for device IDs.*/1#if !defined __DEV_T && !defined _DECC_V4_SOURCE# define __DEV_T 1 typedef __dev_t dev_t; #endif/* ** Used for group IDs.*/1#if !defined __GID_T && !defined _DECC_V4_SOURCE# define __GID_T 1 typedef __gid_t gid_t; #endif/* !** Used for file serial numbers.*/1#if !defined __INO_T && !defined _DECC_V4_SOURCE# define __INO_T 1 typedef __ino_t ino_t; #endif/* "** Used for some file attributes.*/2#if !defined __MODE_T && !defined _DECC_V4_SOURCE# define __MODE_T 1 typedef __mode_t mode_t; #endif/* ** Used for link counts.*/3#if !defined __NLINK_T && !defined _DECC_V4_SOURCE# define __NLINK_T 1 typedef __nlink_t nlink_t;#endif/* ** Used for file sizes.*/1#if !defined __OFF_T && !defined _DECC_V4_SOURCE# define __OFF_T 1 typedef __off_t off_t; #endif/* .** Used for process IDs and process group IDs.*/1#if !defined __PID_T && !defined _DECC_V4_SOURCE# define __PID_T 1 typedef __pid_t pid_t; #endif/*** Used for sizes of objects.*/2#if !defined __SIZE_T && !defined _DECC_V4_SOURCE# define __SIZE_T 1 typedef __size_t size_t;#endif/*4** Used for a count of bytes or an error indication.*/3#if !defined __SSIZE_T && !defined _DECC_V4_SOURCE# define __SSIZE_T 1 typedef __ssize_t ssize_t;#endif/*** Used for user IDs.*/1#if !defined __UID_T && !defined _DECC_V4_SOURCE# define __UID_T 1 typedef __uid_t uid_t;#endif/* 1** X/Open XPG4 typedefs, also defined in DECC V4*/ 5#if defined _XOPEN_SOURCE || !defined _POSIX_C_SOURCE/* ** Used for time in seconds.*/# ifndef __TIME_T# define __TIME_T 1 typedef __time_t time_t; # endif#endif/* +** X/Open XPG4 typedefs, new in DEC C V5.n*/ S#if defined _XOPEN_SOURCE || (!defined _POSIX_C_SOURCE && !defined _DECC_V4_SOURCE)/* ;** Used for system times in clock ticks or CLOCKS_PER_SEC.*/# ifndef __CLOCK_T # define __CLOCK_T 1 typedef long int clock_t; # endif/* *** Used for interprocess communication. */# ifndef __KEY_T # define __KEY_T 1 typedef long int key_t; # endif#endif/* #** X/Open extended (XPG4) typedefs*/ \#if defined _XOPEN_SOURCE_EXTENDED || (!defined _POSIX_C_SOURCE && !defined _DECC_V4_SOURCE)/*Z** Used as a general identifier; can be used to contain at least a pid_t, uid_t or gid_t.*/# ifndef __ID_T# define __ID_T typedef __id_t id_t; # endif/*!** Used for time in microseconds.*/# ifndef __USECONDS_T# define __USECONDS_T! typedef __useconds_t useconds_t; # endif#endif/*F** Define non-standard socket compatible typedefs for BSD portability*/#ifndef _POSIX_C_SOURCEL# if !defined(__CADDR_T) && !defined(CADDR_T) && !defined(_DECC_V4_SOURCE)# define __CADDR_T 1*# if !defined __HIDE_FORBIDDEN_NAMES# define CADDR_T 1 # endif" typedef __caddr_t caddr_t; # endif# ifndef __SOCKET_TYPEDEFS$# define __SOCKET_TYPEDEFS 1' typedef unsigned char u_char;(  typedef unsigned short u_short;' typedef unsigned long u_long; # endif3# if !defined __U_INT && !defined _DECC_V4_SOURCE# define __U_INT typedef __u_int u_int; # endif# ifndef _DECC_V4_SOURCE" typedef volatile char v_char;# typedef volatile short v_short;" typedef volatile long v_long;# typedef volatile u_char vu_char;$ typedef volatile u_short vu_short;# typedef volatile u_long vu_long;A typedef u_char uchar; /* For System III & V portability */ typedef u_short ushort; typedef __u_int uint; typedef u_long ulong; # endif#endif/*%** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif#pragma __standard#endif /* __TYPES_LOADED */wwaIE\O/*****************************************************************************/O/*  */O/* - time zone information */O/* */O/* This header file is no longer a public header file. This change */O/* was made after DEC C V5.6 was released. Your application should */O/* not require definitions which formally appeared in this header file. */O/*  */O/*****************************************************************************/wwoIE\#ifndef __UIO_LOADED#define __UIO_LOADED 1M/******************************************************************************3** - definitions for vector I/O operations**M*****************************************************************************I** Header introduced by the X/Open CAE Specification, Issue 4, Version 2M******************************** ***********************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N*******************************************************************************/#pragma __nostandard#include #ifdef __cplusplus extern "C" {#endif#if __INITIAL_POINTER_SIZE # pragma __pointer_size __save# pragma __pointer_size 32#endif/*A** All structures should be member aligned on natural boundaries*/!#pragma __member_alignment __save#pragma __member_alignment/*A** Iovec Structure: I/O buffer element  for vector I/O operations.**;** The iovec structure describes one scatter/gather buffer.?** Multiple scatter/gather buffer descriptors are stored as an ** array of iovec elements. */#ifdef _XOPEN_SOURCE_EXTENDED struct iovec {= void *iov_base; /* A pointer to a buffer. % */F __size_t iov_len; /* The size of the buffer to which 6 ** iov_base points %  */ }; struct __Oiovec {#else struct iovec {#endif __caddr_t iov_base; int iov_len;}; #if __CRTL_VER >= 70300000J __ssize_t writev(int __fildes, const struct iovec *__iov, int __iovcnt);#endif/*%** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif$#pragma __member_alignment __restore#pragma __standard#endif /* __UIO_LOADED */wwS|IE\#ifndef __UNISTD_LOADED#define __UNISTD_LOADED 1M/******************************************************************************6** - Standard symbolic constants and types**M*****************************************************************************1** Header introduced by the ISO POSIX-1 StandardM*******************************************************************************.** Copyright 2000 Compaq Computer Corporation**N**  Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N*******************************************************************************/#pragma __nostandard#include #ifdef __cplusplus extern "C" {#endif#if __INITIAL_POINTER_SIZE # pragma __pointer_size __save# pragma __pointer_size 32#endif/* 6** X/Open extended (XPG4) typedefs, new in DEC C V5.n*/ '#if defined _XOPEN_SOURCE_EXTENDED || \: (!defined _POSIX_C_SOURCE && !defined _DECC_V4_SOURCE)# ifndef __USECONDS_T # define __USECONDS_T( typedef __useconds_t useconds_t; # endif#endif/*H** Create 'public' typedefs that are sensitive to pointer size and mustK** use 32 bit pointers. Create other declarations which are not sensitive** to pointer size.*/ #ifndef NULL# define NULL __NULL#endif/*6** ISO POSIX-1 Defines for the Access() mode argument*/#define F_OK 0#define X_OK 1#define W_OK 2#define R_OK 4/*** ISO POSIX-1 Seek modes.*/#define SEEK_SET 0#define SEEK_CUR 1#define SEEK_END 2/* D** ISO POSIX-1 File descriptor numbers for stdin, stdout and stderr*/ #define STDIN_FILENO 0#define STDOUT_FILENO 1#define STDERR_FILENO 2/*8** ISO POSIX-1 Constants for portability specifications*/P#define _POSIX_VERSION 199506L /* IEEE Std 1003.1c-1995 */P#define _POSIX_JOB_CONTROL (-1) /* Support for job control */P#define _POSIX_SAVED_IDS (-1) /* Save set-user-id,set-group-id */P#define _POSIX_CHOWN_RESTRICTED  1 /* chown requires privilege */P#define _POSIX_NO_TRUNC (-1) /* pathnames are truncated */P#define _POSIX_VDISABLE (-1) /* tcgetattr not supported *//*A** ISO POSIX-1 Symbolic constants for the [f]pathconf() function*/%#define _PC_CHOWN_RESTRICTED 0%#define _PC_LINK_MAX 1%#define _PC_MAX_CANON 2%#define _PC_MAX_INPUT 3%#define _PC_NAME_MAX 4%#define _PC_NO_TRUNC 5%#define _PC_PATH_MAX 6%#define _PC_PIPE_BUF 7%#define _PC_VDISABLE 8/*=** ISO POSIX-1 Symbolic constants for the sysconf() function*/'#define _SC_ARG_MAX 100'#define _SC_CHILD_MAX 101'#define _SC_CLK_TCK 102'#define _SC_NGROUPS_MAX 103'#define _SC_OPEN_MAX 104'#define _SC_STREAM_MAX 105'#define _SC_TZNAME_MAX  106'#define _SC_JOB_CONTROL 107'#define _SC_SAVED_IDS 108'#define _SC_VERSION 1094#if _POSIX_C_SOURCE >= 2 || !defined _POSIX_C_SOURCE /* ( ** ISO POSIX-2 configuration values */ P# define _POSIX2_C_VERSION 199209L /* IEEE Std 1003.2-1992 */P# define _POSIX2_VERSION 199209L /* POSIX.2 standard */P# define _POSIX2_C_BIND 1 /* Support C language binding */P#  define _POSIX2_C_DEV (-1) /* Support C development env */P# define _POSIX2_CHAR_TERM 1 /* Support at least one terminal */P# define _POSIX2_FORT_DEV (-1) /* Support FORTRAN development */P# define _POSIX2_FORT_RUN (-1) /* Support FORTRAN runtime */P# define _POSIX2_LOCALEDEF 1 /* Support creation of locales */P# define _POSIX2_SW_DEV (-1) /* Support software development */P# define _POSIX2_UPE (-1) /* Support User Portability Env */ /* 4 ** ISO POSIX-2 Symbolic constants for sysconf() */ )# define _SC_BC_BASE_MAX 121)# define _SC_BC_DIM_MAX 122)# define _SC_BC_SCALE_MAX 123)# define _SC_BC_STRING_MAX 124)# define _SC_COLL_WEIGHTS_MAX 125(# define _SC_EXPR_NEST_MAX 126)# define _SC_LINE_MAX 127)# define _SC_RE_DUP_MAX 128)# define _SC_2_VERSION 129)# define _SC_2_C_BIND 130)# define _SC_2_C_DEV 131)# define _SC_2_FORT_DEV 132)# define _SC_2_SW_DEV 133)# define _SC_2_FORT_RUN 134)# define _SC_2_LOCALEDEF 135)# define _SC_2_UPE 136#if __CRTL_VER >= 70300010,# define _SC_GETGR_R_SIZE_MAX 150#endif /*A ** ISO POSIX-2 Symbolic constants for the confstr() function */# define _CS_PATH 0 /*3 ** ISO POSIX-2 option parsing state variables  */# if (__CRTL_VER >= 60200000)## pragma __extern_model __save,# pragma __extern_model __strict_refdef extern int optind; extern int opterr; extern int optopt; extern char *optarg;&# pragma __extern_model __restore # endif#endif9#if _POSIX_C_SOURCE >= 199506 || !defined _POSIX_C_SOURCE /*0 ** POSIX 1003.1c-1995 configuration values. */C# define _POSIX_THREADS /* 1003.4a (pthreads) comformant */P# define _POSIX_THREAD_ATTR_STACKSIZE /* Support spec stack size */P# define _POSIX_THREAD_PRIORITY_SCHEDULING /* Support realtime scheduling *//*8** Thread-safe ANSI C functions from POSIX 1003.1c not ** implemented at this time.0** # define _POSIX_THREAD_SAFE_FUNCTIONS */ /*; ** POSIX 1003.1c-1995 Symbolic constants for sysconf() */3# define _SC_THREAD_DESTRUCTOR_ITERATIONS 1403# define _SC_THREAD_KEYS_MAX 1413# define _SC_THREAD_STACK_MIN 1423# define _SC_THREAD_THREADS_MAX 1433# define _SC_THREAD_SAFE_FUNCTIONS 1443# define _SC_THREADS 1453# define _SC_THREAD_ATTR_STACKSIZE 1463# define _SC_THREAD_PRIORITY_SCHEDULING 147#endif5#if defined _XOPEN_SOURCE || !defined _POSIX_C_SOURCE /* & ** X/Open configuration variables- */ P# define _XOPEN_VERSION 4 /* XPG4 */P# define _XOPEN_XCU_VERSION -1 /* Version of XCU */P# define _XOPEN_XPG4_EXTENDED -1 /* not fully provided */P# define _XOPEN_CRYPT -1 /* Supports X/Open Encryption FG */P# define _XOPEN_ENH_I18N 1 /* Supports Enhanced Internat FG */P# define _XOPEN_SHM  -1 /* Supports Shared Memory FG */ /*< ** X/Open Symbolic constants for the sysconf() function */'# define _SC_XOPEN_VERSION 110'# define _SC_PASS_MAX 111'# define _SC_XOPEN_CRYPT 118'# define _SC_XOPEN_ENH_I18N 119'# define _SC_XOPEN_SHM 120#endif>#if defined _XOPEN_SOURCE_EXTENDED || !defined _POSIX_C_SOURCE /*8 ** X/Open Extended (XPG4 V2) configuration variables */P# define _XOPEN_UNIX 1 /* Supports XSH4 extended feature*/ /* K ** X/Open Extended (XPG4 V2) symbolic constants for sysconf() function */ '# define _SC_PAGESIZE 1170# define _SC_PAGE_SIZE _SC_PAGESIZEG# define _SC_ATEXIT_MAX 138 /* not in POSIX, but in XPG4 */P# define _SC_IOV_MAX 139 /* not in POSIX, but in XPG4 */ '# define _SC_XOPEN_UNIX 148#endif/* ** DEC C extensions*/ #ifndef _POSIX_C_SOURCE /*  ** Constants for sysconf() */  /*5 ** definitions for the MP extensions to sysconf() */# define _SC_NPROC_CONF 200.# define _SC_NPROCESSORS_CONF _SC_NPROC_CONF# define _SC_NPROC_ONLN 201.# define _SC_NPROCESSORS_ONLN _SC_NPROC_ONLN0# define _SC_2_C_VERSION _SC_2_VERSION'# define _SC_2_CHAR_TERM 137# ifdef __NOT_YET_IMPLEMENTED'# define _SC_DELAYTIMER_MAX 112'# define _SC_TIMER_MAX 113'# define _SC_MAPPED_FILES 114'# define _SC_FSYNC 115'# define _SC_TIMERS 116 # endif /*9 ** Symbolic constants for the [f]pathconf() function */# ifdef __NEED_MORE_INFO%# define _PC_ASYNC_IO 9&# define _PC_PRIO_IO 10&# define _PC_SYNC_IO 11 # endif#endif/* ** ISO POSIX-1 typedefs*/ 2#if !defined __SIZE_T && !defined _DECC_V4_SOURCE# define __SIZE_T 1 typedef __size_t size_t;#endif3#if !defined __SSIZE_T && !defined _DECC_V4_SOURCE# define __SSIZE_T 1 typedef __ssize_t ssize_t;#endif/* ** X/Open (XPG4) typedefs*/ #if defined _XOPEN_SOURCE || \: (!defined _POSIX_C_SOURCE && !defined _DECC_V4_SOURCE)# ifndef __GID_T# define __GID_T 1 typedef __gid_t gid_t; # endif# ifndef __OFF_T# define __OFF_T 1 typedef __off_t off_t; # endif# ifndef __PID_T# define __PID_T 1 typedef __pid_t pid_t; # endif# ifndef __UID_T# define __UID_T 1 typedef __uid_t uid_t; # endif#endif/* =** ISO POSIX-2 functions that do not support 64-bit pointers*/ 4#if _POSIX_C_SOURCE >= 2 || !defined _POSIX_C_SOURCEJ# if __CRTL_VER >= 60200000 /* Supported starting with OpenVMS V6.2 */O int getopt (int __argc, char * const __argv[], const char *__optstring); # endif#endif/*M** We are done defining things which must always be 32 bit pointers. If theL** 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 /* #** ISO POSIX-1 function prototypes*/ #if __USE_LONG_GID_T!# pragma __extern_prefix __save(# pragma __extern_prefix "__long_gid_"#endif5int access (const char *__file_spec, int __mode);#if __USE_LONG_GID_T$# pragma __extern_prefix __restore#endif!int close (int __file_desc);4int dup2 (int __file_desc1, int __file_desc2);!int dup (int __file_desc);Cint execv (const char *__path, __char_ptr_const_ptr32 __argv);bint execve (const char *__path, __char_ptr_const_ptr32 __argv, __char_ptr_const_ptr32 __envp);Cint execvp (const char *__file, __char_ptr_const_ptr32 __argv);!int isatty (int __file_desc);D__off_t lseek (int __file_desc, __off_t __offset, int __direction);int pause (void);#ifdef _POSIX_C_SOURCE ( int pipe (int __array_fdscptr[2]);#else- int pipe (int __array_fdscptr[2], ...);#endif-int rmdir (const char *__path);#if __USE_LONG_GID_T!# pragma __extern_prefix __save(# pragma __extern_prefix "__long_gid_"#endif__gid_t getegid (void);__gid_t getgid (void);#if __USE_LONG_GID_T$# pragma __extern_prefix __restore#endif__pid_t getpid (void);__pid_t getppid (void);6#if __CRTL_VER >= 70000000 && !defined(_VMS_V6_SOURCE)# if __CAN_USE_EXTERN_PREFIX$# pragma __extern_prefix __save(# pragma __extern_prefix "__posix_"# else)# define _exit(__p1) __posix__exit(__p1) # endif#endifvoid _exit (int status);6#if __CRTL_VER >= 70000000 && !defined(_VMS_V6_SOURCE)# if __CAN_USE_EXTERN_PREFIX'# pragma __extern_prefix __restore # endif#endif#if __USE_LONG_GID_T!# pragma __extern_prefix __save(# pragma __extern_prefix "__long_gid_"8#elif __CRTL_VER >= 70000000 && !defined(_VMS_V6_SOURCE)# if __CAN_USE_EXTERN_PREFIX$# pragma __extern_prefix __save'# pragma __extern_prefix "__unix_"# else$# define geteuid() __unix_geteuid()## define getuid() __unix_getuid() # endif#endif__uid_t geteuid (void);__uid_t getuid (void);#if __USE_LONG_GID_T$# pragma __extern_prefix __restore8#elif __CRTL_VER >= 70000000 && !defined(_VMS_V6_SOURCE)# if __CAN_USE_EXTERN_PREFIX'# pragma __extern_prefix __restore # endif#endif/* ** X/Open functions */ >#if defined _XOPEN_SOURCE_EXTENDED || !defined _POSIX_C_SOURCE# if defined _DECC_V4_SOURCE7 int gethostname (char *__name, int __namelen); # else< int gethostname (char *__name, __size_t __namelen); # endif#endif/*:** The following functions always return a 32 bit pointer*/#if __CRTL_VER >= 70000000 __char_ptr32 getlogin(void);#endif/* >** X/Open Extended functions always returning 32 bit pointers*/ ?#if defined _XOPEN_SOURCE_EXTENDED || !defined _POSIX_C_SOURCE ( __void_ptr32 sbrk (long int __incr);#endif/*O** The following functions have interfaces of XXX, _XXX32, and _XXX64 due onlyM** 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/* ISO POSIX-1 functions */char *ctermid (char *__str);5#if defined _XOPEN_SOURCE || !defined _POSIX_C_SOURCE char *cuserid (char *__str);#endif#ifdef _POSIX_C_SOURCE 2 char *getcwd(char *__buffer, __size_t __size);#else; char *getcwd(char *__buffer, unsigned int __size, ...);#endif #if __INITIAL_POINTER_SIZE == 32#pragma __pointer_size 64#endif#if __INITIAL_POINTER_SIZE# pragma __pointer_size 32$ char *_ctermid32 (char *__str);$ char *_cuserid32 (char *__str);A char *_getcwd32 (char *__buffer, unsigned int __size, ...);# pragma __pointer_size 64$ char *_ctermid64 (char *__str);$ char *_cuserid64 (char *__str);@ char *_getcwd64 (char *__buffer, unsigned int __size, ...);#endif/* I** DEC C V5.2 changed the prototypes to ISO POSIX-1 definitions in a wayH** that was binary upward compatible but not source upward compatibile.G** The old definitions are retained for compatibility with old source.*/ #ifndef _DECC_V4_SOURCE#if __USE_LONG_GID_T!# pragma __extern_prefix __save(# pragma __extern_prefix "__long_gid_"#endifK int chown (const char *__file_spec, __uid_t __owner, __gid_t __group); int setgid (__gid_t); int setuid (__uid_t);#if __USE_LONG_GID_T$# pragma __extern_prefix __restore#endif0 unsigned int alarm (unsigned int __seconds);J __ssize_t read (int __file_desc, void *__buffer, __size_t __nbytes);P __ssize_t write (int __file_des c, const void *__buffer, __size_t __nbytes);; int execl (const char *__path, const char *arg0, ...);; int execle (const char *__path, const char *arg0, ...);; int execlp (const char *__path, const char *arg0, ...);1 unsigned int sleep (unsigned __seconds);#else' int alarm (unsigned int __seconds);T int chown (const char *__file_spec, unsigned int __owner, unsigned int __group);> int read (int __file_desc, void *__buffer, int __nbytes);> int write (int __file_desc, void *__buffer, int __nbytes);# int execl (char *__name, ...);# int execle (char *__name, ...);# int execlp (char *__name, ...); __gid_t setgid (__gid_t); __uid_t setuid (__uid_t);( int sleep (unsigned __seconds);#endif#if __CRTL_VER >= 70000000. long int fpathconf (int __fd, int __name);9 long int pathconf (const char * __path, int __name);$ long int sysconf (int __name);' int unlink (const char *__path);#endif /* #** ISO POSIX-2 function prototypes*/ 3#if _POSIX_C_SOURCE >=2 || !defined _POSIX_C_SOURCE# if __CRTL_VER >= 70000000E __size_t confstr (int __name, char * __buf, __size_t __len); # endif#endif/* %** X/Open (XPG4) function prototypes*/ 6#if defined _XOPEN_SOURCE || !defined _POSIX_C_SOURCE $ int fsync (int __file_desc);$ int nice (int __increment);# if __CRTL_VER >= 70000000 H void swab (const void * __src, void * __dst, __ssize_t __nbytes); # endif# if __CRTL_VER >= 70300000#if __USE_LONG_GID_T!# pragma __extern_prefix __save(# pragma __extern_prefix "__long_gid_"#endifB int fchown(int __fildes, __uid_t __owner, __gid_t __group);#if __USE_LONG_GID_T$# pragma __extern_prefix __restore#endif; int link(const char *__existing, const char *__new); # endif# if __USE_LONG_GID_T! __pid_t getpgid (__pid_t); __pid_t getpgrp (void); __pid_t getsid (__pid_t); int seteuid (__uid_t);& int setpgid (__pid_t, __pid_t); __pid_t setpgrp (void);' int setregid (__gid_t, __gid_t);' int setreuid (__uid_t, __uid_t); __pid_t setsid (void); # endif#endif/* 1** X/Open extended (XPG4 V2) function prototypes*/ ?#if defined _XOPEN_SOURCE_EXTENDED || !defined _POSIX_C_SOURCE # if __CRTL_VER >= 70000000 8 int ftruncate (int __filedes, __off_t __length ); int getdtable size (void); int getpagesize (void);= int truncate (const char *__path, __off_t __length );N __useconds_t ualarm (__useconds_t __useconds, __useconds_t __interval);, int usleep (__useconds_t __useconds); # endif# ifdef __ALPHAG# define lib$get_current_invo_context LIB$GET_CURRENT_INVO_CONTEXT2 __int64_ptr32 decc$$get_vfork_jmpbuf(void);F int lib$get_current_invo_context(__int64_ptr32 __invo_context);* int decc$$alloc_vfork_blocks(void);:# define vfork() (decc$$alloc_vfork_blocks() >= 0 ? \C lib$get_current_invo_context(decc$$get_vfork_jmpbuf()) : -1)# else# ifndef _DECC_V4_SOURCE __pid_t vfork(void); # else int vfork(void); # endif # endif#endif/* ** DEC C extensions**;** chdir has an additional parameter as a DEC C extension.*/ #ifdef _POSIX_C_SOURCE( int chdir (const char *__dir_spec);#else, int chdir (const char *__dir_spec, ...);#endif/*%** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif#pragma __standard#endif /* __UNISTD_LOADED */ww7IE\#ifndef __UNIXIO_LOADED#define __UNIXIO_LOADED 1M/******************************************************************************8** - Prototypes for UNIX emulation functions**M************************************************** ***************************** Header is nonstandardM*******************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N*******************************************************************************/#pragma __nostandard#include #ifdef __cplusplus extern "C" {#endif0#include /* Definition of rename */=#include /* Definition of stat, fstat, stat_t */#if __INITIAL_POINTER_SIZE # pragma __pointer_size __save# pragma __pointer_size 32#endif/* ** Types shared with */ 2#if !defined __SIZE_T && !defined _DECC_V4_SOURCE# define __SIZE_T 1 typedef __size_t size_t;#endif3#if !defined __SSIZE_T && !defined _DECC_V4_SOURCE# define __SSIZE_T typedef __ssize_t ssize_t;#endif2#if !defined __MODE_T && !defined _DECC_V4_SOURCE# define __MODE_T typedef __mode_t mode_t;#endif1#if !defined __UID_T && !defined _DECC_V4_SOURCE# define __UID_T typedef __uid_t uid_t;#endif1#if !defined __GID_T && !defined _DECC_V4_SOURCE# define __GID_T typedef __gid_t gid_t;#endif1#if !defined __OFF_T && !defined _DECC_V4_SOURCE# define __OFF_T typedef __off_t off_t;#endif/**** Defines for the Access() mode argument*/#define F_OK 0#define X_OK 1#define W_OK 2#define R_OK 4/*J** Functions which return pointers into CRTL owned memory always return a>** short pointer, regardless of application compilation mode.*/char *ttyname (void);/*L** We are done defining things which must always be short pointers. If theO** user has used /pointer_size=short or /pointer_size=long, we will allow long*** pointers to be used in function calls.*/#if __INITIAL_POINTER_SIZE# pragma __pointer_size 64#endif/*8** Functions which accept either 32 or 64 bits pointers*/#if __USE_LONG_GID_T!# pragma __extern_prefix __save(# pragma __extern_prefix "__long_gid_"#endif2int access (const char *__file_spec, int __mode);7int chmod (const char *__file_spec, __mode_t __mode);#if __USE_LONG_GID_T$# pragma __extern_prefix __restore#endifint close (int __file_desc);int dup (int __file_desc);1int dup2 (int __file_desc1, int __file_desc2);int isapipe (int __file_desc);int isatty (int __file_desc);C__off_t lseek (int __file_desc, __off_t __offset, int __direction);/* I** The function open in DEC C V4.0 had a required mode_t parameter if inI** strict ANSI mode. This is not standard conforming, so it it here for** compatibility only.*/ =#if defined _DECC_V4_SOURCE && defined __HIDE_FORBIDDEN_NAMESJ int open (const char *__file_spec, int __flags, __mode_t __mode, ...);#else9 int open (const char *__file_spec, int __flags, ...);#endif/* N** DEC C V5.2 changed the prototypes to ISO POSIX-1 definitions in a way thatL** was binary upward compatible but not source upward compatibile. The old>** definitions are retained for compatibility with old source*/ #ifndef _DECC_V4_SOURCE#if __USE_LONG_GID_T!# pragma __extern_prefix __save(# pragma __extern_prefix "__long_gid_"#endifK int chown (const char *__file_spec, __uid_t __owner, __gid_t __group);#if __USE_LONG_GID_T$# pragma __extern_prefix __restore#endifJ __ssize_t read (int __file_desc, void *__buffer, __size_t __nbytes);P __ssize_t write (int __file_desc, const void *__buffer, __size_t __nbytes);#elseT int chown (const char *__file_spec, unsigned int __owner, unsigned int __group);> int read (int __file_desc, void *__buffer, int __nbytes);> int write (int __file_desc, void *__buffer, int __nbytes);#endif/* K** DEC C extensions which have additional parameters as a DEC C extension.*/ #ifdef _POSIX_C_SOURCE' int chdir (const char *__dir_spec);9 int creat (const char *__file_spec, __mode_t __mode);#else, int chdir (const char *__dir_spec, ...);> int creat (const char *__file_spec, __mode_t __mode, ...);#endif/*3** The following function is not available in C++.*/#ifndef __cplusplus( int delete(const char *__file_spec);#endif/*O** The following functions have interfaces of XXX, _XXX32, and _XXX64 due onlyM** 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#endif9 char *getname (int __file_desc, char *__buffer, ...);% char *mktemp (char *__template);4#if __INITIAL_POINTER_SIZE && __CRTL_VER >= 70000000# pragma __pointer_size 32( char *_getname32 (int, char *, ...); char *_mktemp32 (char *);# pragma __pointer_size 64( char *_getname64 (int, char *, ...); char *_mktemp64 (char *);#endif/*%** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif#pragma __standard#endif /* __UNIXIO_LOADED */ww?RIE\#ifndef __UNIXLIB_LOADED#define __UNIXLIB_LOADED 1M/******************************************************************************9** - Prototypes for UNIX emulation functions**M******************************************************************************* Header is nonstandardM*******************************************************************************.** Copyright 2000 Compaq Computer Corpo ration**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N*******************************************************************************/#pragma __nostandard#include #ifdef __cplusplus extern "C" {#endif#if __INITIAL_POINTER_SIZE # pragma __pointer_size __save# pragma __pointer_size 32#endif/*F** The environ array is always composed of a list of 32 bit addresses*/#ifdef __ALPHA$# define environ (decc$ga_environ)#else%# define environ (*decc$ga_environ)#endif#pragma __extern_model __save&#pragma __extern_model __strict_refdef= extern char **environ; /* Only minimally supported */ #pragma __extern_model __restore/* 3** Types shared with that are used later*/ 2#if !defined __MODE_T && !defined _DECC_V4_SOURCE# define __MODE_T 1 typedef __mode_t mode_t;#endif1#if !defined __UID_T && !defined _DECC_V4_SOURCE# define __UID_T 1 typedef __uid_t uid_t;#endifM#if !defined __SIZE_T && !defined _DECC_V4_SOURCE && defined _POSIX_C_SOURCE# define __SIZE_T 1 typedef __size_t size_t;#endif1#if !defined __GID_T && !defined _DECC_V4_SOURCE# define __GID_T 1 typedef __gid_t gid_t;#endif1#if !defined __PID_T && !defined _DECC_V4_SOURCE# define __PID_T 1 typedef __pid_t pid_t;#endif/* 7** Constants and prototypes for former SHELL$ routines */# define DECC$K_FOREIGN 0# define DECC$K_FILE 1# define DECC$K_DIRECTORY 2/* K** SHELL$ prototypes are provided for backward compatibility. Use of the #** de cc$* routines is recommended.*/J#define SHELL$TO_VMS(__s,__a,__n1,__n2) decc$to_vms(__s,__a,__n1,__n2)F#define SHELL$FROM_VMS(__s,__a,__n) decc$from_vms(__s,__a,__n)F#define SHELL$MATCH_WILD(__s1,__s2) decc$match_wild(__s1,__s2)>#define SHELL$FIX_TIME(__n) decc$fix_time(__n)C#define SHELL$TRANSLATE_VMS(__s) decc$translate_vms(__s)J#define shell$to_vms(__s,__a,__n1,__n2) decc$to_vms(__s,__a,__n1,__n2)F#define shell$from_vms(__s,__a,__n)  decc$from_vms(__s,__a,__n)F#define shell$match_wild(__s1,__s2) decc$match_wild(__s1,__s2)>#define shell$fix_time(__n) decc$fix_time(__n)C#define shell$translate_vms(__s) decc$translate_vms(__s)/*D** These former SHELL$ routines are unavailable on Alpha/VMS. Also(** SHELL$GET_ARGV, and SHELL$$RMS_PARSE*/#ifdef __ALPHA# define SHELL$IS_SHELL() (0) # define SHELL$CLI_NAME(_x) (0)#endif /*M** The callback routines for the decc$to_vms and decc$from_vms functions are#** always passed 32 bit addresses.*//typedef int (*__to_vms_callback) (char *, int);,typedef int (*__from_vms_callback) (char *);/*M** We are done defining things which must always be 32 bit pointers. If theL** 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/*O** The following functions have interfaces of XXX, _XXX32, and _XXX64 due onlyM** 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#if defined _POSIX_C_SOURCE 2 char *getcwd(char *__buffer, __size_t __size);#else; char *getcwd(char *__buffer, unsigned int __size, ...);#endif9char *gcvt(double __value, int __ndigit, char *__buffer); #if __INITIAL_POINTER_SIZE == 32#pragma __pointer_size 64#endif#if __INITIAL_POINTER_SIZE# pragma __pointer_size 32? char *_getcwd32 (char *__buffer, unsigned int __size, ...);C char *_gcvt32 (double __value, int __ndigit, char *__buffer);# pragma __pointer_size 64? char *_getcwd64 (char *__buffer, unsigned int __size, ...);C char *_gcvt64 (double __value, int __ndigit, char *__buffer);#endif/*** Function prototypes*/N__char_ptr32 ecvt (double __value, int __ndigit, int *__decpt, int *__sign);N__char_ptr32 fcvt (double __value, int __ndigit, int *__decpt, int *__sign);)__char_ptr32 getenv (const char *__name);#if defined _POSIX_C_SOURCE 8 int mkdir (const char *__dir_spec, __mode_t __mode);#else= int mkdir (const char *__dir_spec, __mode_t __mode, ...);#endif#if __USE_LONG_GID_T!# pragma __extern_prefix __save(# pragma __extern_prefix "__long_gid_"8#elif __CRTL_VER >= 70000000 && !defined(_VMS_V6_SOURCE)!# ifdef __CAN_USE_EXTERN_PREFIX$# pragma __extern_prefix __save'# pragma __extern_prefix "__unix_"# else)# define geteuid() __unix_geteuid()(# define getuid() __unix_getuid() # endif#endif__uid_t geteuid (void);__uid_t getuid (void);#if __USE_LONG_GID_T$# pragma __extern_prefix __restore8#elif __CRTL_VER >= 70000000 && !defined(_VMS_V6_SOURCE)!# ifdef __CAN_USE_EXTERN_PREFIX'# pragma __extern_prefix __restore # endif#endif#if __USE_LONG_GID_T!# pragma __extern_prefix __save(# pragma __extern_prefix "__long_gid_"#endif__gid_t getgid (void);__gid_t getegid (void);#if __USE_LONG_GID_T$# pragma __extern_prefix __restore#endif__pid_t getpid (void);__pid_t getppid (void);/* I** DEC C V5.2 changed the prototypes to ISO POSIX-1 definitions in a wayH** that was binary upward compatible but not source upward compatibile.G** The old definitions are retained for compatibility with old source.*/ #ifndef _DECC_V4_SOURCE#if __USE_LONG_GID_T!# pragma __extern_prefix __save(# pragma __extern_prefix "__long_gid_"#endif int setgid (__gid_t); int setuid (__uid_t);#if __USE_LONG_GID_T$# pragma __extern_prefix __restore#endif#else __gid_t setgid (__gid_t); __uid_t setuid (__uid_t);#endifhint decc$to_vms (const char *__filename, __to_vms_callback, int __allow_wild, int __no_directory);Tint decc$from_vms (const char *__filename, __from_vms_callback, int __allow_wild);5int decc$match_wild (char *__text, char *__pattern); >__char_ptr32 decc$translate_vms (const char *__vms_filespec );.unsigned int decc$fix_time (void *__vms_time);/*%** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif#pragma __standard#endif /* __UNIXLIB_LOADED */wwlIE\#ifndef __UTIME_LOADED#define __UTIME_LOADED 1N/********************************************************* **********************4** - utimbuf structure and utime function**N******************************************************************************1** Header introduced by the ISO POSIX-1 StandardN******************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N*******************************************************************************/#pragma __nostandard#include #ifdef __cplusplus extern "C" {#endif#ifndef __TIME_T# define __TIME_T  typedef __time_t time_t;#endifstruct utimbuf {& __time_t actime; /* access time */- __time_t modtime; /* modification time */};/*C** If the user has used /pointer_size=short or /pointer_size=long,=** we will allow long pointers to be used in function calls.*/#if __INITIAL_POINTER_SIZE # pragma __pointer_size __save# pragma __pointer_size 64#endif#if __CRTL_VER >= 70300000 # if !defined _VMS_V6_SOURCE$# ifdef __CAN_USE_EXTERN_PREFIX(# pragma __extern_prefix __save*# pragma __extern_prefix "__utc_" # else:# define utime(__p1,__p2) __utc_utime(__p1,__p2) # endif # endif=int utime(const char *__path, const struct utimbuf *__times);# if !defined _VMS_V6_SOURCE$# ifdef __CAN_USE_EXTERN_PREFIX+# pragma __extern_prefix __restore # endif # endif#endif/* %** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif#pragma __standard#endif /* __UTIME_LOADED */wwyIE\#ifndef __UTSNAME_LOADED#define __UTSNAME_LOADED 1#pragma __nostandard#include N#if __CRTL_VER >= 70000000 /**** Supported starting with OpenVMS V7.0 ****/M/******************************************************************************&** - User information**M****************************************************** ***********************1** Header introduced by the ISO POSIX-1 StandardM*******************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Document ation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N*******************************************************************************/#ifdef __cplusplus extern "C" {#endif#if __INITIAL_POINTER_SIZE # pragma __pointer_size __save# pragma __pointer_size 32#endif/*** Define the structure */!#pragma __member_alignment __save#pragma __member_alignmentstruct utsname{4  char sysname [31+1]; /* "OpenVMS" */G char release [31+1]; /* "0" */G char version [31+1]; /* Version of the hosting OpenVMS */G char machine [31+1]; /* Hardware name, with spaces replaced */G /* by undercores */G char nodename[1024+1]; /* DECnet node name */#ifndef _POSIX_C_SOURCEE char arch [15+1]; /* Architecture ("VA X" or "Alpha") */ char __spare [256+1];#else char __spare [15+1+256+1];#endif};$#pragma __member_alignment __restore/*M** We are done defining things which must always be 32 bit pointers. If theL** 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 uname (struct utsname * __name);  /*%** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif#endif /* __UTSNAME_LOADED */#pragma __standard #endif /* __CRTL_VER */ww IE\#ifndef __VARARGS_LOADED#define __VARARGS_LOADEDM/******************************************************************************0** - variable length argument lists**M**************************************** *************************************>** Header introduced by the X/Open CAE Specification, Issue 4M*******************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N*******************************************************************************/#pragma __nostandard#include #ifdef __cplusplus extern "C" {#endif/*M** The header files VARARGS.H and STDARG.H cannot be used together; undo the** effects of VARARGS.H.*/#ifdef __STDARG_LOADED# undef __STDARG_LOADED# undef va_start# undef va_arg# undef va_end#endif/*** Declare a va_list */#ifndef __VA_LIST# define __VA_LIST typedef __va_list va_list;#endif#define va_dcl int va_alist;#ifdef __ALPHAe# define va_start_1(ap, offset) ap = (__va_list) ((char *) __VA_START_BUILTIN(va_alist) + (offset))F# define va_start(ap) ap = (__va_list) __VA_START_BUILTIN(va_alist)# if __X_FLOAT # define va_arg(ap, type) \, (ap = (__va_list) ((char *) ap + \^ (((__IS_X_FLOAT_BUILTIN(type) ? sizeof(long double *) : sizeof(type)) + 7) & ~7)), \( __IS_X_FLOAT_BUILTIN(type) ? \| (** (type **)((char *) ap - (((__IS_X_FLOAT_BUILTIN(type) ? sizeof(long double *) : sizeof(type)) + 7) & ~7))) : \z ( * (type *)((char *) ap - (((__IS_X_FLOAT_BUILTIN(type) ? sizeof(long double *) : sizeof(type)) + 7) & ~7))) )# else^# define va_arg(ap, type) (ap = (__va_list) ((char *) ap + ((sizeof (type) + 7)  & ~7)), \A (* (type *)((char *) ap - ((sizeof (type) + 7) & ~7)))) # endif#else' void decc$va_count( int *__count );/# if defined(__cplusplus) || !defined(__DECC)5# define va_count(count) decc$va_count (&count)U# define va_start_1(ap, offset) ap = (__va_list) ((char *) &va_alist + (offset))6# define va_start(ap) ap = (__va_list) &va_alist^# define va_arg(ap, type) (ap = (__va_list) ((char *) ap + ((sizeof (type) + 3) & ~3)), \A * (type *) ((char *) ap - ((sizeof (type) + 3) & ~3)))# elseM# define va_count(count) (__VA_START_BUILTIN(), decc$va_count (&count))D# define va_start_1(ap, offset) ap = (__VA_START_BUILTIN(), \7 (__va_list) ((char *) &va_alist + (offset)))M# define va_start(ap) ap = (__VA_START_BUILTIN(),(__va_list) &va_alist)t# define va_arg(ap, type) (__VA_START_BUILTIN(),(ap = (__va_list) ((char *) ap + ((sizeof (type) + 3) & ~3)), \B * (type *) ((char *) ap - ((sizeof (type) + 3) & ~3)))) # endif#endif&#define va_end(ap) ap = (__va_list) 0/* ** DEC C extensions*/#ifndef _XOPEN_SOURCE# ifdef __ALPHA . unsigned int __VA_COUNT_BUILTIN(void);=# define va_count(count) (count = __VA_COUNT_BUILTIN())# else+ void decc$va_count( int *__count );3# if defined(__cplusplus) || !defined(__DECC)8# define va_count(count) decc$va_count (&count) # elseP# define va_count(count) (__VA_START_BUILTIN(), decc$va_count (&count)) # endif # endif#endif#ifdef __cplusplus }#endif#pragma __standard#endif /* __VARARGS_LOADED */wwIE\#ifndef __WAIT_LOADED#define __WAIT_LOADED 1#pragma __nostandard#include #if __CRTL_VER >= 60100000M/******************************************************************************3** - Declarations for process waiting**M********************************** *******************************************1** Header introduced by the ISO POSIX-1 StandardM*******************************************************************************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N*******************************************************************************/#ifdef __cplusplus extern "C" {#endif/*K** Create 'public' typedefs that are either insensitive to pointer size or>** are sensitive to pointer size and must use short pointers.*/K#if !defined __PID_T && (defined _XOPEN_SOURCE || !defined _POSIX_C_SOURCE)# define __PID_T 1 typedef __pid_t pid_t;#endif/* (** X/Open extended (XPG4 V2) extensions*/ >#if defined _XOPEN_SOURCE_EXTENDED || !defined _POSIX_C_SOURCE /* + ** pid_t, the same as in  */ # ifndef __PID_T# define __PID_T 1 typedef __pid_t pid_t; # endif#endif#if __CRTL_VER >= 70000000/* <** Includes needed in X/Open extended (XPG4 V2) compilation*/ >#if defined _XOPEN_SOURCE_EXTENDED || !defined _POSIX_C_SOURCE.# include /* for siginfo_t */3# include /* for struct rusage */#endif/*K** Ensure that regardless of user /pointer_size usage, we begin processing#** using a 32 bit pointer context.*/#if __INITIAL_POINTER_SIZE # pragma __pointer_size __save# pragma __pointer_size 32#endif/*** Member align structures*/!#pragma __member_alignment __save#pragma __member_alignment/* $** Symbolic constants for waitpid()*/ #define WNOHANG 1#define WUNTRACED 2/* 0** Macros for analysis of process status values*/ '# define WIFEXITED(s) (((s)&0x7F)==0)'# define WEXITSTATUS(s) (((s)>>8)&0xFF)A# define WIFSTOPPED(s) (((s)&0xFF)==0x7F) /* not implemented */'# define WSTOPSIG(s) (((s)>>8)&0xFF)9# define WIFSIGNALED(s) (((unsigned)(((s)&0x7F)-1))<0x7E)"# define WTERMSIG(s) ((s)&0x7F)/* (** X/Open extended (XPG4 V2) extensions*/ >#if defined _XOPEN_SOURCE_EXTENDED || !defined _POSIX_C_SOURCE# define WCONTINUED 4# define WNOWAIT 8C# define WIFCONTINUED(s) (((s)&0xFF)==0xff) /* not implemented */ /* " ** Options argument to waitid */ # define WEXITED 3# define WSTOPPED 4 /* & ** idtype_t and id_t for waitid() */  typedef enum {! P_ALL, P_PID, P_PGID } idtype_t;# ifndef __ID_T# define __ID_T typedef __id_t id_t; # endif#endif/* ** DEC C extensions**'** union wait is for BSD compatibility.*/ #if !defined _POSIX_C_SOURCE# define _WSTOPPED 0x7f union wait { int w_status; /* # ** For processes that have exited */  struct {> unsigned _w_termsig:7; /* termination signal */? unsigned _w_coredump:1; /* core dump indicator */E unsigned _w_retcode:8; /* exit code if w_termsig==0 */ unsigned short _w_PAD16; } _w_t; /* A ** For processed that have stopped. Not currently implemented. */ struct {C unsigned _w_stopval:8; /* == _WSTOPPED if stopped */B unsigned _w_stopsig:8; /* signal that stopped us */ unsigned short _w_PAD16; } _w_s; };*# define w_termsig _w_t._w_termsig+# define w_coredump _w_t._w_coredump*# define w_retcode _w_t._w_retcode*# define w_stopval _w_s._w_stopval*# define w_stopsig _w_s._w_stopsig#endif /*H** We are done defining things which must always be short pointers. IfH** the user has used /pointer_size=short or /pointer_size=long, we will5** allow long pointers to be used in function calls.*/#if __INITIAL_POINTER_SIZE# pragma __pointer_size 64#endif/*** Function prototypes*/#if defined _POSIX_EXIT# if __CAN_USE_EXTERN_PREFIX# pragma __extern_prefix __save## pragma __extern_prefix "__posix_"# else&# define wait(__p1) __posix_wait(__p1) # endif#endif__pid_t wait(int *__stat_loc);#if defined _POSIX_EXIT# if __CAN_USE_EXTERN_PREFIX"# pragma __extern_prefix __restore # endif#endif/*F** Beginning in OpenVMS Version 7.2 waitpid, wait3 and wait4 have twoG** implementations. One implementation returns UNIX-style exit statusI** which can be analyzed using the macros for analysis of process statusK** values from this header. The other __vms_* returns VMS completion code.*/2#if (__CRTL_VER >= 70100322) && defined(_VMS_WAIT)$# ifdef __CAN_USE_EXTERN_PREFIX(# pragma __extern_prefix __save*# pragma __extern_prefix "__vms_" # elseJ# define waitpid(__p1,__p2,__p3) __vms_waitpid(__p1,__p2,__p3)H# define wait3(__p1,__p2,__p3) __vms_wait3(__p1,__p2,__p3)M# define wait4(__p1,__p2,__p3,__p4) __vms_wait4(__p1,__p2,__p3,__p4) # endif#endifA__pid_t waitpid( __pid_t __pid, int *__stat_loc, int __options );/* 2** X/Open extended (XPG4  V2) Function prototypes */ >#if defined _XOPEN_SOURCE_EXTENDED || !defined _POSIX_C_SOURCE#if 0$ /* waitid not yet implemented */P int waitid(idtype_t __idtype, id_t __id, siginfo_t *__infop, int __options);#endifQ __pid_t wait3(int *__stat_loc, int options, struct rusage *__resource_usage);#endif/* ** DEC C extensions*/ #if !defined _POSIX_C_SOURCEK __pid_t wait4(__pid_t __pid, union wait *__exit_status, int __options, 1 struct rusage !*__resource_usage);#endif2#if (__CRTL_VER >= 70100322) && defined(_VMS_WAIT)# if __CAN_USE_EXTERN_PREFIX(# pragma __extern_prefix __restore # endif#endif/*%** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif$#pragma __member_alignment __restore#else/*L** The functions declared in this header except for the wait() are new inL** OpenVMS V7.0. The wait() function was introduced in OpenVMS V6.1" and itsL** prototype is included here without any prefixing for the users compilingL** with DEC C V5.2 or higher on OpenVMS V6.1 or V6.2. The pid_t data type7** was defined above in the common part of the header.*/__pid_t wait(int *__stat_loc);'#endif /* #if __CRTL_VER >= 70000000 */#ifdef __cplusplus }#endif'#endif /* #if __CRTL_VER >= 60100000 */#pragma __standard#endif /* __WAIT_LOADED */wwIE\#ifndef __WCHAR_LOADED#define __WCHAR_LOADED# 1#pragma __nostandard#include >#if __CRTL_VER >= 60200000 /* Only OpenVMS V6.2 or later */M/******************************************************************************** - Wide Character**M*****************************************************************************:** Header introduced by Amendment 1 of the ISO C StandardM*******************************************************************************.** Copyright 2000 Compaq Computer Corpora $tion**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.**N************************************************************ %*******************/#ifdef __cplusplus extern "C" {#endif#include #if __INITIAL_POINTER_SIZE # pragma __pointer_size __save# pragma __pointer_size 32#endif/*:** Declarations required both by XPG4 and ISO C Amendment*/#ifndef __SIZE_T# define __SIZE_T 1 typedef __size_t size_t;#endif#ifndef __WINT_T# define __WINT_T typedef __wint_t wint_t;#endif#ifndef __WCHAR_T# define __WCHAR_T typedef __wchar_t wchar_t;#e&ndif #ifndef WEOF# define WEOF ((__wint_t) -1)#endif struct tm;/*F** Declarations required only by ISO C Amendment. Conflicts arising F** by compiling for both X/OPEN and the ISO C Amendment 1 resolve in 3** favor of ISO C Amendment 1. */##if __STDC_VERSION__ == 199409 || \Q (__CRTL_VER >= 70000000 && !defined _XOPEN_SOURCE && !defined _DECC_V4_SOURCE)# ifndef WCHAR_MAX'# define WCHAR_MAX ((__wchar_t)~0) # endif# ifndef WCHAR_M'IN# define WCHAR_MIN 0 # endif# ifndef __MBSTATE_T# define __MBSTATE_T typedef struct { unsigned __f0 : 32; unsigned __f1 : 32; unsigned __f2 : 32; unsigned __f3 : 32; unsigned __f4 : 32; unsigned __f5 : 32; } mbstate_t; # endif#endif/*J** Create typedefs which are guaranteed to be short pointers. These sameE** declarations may appear in other headers files and are prote(cted.*/ #ifndef NULL# define NULL __NULL#endif /*F** When compiling with /POINTER_SIZE, change to long pointers so that?** prototypes reflect the implementation for widened pointers.*/#if __INITIAL_POINTER_SIZE# pragma __pointer_size 64#endif/*M** Create 'private' typedefs that are sensitive to pointer size and must use** long pointers.*/##if __STDC_VERSION__ == 199409 || \Q (__CRTL_VER >= 70000000 && !defined _XOPEN_SOURCE && !defined _DECC_V4_SOURCE))# ifndef __MBSTATE_PTR64 # define __MBSTATE_PTR64 1, typedef mbstate_t * __mbstate_ptr64; # endif#endif/*G** According to the ISO C Amendment, the wide character classificationI** functions and wide character mapping functions are defined in the newF** header, so the prototypes below are under "strict XPG4"E** condition. Prevent macro expansion of isw* prototypes in cases 5** where both and are included.*/9#if __CRTL_VER* < 70000000 || defined _DECC_V4_SOURCE || \7 defined _XOPEN_SOURCE || __STDC_VERSION__ != 199409# ifndef __WCTYPE_T# define __WCTYPE_T# typedef __wctype_t wctype_t; # endif( int (iswalnum)(__wint_t __wc);( int (iswalpha)(__wint_t __wc);( int (iswcntrl)(__wint_t __wc);( int (iswdigit)(__wint_t __wc);( int (iswgraph)(__wint_t __wc);( int (iswlower)(__wint_t __wc);( int (iswprint)(__wint_t __wc);( +int (iswpunct)(__wint_t __wc);( int (iswspace)(__wint_t __wc);( int (iswupper)(__wint_t __wc);) int (iswxdigit)(__wint_t __wc);/ __wctype_t wctype(const char *__property);9 int iswctype(__wint_t __wc, __wctype_t __prop);( __wint_t towlower(__wint_t __wc);( __wint_t towupper(__wint_t __wc);$# define __ISWALPHABET (iswalpha)$# define __ISWCNTRL (iswcntrl)$# define __ISWUPPER (iswupper)$# define __ISWLOWER ,(iswlower)$# define __ISWDIGIT (iswdigit)$# define __ISWSPACE (iswspace)$# define __ISWPUNCT (iswpunct)%# define __ISWXDIGIT (iswxdigit)$# define __ISWPRINT (iswprint)$# define __ISWGRAPH (iswgraph)$# define __ISWALNUM (iswalnum)R# define __ISWFUNCTION(c,p) (__ctypea?__ctypet[(__wint_t)(c)]&__##p:__ISW##p(c))/# define iswcntrl(c) __ISWFUNCTION(c, CNTRL)/# define iswalnum(c) __ISWFUNCTION(c, ALNUM)2# define iswalpha(c) __ISWFUNCTION(-c, ALPHABET)/# define iswdigit(c) __ISWFUNCTION(c, DIGIT)/# define iswgraph(c) __ISWFUNCTION(c, GRAPH)/# define iswlower(c) __ISWFUNCTION(c, LOWER)/# define iswprint(c) __ISWFUNCTION(c, PRINT)/# define iswpunct(c) __ISWFUNCTION(c, PUNCT)/# define iswspace(c) __ISWFUNCTION(c, SPACE)0# define iswxdigit(c) __ISWFUNCTION(c, XDIGIT)/# define iswupper(c) __ISWFUNCTION(c, UPPER)#endif/*;** Functions which support both 32 bit and 64 bit pointers*/&__wint_t f .getwc (__FILE * __stream);5__wint_t fputwc (__wchar_t __c, __FILE * __stream);:int fputws (const __wchar_t *__s, __FILE * __stream);'__wint_t getwc (__FILE * __stream); __wint_t getwchar (void);6__wint_t putwc (__wchar_t __c, __FILE * __stream); "__wint_t putwchar (__wchar_t __c);5__wint_t ungetwc (__wint_t __c, __FILE * __stream); Bint wcscmp (const __wchar_t *__ws1, const __wchar_t *__ws2); Aint wcscoll (const __wchar_t *__ws1, const __wchar_t *__ws2);D__si /ze_t wcscspn (const __wchar_t *__ws1, const __wchar_t *__ws2); +__size_t wcslen (const __wchar_t *__ws); Pint wcsncmp (const __wchar_t *__ws1, const __wchar_t *__ws2, __size_t __n); E__size_t wcsspn (const __wchar_t *__ws1, const __wchar_t *__ws2); I__size_t wcsxfrm (__wchar_t *__ws1, const __wchar_t *__ws2, __size_t n);% /*;** These two functions are defined by X/OPEN and not by theA** ISO C Amendment 1. Compiling for X/OPEN or on pre-Open0VMS 7.0<** systems or for compatibility with pre-DEC C V5.2 provides** these definitions. */ 9#if __CRTL_VER < 70000000 || defined _DECC_V4_SOURCE || \: defined _XOPEN_SOURCE || __STDC_VERSION__ != 199409 8int wcswidth (const __wchar_t *__pwcs, __size_t __n);!int wcwidth (__wchar_t __wc);#endif/*O** The following functions have interfaces of XXX, _XXX32, and _XXX64 due onlyM** to the fact that the return argument is a pointer that is relative 1 to one** of the arguments.*/ #if __INITIAL_POINTER_SIZE == 32#pragma __pointer_size 32#endif@__wchar_t *fgetws (__wchar_t *__s, int __n, __FILE * __stream);A__wchar_t *wcscat (__wchar_t *__ws1, __const_wchar_ptr64 __ws2);<__wchar_t *wcschr (const __wchar_t *__ws, __wchar_t __wc); B__wchar_t *wcscpy (__wchar_t *__ws1, __const_wchar_ptr64 __ws2); P__wchar_t *wcsncat (__wchar_t *__ws1, __const_wchar_ptr64 __ws2, __size_t __n); P__wchar_t *wcsncpy (__wchar_t *__ws1, __const_wcha 2r_ptr64 __ws2, __size_t __n); H__wchar_t *wcspbrk (const __wchar_t *__ws1, __const_wchar_ptr64 __ws2); <__wchar_t *wcsrchr (const __wchar_t *__ws, __wchar_t __wc); H__wchar_t *wcswcs (const __wchar_t *__ws1, __const_wchar_ptr64 __ws2); Adouble wcstod (const __wchar_t *__nptr, __wchar_t **__endptr);Mlong int wcstol (const __wchar_t *__nptr, __wchar_t **__endptr, int __base);Qunsigned long wcstoul(const __wchar_t *__nptr, __wchar_t **__endptr, int __base); #if __INITIAL_POINTER_SIZE == 332#pragma __pointer_size 64#endif5#if __INITIAL_POINTER_SIZE && !defined _ANSI_C_SOURCE# pragma __pointer_size 327 __wchar_t *_fgetws32 (__wchar_t *, int, __FILE *);= __wchar_t *_wcscat32 (__wchar_t *, __const_wchar_ptr64);: __wchar_t *_wcschr32 (const __wchar_t *, __wchar_t); > __wchar_t *_wcscpy32 (__wchar_t *, __const_wchar_ptr64); H __wchar_t *_wcsncat32 (__wchar_t *, __const_wchar_ptr64, __size_t); H __wchar_t *_wcsncpy32 (__wchar_t *, __const_wchar_ptr6 44, __size_t); D __wchar_t *_wcspbrk32 (const __wchar_t *, __const_wchar_ptr64); : __wchar_t *_wcsrchr32 (const __wchar_t *, __wchar_t); D __wchar_t *_wcswcs32 (const __wchar_t *, __const_wchar_ptr64); : double _wcstod32 (const __wchar_t *, __wchar_t **);? long int _wcstol32 (const __wchar_t *, __wchar_t **, int);D unsigned long _wcstoul32 (const __wchar_t *, __wchar_t **, int);# pragma __pointer_size 647 __wchar_t *_fgetws64 (__wchar_t *, int, __FILE *);; 5__wchar_t *_wcscat64 (__wchar_t *, const __wchar_t *);: __wchar_t *_wcschr64 (const __wchar_t *, __wchar_t); < __wchar_t *_wcscpy64 (__wchar_t *, const __wchar_t *); F __wchar_t *_wcsncat64 (__wchar_t *, const __wchar_t *, __size_t); F __wchar_t *_wcsncpy64 (__wchar_t *, const __wchar_t *, __size_t); B __wchar_t *_wcspbrk64 (const __wchar_t *, const __wchar_t *); : __wchar_t *_wcsrchr64 (const __wchar_t *, __wchar_t); B __wchar_t *_wcswcs64 (const __wchar_t *, const __ 6wchar_t *); : double _wcstod64 (const __wchar_t *, __wchar_t **);? long int _wcstol64 (const __wchar_t *, __wchar_t **, int);D unsigned long _wcstoul64 (const __wchar_t *, __wchar_t **, int);#endif/*G** The ISO C Amendment 1 and XPG4 specification define wcsftime() and E** wcstok() slightly differently. The default or compiling for the L** ISO C Amendment 1 provide the ISO C Amendment 1 definitions. Compiling G** for X/OPEN or on pre-OpenVMS 7.0 systems or for comp7atibility with L** pre-DEC C Version 5.2 provides the XPG4 definitions. Conflicts arising L** by compiling for both X/OPEN and the ISO C Amendment 1 resolve in favor ** of ISO C Amendment 1.*/?#if (__CRTL_VER >= 70000000 && __STDC_VERSION__ == 199409) || \R (__CRTL_VER >= 70000000 && !defined _XOPEN_SOURCE && !defined _DECC_V4_SOURCE) /* # ** ISO C Amendment definitions */!# ifdef __CAN_USE_EXTERN_PREFIX$# pragma __extern_prefix __save'# pragma __8extern_prefix "__pdam_"# else&# define wcstok __pdam_wcstok # endif## if __INITIAL_POINTER_SIZE == 32# pragma __pointer_size 32 # endifX __wchar_t * wcstok (__wchar_t *__ws1, __const_wchar_ptr64 __ws2, __wchar_t **__ws3);## if __INITIAL_POINTER_SIZE == 32# pragma __pointer_size 64 # endif!# ifdef __CAN_USE_EXTERN_PREFIX'# pragma __extern_prefix __restore # endif8# if __INITIAL_POINTER_SIZE && !defined _ANSI_C_SOURCE# pra9gma __pointer_size 32c __wchar_t *___pdam_wcstok32(__wchar_t *__ws1, __const_wchar_ptr64 __ws2, __wchar_t **__ws3);# pragma __pointer_size 64c __wchar_t *___pdam_wcstok64(__wchar_t *__ws1, __const_wchar_ptr64 __ws2, __wchar_t **__ws3); # endif#else  /*  ** XPG4 definitions */## if __INITIAL_POINTER_SIZE == 32# pragma __pointer_size 32 # endifE __wchar_t * wcstok (__wchar_t *__ws1, __const_wchar_ptr64 __ws2);## if __INITIAL_P:OINTER_SIZE == 32# pragma __pointer_size 64 # endif8# if __INITIAL_POINTER_SIZE && !defined _ANSI_C_SOURCE# pragma __pointer_size 32N __wchar_t *_wcstok32(__wchar_t *__ws1, __const_wchar_ptr64 __ws2); # pragma __pointer_size 64N __wchar_t *_wcstok64(__wchar_t *__ws1, __const_wchar_ptr64 __ws2); # endif*#endif /* wcstok() ISO/XPG4 definitions */?#if (__CRTL_VER >= 70000000 && __STDC_VERSION__ == 199409) || \R (__CRTL_VER >= 70000000 ;&& !defined _XOPEN_SOURCE && !defined _DECC_V4_SOURCE) /* # ** ISO C Amendment definitions */# if !defined _VMS_V6_SOURCE$# ifdef __CAN_USE_EXTERN_PREFIX(# pragma __extern_prefix __save/# pragma __extern_prefix "__utc_pdam_" # elseY# define wcsftime(__p1,__p2,__p3,__p4) __utc_pdam_wcsftime(__p1,__p2,__p3,__p4) # endif# else$# ifdef __CAN_USE_EXTERN_PREFIX(# pragma __extern_prefix __save+# pragma <__extern_prefix "__pdam_" # elseU# define wcsftime(__p1,__p2,__p3,__p4) __pdam_wcsftime(__p1,__p2,__p3,__p4) # endif # endifq __size_t wcsftime (__wchar_t *__wcs, __size_t __maxsize, const __wchar_t *__fmt, const struct tm *__timptr);!# ifdef __CAN_USE_EXTERN_PREFIX'# pragma __extern_prefix __restore # endif#else  /*  ** XPG4 definitions */#if __CRTL_VER >= 70000000# if !defined _VMS_V6_SOURCE$# ifdef __CAN_U=SE_EXTERN_PREFIX(# pragma __extern_prefix __save*# pragma __extern_prefix "__utc_" # elseT# define wcsftime(__p1,__p2,__p3,__p4) __utc_wcsftime(__p1,__p2,__p3,__p4) # endif # endif##endif /* __CRTL_VER >= 70000000 */l __size_t wcsftime (__wchar_t *__wcs, __size_t __maxsize, const char *__fmt, const struct tm *__timptr);#if __CRTL_VER >= 70000000# if !defined _VMS_V6_SOURCE$# ifdef __CAN_USE_EXTERN_PREFIX+# pragma __extern>_prefix __restore # endif # endif#endif,#endif /* wcsftime() ISO/XPG4 definitions *//*** Macro definitions*/#define getwc(fp) fgetwc(fp)"#define getwchar() fgetwc(stdin)!#define putwc(c,fp) fputwc(c,fp)%#define putwchar(c) fputwc(c,stdout)/*G** The following function prototypes are new with the ISO C Amendment.M** Conflicts arising by compiling for both X/OPEN and the ISO C Amendment 1 >** resolve in favor of ISO C Amendment 1. ? */#if __CRTL_VER >= 70000000&# if __STDC_VERSION__ == 199409 || \; (!defined _XOPEN_SOURCE && !defined _DECC_V4_SOURCE)4 int fwide (__FILE * __stream, int mode);J int fwprintf (__FILE * __stream, const __wchar_t *__format, ...);J int fwscanf (__FILE * __stream, const __wchar_t *__format, ...);Q int swprintf (__wchar_t *s, __size_t n, const __wchar_t *__format, ...);M int swscanf (const __wchar_t *__s, const __wchar_t *__format, ...) @;V int vfwprintf (__FILE * __stream, const __wchar_t *__format, __va_list __arg);C int vwprintf (const __wchar_t *__format, __va_list __arg);] int vswprintf (__wchar_t *s, __size_t n, const __wchar_t *__format, __va_list __arg);7 int wprintf (const __wchar_t *__format, ...);7 int wscanf (const __wchar_t *__format, ...);# __wint_t btowc (int __c);& int wctob (__wint_t __c);/ int mbsinit (const mbstate_t *__ps);J A __size_t mbrlen (const char *__s, __size_t __n, mbstate_t *__ps);\ __size_t mbrtowc (__wchar_t *__pwc, const char *__s, __size_t __n, mbstate_t *__ps);F __size_t wcrtomb (char *__s, __wchar_t __wc, mbstate_t *__ps);T int wmemcmp (const __wchar_t *__s1, const __wchar_t *__s2, __size_t __n); /*R ** The following functions have interfaces of XXX, _XXX32, and _XXX64 dueS ** only to the fact that the return argument is a pointer that is relat Bive$ ** to one of the arguments. */'# if __INITIAL_POINTER_SIZE == 32 # pragma __pointer_size 32 # endifQ __wchar_t *wcsstr (const __wchar_t *__ws1, __const_wchar_ptr64 __ws2);Q __wchar_t *wmemchr (const __wchar_t *__s, __wchar_t __c, __size_t __n);W __wchar_t *wmemcpy (__wchar_t *__s1, __const_wchar_ptr64 __s2, __size_t __n);W __wchar_t *wmemmove (__wchar_t *__s1, __const_wchar_ptr64 __s2, __size_t __n);L C__wchar_t *wmemset (__wchar_t *__s1, __wchar_t __c, __size_t __n);p __size_t mbsrtowcs (__wchar_ptr64 __dst, const char **__src, __size_t __len, __mbstate_ptr64 __ps);r __size_t wcsrtombs ( __char_ptr64 __dst, const __wchar_t **__src, __size_t __len, __mbstate_ptr64 __ps);'# if __INITIAL_POINTER_SIZE == 32 # pragma __pointer_size 64 # endif<# if __INITIAL_POINTER_SIZE && !defined _ANSI_C_SOURCE # pragma __pointer_size 32I __wchaDr_t *_wcsstr32 (const __wchar_t *, __const_wchar_ptr64);I __wchar_t *_wmemchr32 (const __wchar_t *, __wchar_t, __size_t);M __wchar_t *_wmemcpy32 (__wchar_t *, __const_wchar_ptr64, __size_t);M __wchar_t *_wmemmove32 (__wchar_t *, __const_wchar_ptr64, __size_t);C __wchar_t *_wmemset32 (__wchar_t *, __wchar_t, __size_t);Z __size_t _mbsrtowcs32 (__wchar_ptr64, const char **, __size_t, __mbstate_ptr64);^ __size_t _wcsrtombs32 (__char_ptr64, E const __wchar_t **, __size_t, __mbstate_ptr64); # pragma __pointer_size 64G __wchar_t *_wcsstr64 (const __wchar_t *, const __wchar_t *);I __wchar_t *_wmemchr64 (const __wchar_t *, __wchar_t, __size_t);K __wchar_t *_wmemcpy64 (__wchar_t *, const __wchar_t *, __size_t);K __wchar_t *_wmemmove64 (__wchar_t *, const __wchar_t *, __size_t);C __wchar_t *_wmemset64 (__wchar_t *, __wchar_t, __size_t);T __size_t _mbsrtowcs64 (__wchar_t *F, const char **, __size_t, mbstate_t *);M __size_t _wcsrtombs64 (char *, const __wchar_t **, __size_t, mbstate_t *); # endif # endif#endif/*%** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif"#endif /* OpenVMS V6.2 or later */#pragma __standard#endif /* __WCHAR_LOADED */wwCjIE\#ifndef __WCTYPE_LOADED#define __WCTYPE_LOADEDM/******************* G***********************************************************D** - Wide Character classification and mapping utilities**M*******************************************************************************:** Header introduced by Amendment 1 of the ISO C Standard**K** Definitions in this header file may not be available on all versions ofK** OpenVMS. See the DEC C Runtime Library reference manual for specifics.**M************************************************************ H*******************.** Copyright 2000 Compaq Computer Corporation**N** Compaq and the Compaq logo Registered in U.S. Patent and Trademark Office.**J** Confidential computer software. Valid license from Compaq required forF** possession, use or copying. Consistent with FAR 12.211 and 12.212,F** Commercial Computer Software, Computer Software Documentation, andK** Technical Data for Commercial Items are licensed to the U.S. Government/** under vendor's standard commercial license.I**N*******************************************************************************/#pragma __nostandard#include #ifdef __cplusplus extern "C" {#endif/*I** All includes of other header files must be done prior to altering the** pointer size mode.*/#include /*K** 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_sJize __save# pragma __pointer_size 64#endif/*-** Define typedefs only once per compilation*/#ifndef __WINT_T# define __WINT_T typedef __wint_t wint_t;#endif#ifndef __WCTRANS_T# define __WCTRANS_T" typedef __wctrans_t wctrans_t;#endif#ifndef __WCTYPE_T# define __WCTYPE_T typedef __wctype_t wctype_t;#endif #ifndef WEOF# define WEOF ((__wint_t) -1)#endif/*K** According to XPG4, the following functions are defined in the N** header. Although the header doesn't exist in XPG4, we put theseM** prototypes under "No strict XPG4" condition for the sake of a user, whichE** includes both and (in header theseN** declarations are placed under "strict XPG4 mode" condition). Also preventH** macro expansion of isw* prototypes in cases where both and** are included.*/>#if (!defined _XOPEN_SOURCE || defined __HIDE_FORBIDDEN_NAMES)$ int (iswalLnum) (__wint_t __wc);$ int (iswalpha) (__wint_t __wc);$ int (iswcntrl) (__wint_t __wc);$ int (iswdigit) (__wint_t __wc);$ int (iswgraph) (__wint_t __wc);$ int (iswlower) (__wint_t __wc);$ int (iswprint) (__wint_t __wc);$ int (iswpunct) (__wint_t __wc);$ int (iswspace) (__wint_t __wc);$ int (iswupper) (__wint_t __wc);$ int (iswxdigit) (__wint_t __wc);/ __wctype_t wctype (const char *__property);7 int iswctype (__wint_t __wc, __wctype_t __dMesc);& __wint_t towlower (__wint_t __wc);& __wint_t towupper (__wint_t __wc);$# define __ISWALPHABET (iswalpha)$# define __ISWCNTRL (iswcntrl)$# define __ISWUPPER (iswupper)$# define __ISWLOWER (iswlower)$# define __ISWDIGIT (iswdigit)$# define __ISWSPACE (iswspace)$# define __ISWPUNCT (iswpunct)%# define __ISWXDIGIT (iswxdigit)$# define __ISWPRINT (iswprint)$# define __ISWGRAPH (iswgraph)$# define __ISWALNUM (iswal Nnum)R# define __ISWFUNCTION(c,p) (__ctypea?__ctypet[(__wint_t)(c)]&__##p:__ISW##p(c))/# define iswcntrl(c) __ISWFUNCTION(c, CNTRL)/# define iswalnum(c) __ISWFUNCTION(c, ALNUM)2# define iswalpha(c) __ISWFUNCTION(c, ALPHABET)/# define iswdigit(c) __ISWFUNCTION(c, DIGIT)/# define iswgraph(c) __ISWFUNCTION(c, GRAPH)/# define iswlower(c) __ISWFUNCTION(c, LOWER)/# define iswprint(c) __ISWFUNCTION(c, PRINT)/# define iswpunct(c) __ISWFUNCTION(c, PUNCT)/# define iswspace(c) __ISWFUNCTION(c, SPACE)0# define iswxdigit(c) __ISWFUNCTION(c, XDIGIT)/# define iswupper(c) __ISWFUNCTION(c, UPPER)#endif/__wctrans_t wctrans (const char *__property);:__wint_t towctrans (__wint_t __wc, __wctrans_t __desc);/*%** Restore the users pointer context*/#if __INITIAL_POINTER_SIZE## pragma __pointer_size __restore#endif#ifdef __cplusplus }#endif#pragma __standard#endif /* __WCTYPE_LOADED */wwPHIE\Q FAULKNER CRTL_CLASSASSERTBITYPESBUILTINSCOMPLEXCTYPECURSESC_ASM DECC$TYPESDESCRIPDIRENTDLFCNERRNOERRNODEFFCNTLFILEFLOATFPFP_CLASSFTWGRPICONVIFIF_ARP IF_TRNSTATIF_TYPESININ6 IN6_MACHTYPESINETINTSINTTYPESIOCTLISO646LANGINFOLIBGENLIMITSLOCALEMATHMEMORYMMANMONETARYNAMESERNETDBNL_TYPESPERROR PROCESSESPWD REENTRANCYRESOLVRESOURCESETJMPSIGNALSOCKETSTATSTDARGSTDBOOLSTDDEFSTDIOSTDLIBSTRINGSTRINGSSTROPTSTCPTGMATHTIMETIMEBTIMERSTIMESTYPESTZFILEUIOUNISTDUNIXIOUNIXLIBUTIMEUTSNAMEVARARGSWAITWCHARWCTYPE