CONTENTS Title Page Copyright Page Preface 1 Installing and Upgrading Your VAXELN System 1.1 VAXELN Toolkit Available on CD-ROM 1.2 VAXELN Installation Verification Procedure Correction 1.3 Installing the VAXELN Toolkit and the Ada Products 1.4 Upgrading 1.5 New Files for the VAXELN Binary Kit 2 Enhancements 2.1 Discontinued Support 2.2 New Processor Support 2.2.1 KAV30 Processor 2.2.1.1 Machine-Check Stack Frame Information for the KAV30 2.2.1.2 Developing KAV30 Applications 2.2.1.3 Linking VAXELN Applications for the KAV30 2.2.2 MicroVAX 3100 Model 30, 40, and 80 Processors 2.2.2.1 DHW Device Integral-Bus Device Information for the MicroVAX 3100 Models 30, 40, 80 2.2.3 VAXstation II Workstation 2.2.4 VAXstation 4000 VLC and VAXstation 4000 Model 60 Workstations 2.2.5 VAX 4000 Model 400, 500, and 600 Processors 2.2.6 VAX 6000 Model 600 Series Processor 2.2.6.1 Building VAX 6000 Model 600 System Image 2.2.6.2 Machine-Check Stack Frame Information for the VAX 6000 Model 600 Series 2.3 New Device Support 2.3.1 Monochrome QVSS Graphics Device (GCA) 2.3.2 LCG Graphics Device (GFB) 2.3.3 RA Disk Drive 2.3.4 RF Disk Drive 2.3.5 RZ (SCSI) Disk Drives 2.3.5.1 PKCDRIVER 2.3.5.2 KRDRIVER 2.3.6 MicroVAX 3100 Model 30, 40, and 80 Serial Devices 2.4 System Builder Enhancements 2.4.1 POSIX Characteristics Menu 2.4.2 Target Processor Menu 2.4.2.1 New Target Processor Menu Entries 2.4.2.2 Removed Target Processor Menu Entries 2.4.3 DECwindows Server Characteristics Menu 2.4.4 Terminal Description Menu 2.5 Additional POSIX Support 2.5.1 Pthreads Support 2.5.2 VAXELN POSIX Functions 2.6 Internet Service Enhancements 2.6.1 Performance Enhancements 2.6.2 New INET SET CHECKSUM Routine INET SET CHECKSUM 2.6.3 TELNET Utility Rlogin Support 2.7 File Service Enhancements 2.8 ECL Utility Enhancements 2.8.1 /REPLACE Qualifier for the COPY Command 2.8.2 New ECL APPEND Command 2.8.3 Future Limited Functionality for SET DEFAULT Command 2.9 Device Driver Enhancements 2.9.1 DHW Device Driver 2.9.2 PKCDRIVER SCSI Device Driver 2.9.2.1 Components of the PKCDRIVER SCSI Driver 2.9.2.2 Modifying the PKCDRIVER SCSI Driver Start-Up Module 2.9.2.3 Compiling and Linking the PKCDRIVER SCSI Driver Modules 2.9.3 KRDRIVER SCSI Device Driver 2.9.3.1 Components of the KRDRIVER SCSI Driver 2.9.3.2 Modifying the KRDRIVER SCSI Driver Start-Up Module 2.9.3.3 Compiling and Linking the KRDRIVER SCSI Driver Modules 3 Corrections 3.1 VAXELN Pascal Compiler Corrections 3.1.1 Wrong Module Name Used When Module Compiled with /ANA 3.1.2 Incorrect Code Is Generated with /CHECK=ALL and /DEBUG Switches 3.1.3 Compiler Bugcheck When Parameter Is Function Returning a Pointer to a Structure 3.1.4 Compiler Bugcheck on Conversion of Variable with Type "Bit" 3.1.5 Runtime Integer Overflow on Assignment to LARGE_INTEGER 3.1.6 Registers Not Allocated Properly 3.1.7 Compiler Bugchecks in Optimizer or Code Generator 3.1.8 Access Violation on Array Access When Compiling with /OPTIMIZE 3.1.9 Bad Code Generated for Comparing a Large_Integer and a Constant 3.2 VAXELN POSIX Corrections 3.2.1 Error Message Is Returned When Using the VAXELN SET TIME Routine to Set the Clock 3.3 Installation and Installation Verification Procedure Corrections 3.3.1 Logical ELN$_DECW$FONTS Deassigned 3.4 Device Driver Corrections 3.4.1 Setting the Parity in the SCNDRIVER Has Been Corrected 4 Restrictions 4.1 Target Processor Restrictions 4.1.1 KAV30 Restrictions 4.1.2 VAX 6000 Series Processors 4.2 Kernel Restrictions 4.3 Closely Coupled Multiprocessing Restrictions 4.3.1 Do Not Specify the trace Argument When Loading a KA800 Processor 4.4 DECnet Service Restriction 4.5 Network Support for IEEE 802 4.6 Internet Services Restrictions 4.6.1 The connect Function Always Blocks 4.6.2 The listen Function Accepts Invalid Values 4.6.3 Interchanging the DECnet and Internet Services on an Ethernet Controller 4.6.4 The inet_ntoa Function Returns a Pointer to Static Data 4.6.5 Network Loopback Device Not Provided 4.7 Remote Terminal Utility Restrictions 4.7.1 VMS-Specific Messages Not Supported 4.7.2 Using a VMS Command File to SET HOST to a VAXELN Target 4.7.3 SET HOST to VMS Defaults to /NOBROADCAST 4.7.4 Wait Required After Terminating Remote Connection 4.7.5 SET TERMINAL/[NO]EIGHT_BIT Has No Effect 4.8 File Service Restrictions 4.8.1 Logical I/O Operations Fail After a SET DEFAULT FILESPEC Call 4.8.2 MOUNT_VOLUME Warning Message 4.8.3 DIRECTORY_LIST Search of VMS Version 4.6 or 4.7 Directories Fails 4.8.4 Writing Files on Remote MS-DOS Systems from VAXELN Pascal 4.9 Device Driver Restrictions 4.9.1 Support for DEC LANcontroller 400 4.9.2 Maximum Length of a LAT Port Name 4.9.3 LAT Driver Does Not Support All Functions of TTY ASSERT BREAK 4.9.4 Limit on Number of Outstanding Reads and Writes for DRB32 Utility Routines 4.9.5 DHVDRIVER Support for the DHQ11 and CXY08 Assumes DHV Mode 4.9.6 Serial-Line Drivers Need Increased Pool Size 4.9.7 RV20 Optical Disk Drive 4.9.8 SCSI Port Driver Interface Not Available in Ada 4.9.9 SCSI Port Drivers Support Only Logical Unit Number 0 4.9.10 MUDRIVER May Hang Before RV20 Is Initialized 4.10 Device Restrictions 4.10.1 Multiple CPU Access to Single Disk on DSSI Bus not Supported 4.10.2 RZ58 Disk Drive Can Be Used Only with VAXELN 4.4 4.10.3 Booting from SCSI Diskettes 4.10.4 Synchronous Transfers Are Not Supported by the PKCDRIVER 4.11 Ada VAVELN_SERVICES Package 4.12 C Runtime Library Restrictions 4.12.1 Function getc Fails to Echo Characters for Files Other Than stdin 4.12.2 Pascal Procedure GET CONTROL KEY Not Directly Supported in VAXELN C 4.12.3 VAX C CC$MIXED_FLOAT Macro Not Supported 4.12.4 C RTL Function CLEANUP P1 CTX Returns Allocated Resources on Exit from a Process 4.12.5 C RTL Function pow( ) Restrictions 4.13 VAXELN Pascal Compiler Restrictions 4.13.1 Limit on Array Sizes in Compiler-Debugger Interface 4.13.2 Initializing Aggregates to a Constant Value 4.13.3 Passing PROCEDURE_TYPE and FUNCTION_TYPE Routines As Arguments 4.13.4 Cannot Use Same File Variable for Both External and Internal Files 4.13.5 ZERO Function Cannot Clear More Than 64 Kbytes 4.14 Pascal Runtime Restrictions 4.14.1 Pascal I/O Exception Handling 4.14.2 SCA INSPECT Command Bugchecks When Specified with a Routine and Its Parameters 4.14.3 CONVERT Function Gives Incorrect Result when Converting String 4.15 Debugger Restrictions 4.15.1 Cannot Use Version 4.3 Debugger Remotely with Version 4.0 Images 4.15.2 EDEBUG/LOAD Does Not Clear Fields in NCP Database 4.15.3 EDEBUG/LOAD Command Ignores Version Numbers 4.15.4 Debugger Consumes Pool Blocks and Ports on Process Creation and Deletion 4.15.5 Contents of Global Common Data Cannot Be Examined from the Debugger 4.15.6 Debugger Hangs When Writing FORTRAN Message Strings That Include FAO Characters 4.15.7 Specifying Program Names That Contain Hyphens 4.15.8 EDEBG STEP/INTO Does not Work on Source Code from Text Libraries 4.16 Command Language (ECL) Restriction 4.16.1 ECL Terminates if There is no Virtual Address Space 4.16.2 ECL SET TERMK Ignores Characteristics which are Session-Releated 4.17 Performance Utility Restrictions 4.17.1 Using EPA and Authorization Required in the Same System 4.17.2 Sampling with Multiple Instances of the Same Job 4.17.3 Potential Problems with Collector STOP Command on Tightly Coupled Multiprocessors 4.18 POSIX Restrictions 4.18.1 Function Support 4.18.2 Pthreads Debugger Cannot Be Called Directly 4.18.3 POSIX Threads and POSIX Signals Incompatible 4.18.4 Support Limited to Three Terminal Drivers 4.18.5 POSIX Applications Must Be Recompiled and Relinked 4.18.6 Multiprocessor Support Not Available 4.18.7 POSIX Provides Only C Bindings 4.18.8 Do not Call POSIX Functions from VAXELN Subprocesses 4.18.9 Do not Call POSIX Functions from VAXELN Ada Programs 4.18.10 Executing POSIX Programs from ECL 4.18.11 Two Memory Pages Can Be Permanently Allocated 4.18.12 Argument Value Limits for Clock, Per-Process Timer, and Sleep Routines 4.18.13 Pipe Status After Process Termination 4.18.14 File Descriptors for Sockets Are Invalid in a Child Process 4.18.15 Programs built in USER (versus KERNEL) mode and DEBUG May Hang 4.19 DECwindows Restrictions 4.19.1 No Support for Digital Extended Motif 4.19.2 Terminal Emulator Fonts in Version 4.4 Different from Version 4.0 4.19.3 Cannot Use ReGIS with Terminal Emulators 4.19.4 Programs That Link Against Shareable DECwindows Toolkit Libraries Must Link Against ELNDECW_XLIBSHR 4.19.5 Limited Support Provided for VAXELN Pascal Programming 4.19.6 UIL Compiler Is Not Provided 4.19.7 Changes to DECwindows Definition Files 4.19.8 Calling the C Function CLEANUP P1 CTX Whenever a Process Exits 4.19.9 XLIB is not Threadsafe 4.20 COPYSYS Command Procedure Restriction 5 Documentation Notes 5.1 VAXELN Documentation Set Changes 5.2 VAXELN Manual Changes 5.3 VAXELN C Programming Guide 5.3.1 Revised Description of the select Function 5.4 VAXELN Device Drivers Guide 5.5 Device Drivers Reference Manual 5.5.1 New Device Driver Entry 5.5.2 TTY READ Argument Description Correction 5.5.3 GP SEND COMMAND Argument Specification Correction in FORTRAN 5.6 VAXELN System Development Guide 5.6.1 Including Support for AUX Serial Port 5.6.2 Errors in Boot Commands for VAX 6000 Series 5.7 VAXELN Pascal Programming Manual 5.7.1 Correction to the /OPTIMIZE and /OPTIMIZE=COMMON Qualifiers 5.8 VAXELN Quick Reference 5.8.1 Footnote Correction 5.9 VAXELN System Services Guide 5.10 VAXELN System Services Reference Manual 5.10.1 SET JOB ELIGIBILITY Can Be Called from User Mode 5.10.2 DISCONNECT CIRCUIT Satisfies Wait Only for Remote Port 5.11 VAXELN Guide to DECwindows 5.11.1 Digital Extended Motif (DXM) 5.11.2 Using the APP ADD INPUT Intrinsic Routine 5.11.3 Using ELN SET DEFAULTS to Set Defaults 5.11.4 Linking a POSIX Application 5.11.5 ACS LINK Line Correction 5.12 VAXELN File, Network, and Security Services Guide 5.13 VAXELN File, Network, and Security Services Reference Manual 5.13.1 Correction to the Ada Definition of NI_CFG_ELEMENT_TYPE 5.13.2 Instructions to Compile the Specification Modules ELN$DECW$X_.ADA and ELN$:DECW$MOTIF_.ADA 5.13.3 Revised Description of NI DISCONNECT Routine 5.13.4 Revised Description of the STI SELECT nfds Argument 5.14 VAXELN Utilities Guide 5.14.1 Size Limit for ECL INITIALIZE/CLUSTERSIZE= nnn A VAXELN Performance Information and Disk I/O Performance Tuning A.1 Performance Data A.1.1 Test Descriptions A.1.1.1 Process Context Switch Tests A.1.1.2 Interrupt Service Routine Tests A.1.2 Test Methodology A.1.3 Test Conditions A.1.4 Performance Data Tables A.1.5 Data Computation A.2 Disk I/O Performance Tuning A.2.1 Disk I/O Tuning Summary A.2.2 Optimizing Disk I/O Throughput A.2.2.1 Transfer Size A.2.2.2 Cluster Size A.2.2.3 Buffer Size A.2.2.4 Other Factors Affecting Performance A.2.2.5 Disk I/O Tuning Examples A.2.2.5.1 Comparisons of I/O Parameter Tuning A.2.2.5.2 Comparisons of Tuning Results on Different Configurations A.2.3 I/O Tuning in C and FORTRAN A.2.3.1 C Language Tuning Considerations A.2.3.2 FORTRAN Tuning Considerations A.3 KAV30 Performance Data A.3.1 Test Descriptions A.3.1.1 System Service Execution Time A.3.1.2 Process Context Switch Tests A.3.1.3 Interrupt Service Routine Tests A.3.2 Test Methodology A.3.3 Test Conditions A.3.4 Performance Data Tables B Enhancements Provided in Previous Version 4. n Releases B.1 VAXELN Toolkit Version 4.3 Enhancements B.2 VAXELN Toolkit Version 4.2 Enhancements B.3 VAXELN Toolkit Version 4.1 Enhancements B.4 VAXELN Toolkit Version 4.0 Enhancements EXAMPLES 2-1 Modifying the PKCDRIVER SCSI Driver Start-Up Module 2-2 Modifying the KRDRIVER SCSI Driver Start-Up Module FIGURES 2-1 Machine-Check Stack Frame - KAV30 2-2 Machine-Check Stack Frame - MicroVAX 3100 Models 30, 40 and the VAXstation 4000 VLC 2-3 Machine-Check Stack Frame - MicroVAX 3100 Model 80 and VAXstation 4000 Model 60 2-4 Machine-Check Stack Frame - VAX 4000 Models 400, 500, and 600 2-5 Machine-Check Stack Frame - VAX 6000 Model 600 2-6 Terminal Description Menu Selections for the DHW Devices 5-1 Use of Mutexes to Synchronize Process I/O TABLES 1-1 New Files for the VAXELN Binary Kit 2-1 Machine-Check Type Codes for the KAV30 Processor 2-2 Integral-Bus Device Information 2-3 Machine-Check Type Codes for MicroVAX 3100 Models 30, 40 and the VAXstation 4000 VLC 2-4 Machine-Check Type Codes for the MicroVAX 3100 Model 80 and the VAXstation 4000 Model 60 2-5 Q-bus Device Information, VAXstation II 2-6 Integral-Bus Device Information, VAXstation 4000 Model 60 and Model VLC 2-7 Integral-Bus Device Information, VAX 4000 Model 400, 500, 600 2-8 Machine-Check Type Codes for the VAX 4000 Models 400, 500, and 600 Processors 2-9 Machine-Check Type Codes for the VAX 6000 Model 600 2-10 MicroVAX 30, 40, and 80 Serial Device Support 2-11 DHW Asynchronous Options 2-12 VAXELN POSIX Functions 2-13 Checksum Mode Values 2-14 PKCDRIVER SCSI Driver Components 2-15 KRDRIVER SCSI Driver Components A-1 System Configurations A-2 ISR and Context Switch Test Conditions A-3 Interrupt Tests - rtVAX 1000 A-4 Interrupt Tests - VAX 4000 Model 200 A-5 Interrupt Tests - VAX 4000 Model 300 A-6 Interrupt Tests - VAX 6000 Model 510 A-7 Interrupt Tests - VAX 9000 Model 310 A-8 Context Switch Tests - rtVAX 1000 A-9 Context Switch Tests - VAX 4000 Model 200 A-10 Context Switch Tests - VAX 4000 Model 300 A-11 Context Switch Tests - VAX 6000 Model 510 A-12 Context Switch Tests - VAX 9000 Model 310 A-13 Summary of Disk I/O Tuning Techniques A-14 Throughput Rates with Varying Transfer and Buffer Sizes A-15 Throughput Rates with Varying Transfer and Cluster Sizes A-16 Throughput Rates for a MicroVAX II and a MicroVAX 3500 A-17 Test Conditions A-18 System Service Execution Time, Microseconds (User Mode-KAV30) A-19 System Service Execution Time, Microseconds (Kernel mode-KAV30) A-20 Context Switch Test Times, Microseconds (KAV30) A-21 Interrupt Service Routine Test Times, Microseconds (KAV30)