CONTENTS Title Page Copyright Page Preface 1 Runtime Facilities Overview 1.1 VAXELN Runtime Environment 1.2 VAXELN Programming Concepts 1.2.1 Processes: Execution Agents for Programs and Program Parts 1.2.2 Jobs: Families of Processes 1.2.3 Concurrency: Processes Sharing Processor Resources 1.2.3.1 Multitasking 1.2.3.2 Multiprogramming 1.2.3.3 Multiprocessing 1.3 VAXELN Runtime Facilities 1.3.1 Kernel 1.3.2 Network Services 1.3.3 LAT Host Services 1.3.4 Authorization Service 1.3.5 File Service 1.3.6 Device Drivers 1.3.7 DECwindows Support 2 The VAXELN Kernel 2.1 Kernel Objects 2.1.1 AREA Objects 2.1.2 DEVICE Objects 2.1.3 EVENT Objects 2.1.4 MESSAGE Objects 2.1.5 NAME Objects 2.1.6 PORT Objects 2.1.7 PROCESS Objects 2.1.8 SEMAPHORE Objects 2.1.9 Kernel Object Implementation 2.2 Optimized Data Structures 2.2.1 AREA_LOCK_VARIABLE Data Structure 2.2.2 MUTEX Data Structure 3 Job, Process, and Memory Management 3.1 Job Activation and Termination 3.2 Subprocess Activation and Termination 3.3 Scheduling 3.3.1 Processes and Process States 3.3.2 Job and Process Scheduling 3.3.3 Initialization Programs and System Start-Up 3.3.4 Loading Programs 3.3.5 Scheduling in Multiprocessing Configurations 3.4 Kernel Services for Processes and Jobs 3.4.1 CREATE_JOB Procedure 3.4.2 CREATE_PROCESS Procedure 3.4.3 CURRENT_PROCESS Procedure 3.4.4 DELETE Procedure 3.4.5 DISABLE_SWITCH Procedure 3.4.6 ENABLE_SWITCH Procedure 3.4.7 EXIT Procedure 3.4.8 KER$GET_JCB Procedure 3.4.9 KER$GET_USER Procedure 3.4.10 INITIALIZATION_DONE Procedure 3.4.11 KER$NAME_OBJECT Procedure 3.4.12 KER$RAISE_PROCESS_EXCEPTION Procedure 3.4.13 RESUME Procedure 3.4.14 Setting a Job's Processor Eligibility 3.4.15 SET_JOB_PRIORITY Procedure 3.4.16 SET_PROCESS_PRIORITY Procedure 3.4.17 KER$SET_USER Procedure 3.4.18 SIGNAL Procedure 3.4.19 SUSPEND Procedure 3.4.20 WAIT_ANY and WAIT_ALL Procedures 3.5 Memory Management 3.5.1 Managing Stack Usage 3.5.2 Allocating Memory 3.5.2.1 ALLOCATE_MEMORY Procedure 3.5.2.2 KER$ALLOCATE_SYSTEM_REGION Procedure 3.5.2.3 FREE_MEMORY Procedure 3.5.2.4 KER$FREE_SYSTEM_REGION Procedure 3.5.2.5 KER$MEMORY_SIZE Procedure 3.5.3 Loading VAXELN System Images onto KA800 Processors 4 Synchronization 4.1 Synchronizing Process Execution 4.2 Using Time Values to Synchronize Process Execution 4.2.1 Waiting on Time 4.2.2 Retrieving and Setting the System Time 4.3 Synchronizing Process Execution Based on Process Completion 4.4 Using Semaphores to Synchronize Process Execution 4.4.1 Creating Semaphores 4.4.2 Waiting On and Signaling Semaphores 4.4.3 Deleting Semaphores 4.4.4 Using Mutexes to Optimize Waiting and Signaling Operations 4.5 Using Events to Synchronize Process Execution 4.5.1 Creating Events 4.5.2 Waiting On, Signaling, and Clearing Events 4.5.3 Deleting Events 5 Communication 5.1 Sharing Module-Level Data 5.2 Sharing Packets of Data Using Queues 5.3 Passing Messages 5.3.1 Messages 5.3.2 Message Ports 5.3.3 Named Message Ports 5.3.4 Message Transmission 5.3.4.1 Expedited Messages 5.3.5 Datagrams and Circuits 5.3.6 Programming with Circuits 5.3.7 Port Limits and Flow Control 5.3.7.1 Flow Control with Unconnected Ports 5.3.7.2 Flow Control with Circuits 5.3.8 Programming Considerations for Message Communication 5.3.9 Kernel Services for Message Transmission 5.3.9.1 ACCEPT_CIRCUIT Procedure 5.3.9.2 CONNECT_CIRCUIT Procedure 5.3.9.3 CREATE_MESSAGE Procedure 5.3.9.4 CREATE_NAME Procedure 5.3.9.5 CREATE_PORT Procedure 5.3.9.6 DELETE Procedure 5.3.9.7 DISCONNECT_CIRCUIT Procedure 5.3.9.8 JOB_PORT Procedure 5.3.9.9 RECEIVE Procedure 5.3.9.10 SEND Procedure 5.3.9.11 TRANSLATE_NAME Procedure 5.3.9.12 WAIT_ANY and WAIT_ALL Procedures 5.4 Sharing Memory Areas 5.4.1 Creating Areas 5.4.2 Synchronizing Access to Areas with Events 5.4.3 Synchronizing Access to Areas with Semaphores 5.4.4 Using Area Lock Variables to Optimize Waiting and Signaling Operations 5.4.5 Using Areas to Synchronize Job Execution 5.4.6 Deleting Areas 6 Device Handling 6.1 Creating and Deleting DEVICE Objects 6.2 Handling Device Interrupts 6.2.1 Waiting for an ISR to Service a Device Interrupt 6.2.2 Signaling the DEVICE Object After Service Completion 6.3 Synchronizing Access to the Device Communication Region 6.4 Setting a Driver Job's Processor Eligibility 6.5 Reading and Writing Register Data 6.6 Controlling DMA Devices 6.6.1 Allocating, Loading, and Freeing Map Registers 6.6.2 Allocating and Freeing Buffered Data Paths 6.6.3 Mapping and Unmapping Memory Buffers 6.6.4 Returning a Variable's Physical Address 6.7 Coding VAXBI Bus Device Drivers 6.8 Executing Routines in Kernel Mode 6.9 Handling Power-Failure Recovery 7 Exception Handling 7.1 VAX Stack Architecture 7.2 Exceptions in VAXELN Systems 7.2.1 Exception-Handler Arguments 7.2.2 Continue and Resignal Operations 7.2.3 Unwind Operation 7.2.4 Multiple Concurrent Exceptions 7.3 Raising Exceptions 7.3.1 Kernel Procedure Failure Exceptions 7.3.2 Asynchronous Exceptions 7.4 Exception-Handling Procedures 7.4.1 DISABLE_ASYNCH_EXCEPTION Procedure 7.4.2 ENABLE_ASYNCH_EXCEPTION Procedure 7.4.3 RAISE_EXCEPTION Procedure 7.4.4 KER$RAISE_PROCESS_EXCEPTION Procedure 7.4.5 KER$UNWIND Procedure 7.5 Status Codes 7.6 Using Runtime Messages in Application Programs 7.6.1 VAXELN Message Files 7.6.2 Constructing Messages 7.6.3 Using Message Files with Application Programs 7.6.4 Retrieving Message Text 7.6.5 Displaying VAXELN Message Text on VMS Systems 8 Ethernet/IEEE 802 Datalink Drivers 8.1 Ethernet/IEEE 802 Datagram Service 8.2 Retrieving a CSMA/CD LAN Configuration 8.2.1 Ethernet Controller Device Types 8.2.2 Ethernet Controller Device Names 8.2.3 Ethernet Controller Control Ports 8.2.4 Ethernet Controller Data Ports 8.3 Retrieving Ethernet Controller Attributes 8.3.1 Ethernet Controller Physical Addresses 8.3.2 Ethernet Controller Hardware Addresses 8.4 Connecting and Disconnecting an Ethernet/IEEE 802 Protocol 8.4.1 Portals 8.4.2 Dispatch Ports 8.4.3 Message Format and Multiplexing 8.4.4 User Data 8.4.5 Promiscuous Mode 8.4.6 Multicast Addresses 8.4.7 Group SAPs 8.4.8 LLC Classes 8.4.9 Padded Ethernet Protocols 8.5 Transmitting and Receiving Messages 8.5.1 Allocating a Message Buffer 8.5.2 Transmitting Messages 8.5.3 Retrieving Transmitted Messages 8.5.4 Receiving Messages 8.6 Setting Up an Ethernet/IEEE 802 Datagram Service Environment 9 DECnet Network Services 9.1 Network Service Protocols 9.2 Message Transmission Services 9.3 Name Service 9.3.1 Name Server 9.3.2 Kernel and Name Service Interaction 9.3.3 Name Server Election 9.4 Network Management Services 9.4.1 Managing VAXELN DECnet Systems from a VMS Host System 9.4.2 Testing the Network Service 9.4.3 Using the Network Management Service 9.4.3.1 Initializing DECnet Node Addresses at Runtime 9.4.3.2 Stopping and Starting DECnet Software to Reduce Network Overhead 9.4.3.3 Switching DECnet Software Between Ethernet Controllers 9.4.4 Using the Down-Line Load Service 9.4.4.1 Establishing Circuits for Down-Line Load Service Communication 9.4.4.2 Managing and Monitoring Data Base Node Entries 9.4.4.3 Managing and Monitoring Data Base Line Entries 9.4.4.4 Managing Target-Initiated Down-Line Load Requests 9.4.4.5 Trigger Booting a VAXELN Target Node 9.4.4.6 Down-Line Loading VAXELN Systems 9.5 Services for Communicating with VMS Nodes 9.5.1 Specifying Nodes 9.5.1.1 Using Node Names and Node Numbers in VMS 9.5.1.2 Using Node Numbers in VAXELN 9.5.2 Requesting Connections from VAXELN Systems 9.5.3 Accepting Connections on VMS Systems 9.5.4 Requesting Connections from VMS Systems 9.5.5 Accepting Connections on VAXELN Systems 9.5.6 Using DECnet Object Numbers in Connection Requests 9.6 Remote Terminal Utility 10 Internet Services 10.1 Internet Service Concepts 10.1.1 Client-Server Model 10.1.2 Internet Architecture 10.1.2.1 Internet Protocol 10.1.2.2 User Datagram Protocol 10.1.2.3 Transmission Control Protocol 10.1.3 Internet Addresses 10.1.3.1 Network Classes 10.1.3.2 Network Mask 10.1.3.3 Broadcast Mask 10.1.4 Ports as Internet Communication Endpoints 10.1.5 Sockets 10.1.5.1 Connection Socket Communication 10.1.5.2 Connectionless Socket Communication 10.1.6 Routing 10.1.7 Fragmentation 10.2 Configuring Internet Services 10.3 Controlling Internet Services 10.3.1 Managing the ARP Cache 10.3.1.1 Adding and Deleting ARP Cache Entries 10.3.1.2 Retrieving Ethernet Addresses from the ARP Cache 10.3.1.3 Retrieving ARP Cache Entries 10.3.2 Managing the Internet Routing Table 10.3.2.1 Adding and Deleting Routing Table Entries 10.3.2.2 Checking the Status of Routing Table Entries 10.3.2.3 Retrieving Routing Table Entries 10.3.3 Managing Internet Network Interfaces 10.3.3.1 Setting Internet Network Interfaces 10.3.3.2 Retrieving Internet Network Interface Characteristics 10.3.4 Retrieving Internet Performance and Error Data 10.3.5 Retrieving TCP Connection Data 10.4 Converting the Byte Order of Network and Host Binary Data 10.5 Manipulating Internet Addresses 10.6 Programming Internet Communication 10.6.1 Creating Sockets 10.6.2 Binding Names to Sockets 10.6.3 Controlling Socket Characteristics 10.6.4 Establishing Connections for Socket Communication 10.6.4.1 Initiating Socket Connections 10.6.4.2 Creating a Queue for Pending Connection Requests 10.6.4.3 Accepting Socket Connections 10.6.5 Transferring Data 10.6.5.1 Sending Data to Sockets 10.6.5.2 Receiving Data from Sockets 10.6.5.3 Polling Sockets for I/O Activity 10.6.6 Shutting Down Sockets 10.6.7 Closing Sockets 10.6.8 Programming Socket Communication for a UDP Application 10.6.9 Programming Socket Communication for a TCP/IP Application 10.7 Retrieving and Setting Socket Characteristics 10.7.1 Retrieving Socket Names 10.7.2 Setting Socket Characteristics 10.7.3 Retrieving Socket Options 11 LAT Host Services 11.1 LAT Host Services Overview 11.2 Establishing Circuits for LAT Communication 11.2.1 Connecting to a LAT Control Port 11.2.2 Creating a VAXELN LAT Port 11.2.3 Connecting to a DDA Port 11.3 Managing VAXELN Service Nodes 11.3.1 Retrieving and Setting Service Node Characteristics 11.3.1.1 Node Names 11.3.1.2 Node Identification Strings 11.3.1.3 LAT Network Groups 11.3.1.4 Multicast Timer 11.3.1.5 Service Node States 11.3.2 Managing Service Node Services 11.3.2.1 Creating and Deleting Services 11.3.2.2 Changing Service Characteristics 11.3.2.3 Advertising Services 11.3.3 Retrieving LAT Port Characteristics 11.3.3.1 LAT Port Names 11.3.3.2 Queue Statuses 11.3.3.3 Remote Server Names 11.3.3.4 Remote Port Names 11.3.4 Retrieving Terminal Server Characteristics 11.3.5 Monitoring LAT Network Performance and Error Statistics 11.4 Setting Up a Dedicated Service Environment 11.5 Setting Up an Application Device Environment 11.6 Retrieving and Setting Terminal Characteristics 12 System Security 12.1 Security Features Overview 12.2 User Names and Identification Codes 12.3 Authorization Service 12.3.1 Including the Authorization Service 12.3.2 Authorization Service Utility Procedures 12.3.3 Establishing Circuits for Authorization Service Communication 12.3.4 Adding Users to the Authorization Data Base 12.3.5 Modifying Records in the Authorization Data Base 12.3.6 Removing User Records from the Authorization Data Base 12.3.7 Retrieving Authorization Data Base Information 12.4 User Identities 12.5 File Service Security 13 File Service 13.1 Device Specifications 13.2 Volume Names 13.3 File Specifications 13.4 Procedure for Mounting Multiple Volumes with Identical Volume Labels 13.5 DISK$DEFAULT_VOLUME Device Name 13.6 File Access Listener 13.7 File Service Volumes from VMS 13.8 File Service Operations 13.9 File Utility Procedures 13.9.1 ELN$COPY_FILE Procedure 13.9.2 ELN$CREATE_DIRECTORY Procedure 13.9.3 ELN$DELETE_FILE Procedure 13.9.4 ELN$DIRECTORY_CLOSE Procedure 13.9.5 ELN$DIRECTORY_LIST Procedure 13.9.6 ELN$DIRECTORY_OPEN Procedure 13.9.7 ELN$PROTECT_FILE Procedure 13.9.8 ELN$RENAME_FILE Procedure 13.9.9 ELN$SET_DEFAULT_FILESPEC Procedure 13.10 Disk Utility Procedures 13.10.1 ELN$DISMOUNT_VOLUME Procedure 13.10.2 ELN$INIT_VOLUME Procedure 13.10.3 ELN$MOUNT_VOLUME Procedure 13.11 Tape Utility Procedures 13.11.1 ELN$DISMOUNT_TAPE_VOLUME Procedure 13.11.2 ELN$INIT_TAPE_VOLUME Procedure 13.11.3 ELN$MOUNT_TAPE_VOLUME Procedure 13.12 File Service Interface for Disk and Tape Drivers 13.13 Data Access Protocol 13.13.1 DAP General Principles 13.13.2 Action Routines and DAP$SERVER 13.13.3 DAP Data Types 13.13.4 DAP Constants 13.13.5 DAP Wildcard Functions 14 VAXELN Device Drivers 14.1 Disk Drivers 14.1.1 Logical I/O 14.1.2 Disk Specifications 14.1.3 Disk Driver Interface to the File Service 14.1.4 Recovery from Power Failure 14.1.5 Direct Device Access for Disk Devices 14.1.5.1 Establishing Circuits for the DDA Disk Interface 14.1.5.2 Reading Data from and Writing Data to a Local Disk 14.1.5.3 Reading Logical Blocks from an Unmounted Disk 14.1.5.4 Reading Logical Blocks from a Mounted Disk 14.1.5.5 Transferring Data to a System Region 14.1.6 Virtual-Memory Disk Driver 14.2 Tape Driver 14.2.1 Logical I/O 14.2.2 Tape Specifications 14.2.3 Tape Driver Interface to the File Service 14.2.4 Recovery from Power Failure 14.2.5 Recovery from Errors 14.3 Printer Drivers 14.3.1 Accessing Printer Devices 14.3.2 Printer Driver Characteristics 14.4 Terminal Drivers 14.4.1 Terminal I/O 14.4.2 Type-Ahead and Synchronization 14.4.3 Terminating Lines of Input 14.4.4 Setting Up Point-to-Point DDCMP Communication 14.4.5 Direct Device Access for Serial-Line Devices 14.4.5.1 Establishing Circuits for Serial-Line Communication 14.4.5.2 Retrieving and Setting Terminal Characteristics 14.4.5.3 Reading Data from and Writing Data to a Serial Line 14.4.5.4 Setting a Serial Line to the Spacing State 14.4.5.5 Monitoring the Use of Out-of-Band Characters 14.4.6 Using Control Characters 14.4.7 Using Escape and Control Sequences 14.4.7.1 Using VT52-Type Escape Sequences 14.4.8 Using Modem Control 14.4.8.1 Retrieving and Setting Modem Characteristics 14.4.8.2 Monitoring Modem Events 14.4.9 Performing Parallel I/O 14.5 Small Computer System Interface Driver 14.5.1 Using the VAXELN SCSI Disk Class Driver 14.5.2 Using the VAXELN SCSI Generic Class Driver 14.5.2.1 Connecting to the Generic Class Driver 14.5.2.2 Requesting SCSI Bus Configuration Data 14.5.2.3 Connecting to SCSI Devices 14.5.2.4 Issuing SCSI Commands 14.5.2.5 Programming a Generic Class Driver Message Interface Application 14.5.3 Developing User-Defined SCSI Class Drivers 14.5.3.1 Modifying the SCSI Driver Start-Up Module 14.5.3.2 Programming SCSI Class Drivers 14.5.3.2.1 Defining Device Locks 14.5.3.2.2 Setting Up an Entry Point 14.5.3.2.3 Checking for Devices to Service 14.5.3.2.4 Setting the Current Connection Flag 14.5.3.2.5 Allocating I/O Request Packets for Devices 14.5.3.2.6 Mapping Data Buffers for I/O Requests 14.5.3.2.7 Issuing SCSI Commands 14.5.3.2.8 Initializing a SCSI Device Controller 14.5.3.3 Compiling and Linking the SCSI Driver Modules 14.6 Realtime Device Drivers 14.6.1 ADQ32 DMA Analog-to-Digital Converter 14.6.2 ADV11-C/AXV11-C Analog-to-Digital Converter 14.6.3 ADV11-D DMA Analog-to-Digital Converter 14.6.4 DLVJ1 Asynchronous Serial-line Controller 14.6.5 DRB32 DMA Parallel-Line Interface 14.6.6 DRQ3B DMA Parallel-Line Interface 14.6.7 DRV11-J Parallel-Line Interface 14.6.8 DRV11-W DMA Parallel-Line Interface 14.6.9 IEQ11-A and IEU11-A Dual IEC/IEEE Instrument Bus Interfaces 14.6.10 KWV11-C Realtime Clock A Status Values/Exception Names B Machine-Check Stack Frames B.1 Obtaining a Machine-Check Stack Frame B.2 Machine-Check Stack Frame for MicroVAX I Processors B.3 Machine-Check Stack Frame for MicroVAX II and 2000, VAXstation II and 2000, and KA800 Processors B.4 Machine-Check Stack Frame for rtVAX 300, MicroVAX 3 nnn Series, VAXstation 3100, 3200, and 3500, and VAX 6000-2 nn anS B.5 Machine-Check Stack Frame for VAX 6000-4 nn Series Processors B.6 Machine-Check Stack Frame for VAX 8200 and 8250 Processors B.7 Machine-Check Stack Frame for VAX 8500, 8550, 8700, 8800, and 8810 Processors B.8 Machine-Check Stack Frame for VAX-11/730 Processors B.9 Machine-Check Stack Frame for VAX-11/750 Processors C VMS Emulation Routines C.1 VMS Emulation Routine Summary C.2 Calling VMS Emulation Routines C.3 VMS System Service Emulation Routine Descriptions C.4 LIB$ Emulation Routine Descriptions C.5 STR$ Emulation Routine Description D SCSI Port Driver Interface Routines PORT$ALLOCATE_DEVICE PORT$EXIT_HANDLER PORT$FREE_DEVICE PORT$INITIALIZE_CONTROLLER PORT$ISSUE_COMMAND PORT$MAP_BUFFER PORT$UNMAP_BUFFER EXAMPLES 5-1 Using Queues for Process Communication 5-2 Disconnecting the Partner Port After a Disconnect Operation 5-3 Synchronizing Access to Areas with Events 5-4 Synchronizing Job Execution with Semaphores 6-1 Using the KER$ENTER_KERNEL_CONTEXT Procedure 7-1 Using Message Files 8-1 Sample Network Interface Application 9-1 Managing and Monitoring Down-Line Load Data Base Node Entries 9-2 Managing and Monitoring Down-Line Load Data Base Line Entries 9-3 Trigger Booting a VAXELN Target Node 9-4 Down-Line Loading a VAXELN System Image 10-1 Sample UDP Server 10-2 Sample UDP Client 10-3 Sample TCP/IP Server 10-4 Sample TCP/IP Client 11-1 LAT Dedicated Service 11-2 LAT Application Service 14-1 Reading Logical Blocks from an Unmounted Disk 14-2 Reading Logical Blocks from a Mounted Disk 14-3 Transferring Data to a System Region 14-4 Using the Virtual-Memory Driver 14-5 Reading and Writing Serial-Line Data 14-6 Reading and Writing Serial-Line Data Using a User-Defined Message 14-7 Monitoring the Use of Out-of-Band Characters 14-8 Monitoring Modem Events 14-9 Programming a SCSI Generic Class Driver Message Interface Application 14-10 Modifying the SCSI Driver Start-Up Module FIGURES 1-1 A VAXELN Application 1-2 VAXELN System Software 1-3 Runtime Environment 1-4 Process Family 1-5 Loosely Coupled Multiprocessing Configuration 1-6 Tightly Coupled Symmetric Multiprocessing Configuration 1-7 Closely Coupled Symmetric Multiprocessing Configuration with VAXELN Primary System 1-8 Closely Coupled Symmetric Multiprocessing Configuration with VMS Primary System 2-1 PORT Value Representation 3-1 Valid Process State Transitions 3-2 Job and Process Priorities 3-3 Combined Priority Representation 3-4 Memory Allocation 3-5 System Region 3-6 Program Region 3-7 Control Region 7-1 A Procedure's Stack Frame 7-2 A Frame Structure After a Procedure Call 7-3 Call Frame Block 7-4 Signal Arguments 7-5 Mechanism Arguments 8-1 A Two-Node VAXELN Network Using the Datagram Service 9-1 A Two-Node VAXELN Network Using the Network Service 9-2 Target-Initiated Down-Line Load Request 9-3 Trigger Boot Request 9-4 Down-Line Load Request 10-1 Client-Server Model 10-2 Internet Layers 10-3 Routing Table 10-4 Routing Algorithm 11-1 Sample VAXELN LAT Configuration 11-2 VAXELN LAT Port 11-3 Dedicated Service Environment 11-4 Application Device Environment 12-1 Authorization Service Example 12-2 Protection Mask 13-1 DAP Message Transmission (Read Request) 14-1 A VAXELN Serial DDCMP Link 14-2 SCSI Class/Port Driver Architecture 14-3 SCSI Device Markers B-1 Machine-Check Stack Frame for MicroVAX I Processors B-2 Machine-Check Stack Frame for MicroVAX II and 2000, VAXstation II and 2000, and KA800 Processors B-3 Machine-Check Stack Frame for rtVAX 300, MicroVAX 3 nnn Series, VAXstation 3100, 3200, and 3500, and VAX 6000-2 nnS B-4 Machine-Check Stack Frame for VAX 6000-4 nn Series Processors B-5 Machine-Check Stack Frame for VAX 8200 and 8250 Processors B-6 Machine-Check Stack Frame for VAX 8500, 8550, 8700, 8800, and 8810 Processors B-7 Machine-Check Stack Frame for VAX-11/730 Processors B-8 Machine-Check Stack Frame for VAX-11/750 Processors TABLES 1-1 Runtime System Components 2-1 Kernel Objects 2-2 Optimized Data Structures 3-1 Process States 6-1 Interrupt Priority Levels 7-1 VAXELN Message Files 8-1 Ethernet/IEEE 802 Datalink Drivers 8-2 Ethernet Controller Device Types 8-3 Portal Message Formats 8-4 Portal Multiplexing Fields 9-1 Down-Line Load Data Base Node Characteristics 9-2 Down-Line Load Data Base Line Characteristics 10-1 UDP Characteristics 10-2 TCP Characteristics 10-3 Network Class Number Ranges 10-4 Broadcast Addresses 10-5 Socket Protocol Types 10-6 Calling Sequence for Socket Communication 10-7 Socket-Level Socket Options 13-1 Storage Device Types 14-1 Disk Drivers 14-2 Disk Devices 14-3 Tape Specifications 14-4 Printer Drivers 14-5 Printer Driver Characteristics 14-6 Terminal Drivers 14-7 Terminal Driver Characteristics 14-8 Control Characters 14-9 Modem Control Signals 14-10 Modem Characteristics 14-11 SCSI Device Characteristics 14-12 VAXELN SCSI Driver Components 14-13 SCSI Bus Configuration Data 14-14 Realtime Devices 14-15 IEQ11-A/IEU11-A Interface Routines A-1 Status Values/Exception Names B-1 Machine-Check Type Codes for MicroVAX I Processors B-2 Machine-Check Type Codes for MicroVAX II and 2000, VAXstation II and 2000, and KA800 Processors B-3 Machine-Check Type Codes for rtVAX 300, MicroVAX 3 nnn Series, VAXstation 3100, 3200, and 3500, and VAX 6000-2 nn S B-4 Machine-Check Type Codes for VAX 6000-4 nn Series Processors B-5 Machine-Check Stack Frame Contents for VAX 8500, 8550, 8700, 8800, and 8810 Processors B-6 Machine-Check Error Type Codes for VAX-11/730 Processors B-7 Machine-Check Error Codes for VAX-11/750 Processors C-1 VMS System Service Emulation Routines C-2 VMS Runtime Library Emulation Routines C-3 SYS$ASCTIM System Service Call Format C-4 SYS$GETIM System Service Call Format C-5 SYS$UNWIND System Service Call Format C-6 LIB$ADD_TIMES Routine Call Format C-7 LIB$ADDX Routine Call Format C-8 LIB$ANALYZE_SDESC Routine Call Format C-9 LIB$CREATE_USER_VM_ZONE Routine Call Format C-10 LIB$CREATE_VM_ZONE Routine Call Format C-11 LIB$CVT_DTB Routine Call Format C-12 LIB$CVT_HTB Routine Call Format C-13 LIB$CVT_OTB Routine Call Format C-14 LIB$DELETE_VM_ZONE Routine Call Format C-15 LIB$EDIV Routine Call Format C-16 LIB$EMUL Routine Call Format C-17 LIB$FLT_UNDER Routine Call Format C-18 LIB$FREE_VM Routine Call Format C-19 LIB$FREE_VM_PAGE Routine Call Format C-20 LIB$GET_INPUT Routine Call Format C-21 LIB$GET_VM Routine Call Format C-22 LIB$GET_VM_PAGE Routine Call Format C-23 LIB$INT_OVER Routine Call Format C-24 LIB$LEN Routine Call Format C-25 LIB$MATCH_COND Routine Call Format C-26 LIB$MULT_DELTA_TIME Routine Call Format C-27 LIB$MULTF_DELTA_TIME Routine Call Format C-28 LIB$PUT_OUTPUT Routine Call Format C-29 LIB$RESET_VM_ZONE Routine Call Format C-30 LIB$SCOPY_DXDX Routine Call Format C-31 LIB$SCOPY_R_DX Routine Call Format C-32 LIB$SIGNAL Routine Call Format C-33 LIB$SIG_TO_RET Routine Call Format C-34 LIB$STOP Routine Call Format C-35 LIB$SUB_TIMES Routine Call Format C-36 LIB$SUBX Routine Call Format C-37 STR$ANALYZE_SDESC Routine Call Format