Part 2 |
Part 2
|
Interrupts and Condition Handling
|
Chapter 8 |
8
|
Using Asynchronous System Traps
|
8.1
|
Overview of AST Routines
|
8.2
|
Declaring and Queuing ASTs
|
8.2.1
|
Reentrant Code and ASTs
|
8.2.1.1
|
The Call Frame
|
8.2.2
|
Shared Data Access with Readers and Writers
|
8.2.3
|
Shared Data Access and AST Synchronization
|
8.2.4
|
User ASTs and Asynchronous Completions
|
8.3
|
Common Mistakes in Asynchronous Programming
|
8.4
|
Using System Services for AST Event and Time Delivery
|
8.5
|
Access Modes for AST Execution
|
8.6
|
Calling an AST
|
8.7
|
Delivering ASTs
|
8.7.1
|
The AST Service Routine
|
8.7.2
|
Conditions Affecting AST Delivery
|
8.7.3
|
Kernel Threads AST Delivery (Alpha Only)
|
8.7.3.1
|
Outer Mode (User and Supervisor) Non-Serial Delivery of ASTs
|
8.7.3.2
|
Inner Mode (Executive and Kernel) AST Delivery
|
8.8
|
ASTs and Process Wait States
|
8.8.1
|
Event Flag Waits
|
8.8.2
|
Hibernation
|
8.8.3
|
Resource Waits and Page Faults
|
8.9
|
Examples of Using AST Services
|
Chapter 9 |
9
|
Condition-Handling Routines and Services
|
9.1
|
Overview of Run-Time Errors
|
9.2
|
Overview of the OpenVMS Condition Handling Facility
|
9.2.1
|
Condition-Handling Terminology
|
9.2.2
|
Functions of the Condition Handling Facility
|
9.3
|
Exception Conditions
|
9.3.1
|
Conditions Caused by Exceptions
|
9.3.2
|
Exception Conditions
|
9.3.3
|
Arithmetic Exceptions
|
9.3.4
|
Unaligned Access Traps (Alpha Only)
|
9.4
|
How Run-Time Library Routines Handle Exceptions
|
9.4.1
|
Exception Conditions Signaled from Mathematics Routines (VAX Only)
|
9.4.1.1
|
Integer Overflow and Floating-Point Overflow
|
9.4.1.2
|
Floating-Point Underflow
|
9.4.2
|
System-Defined Arithmetic Condition Handlers
|
9.5
|
Condition Values
|
9.5.1
|
Return Status Convention
|
9.5.1.1
|
Testing Returned Condition Values
|
9.5.1.2
|
Testing SS$_NOPRIV and SS$_EXQUOTA Condition Values
|
9.5.2
|
Modifying Condition Values
|
9.6
|
Exception Dispatcher
|
9.7
|
Argument List Passed to a Condition Handler
|
9.8
|
Signaling
|
9.8.1
|
Generating Signals with LIB$SIGNAL and LIB$STOP
|
9.8.2
|
Signal Argument Vector
|
9.8.3
|
VAX Mechanism Argument Vector (VAX Only)
|
9.8.4
|
Alpha Mechanism Argument Vector (Alpha Only)
|
9.8.5
|
Multiple Active Signals
|
9.9
|
Types of Condition Handlers
|
9.9.1
|
Default Condition Handlers
|
9.9.2
|
Interaction Between Default and User-Supplied Handlers
|
9.10
|
Types of Actions Performed by Condition Handlers
|
9.10.1
|
Unwinding the Call Stack
|
9.10.2
|
GOTO Unwind Operations (Alpha Only)
|
9.11
|
Displaying Messages
|
9.11.1
|
Chaining Messages
|
9.11.2
|
Logging Error Messages to a File
|
9.11.2.1
|
Creating a Running Log of Messages Using SYS$PUTMSG
|
9.11.2.2
|
Suppressing the Display of Messages in the Running Log
|
9.11.3
|
Using the Message Utility to Signal and Display User-Defined Messages
|
9.11.3.1
|
Creating the Message Source File
|
9.11.3.1.1
|
Specifying the Facility
|
9.11.3.1.2
|
Specifying the Severity
|
9.11.3.1.3
|
Specifying Condition Names and Messages
|
9.11.3.1.4
|
Specifying Variables in the Message Text
|
9.11.3.1.5
|
Compiling and Linking the Messages
|
9.11.3.1.6
|
Linking the Message Object Module
|
9.11.3.1.7
|
Accessing the Message Object Module from Multiple Programs
|
9.11.3.1.8
|
Modifying a Message Source Module
|
9.11.3.1.9
|
Accessing Modified Messages Without Relinking
|
9.11.4
|
Signaling User-Defined Values and Messages with Global and Local Symbols
|
9.11.4.1
|
Signaling with Global Symbols
|
9.11.4.2
|
Signaling with Local Symbols
|
9.11.4.3
|
Specifying FAO Parameters
|
9.12
|
Writing a Condition Handler
|
9.12.1
|
Continuing Execution
|
9.12.2
|
Resignaling
|
9.12.3
|
Unwinding the Call Stack
|
9.12.4
|
Example of Writing a Condition Handler
|
9.12.4.1
|
Signal Array
|
9.12.4.2
|
Mechanism Array
|
9.12.4.3
|
Comparing the Signaled Condition with an Expected Condition
|
9.12.4.4
|
Exiting from the Condition Handler
|
9.12.4.5
|
Returning Control to the Program
|
9.12.5
|
Example of Condition-Handling Routines
|
9.13
|
Debugging a Condition Handler
|
9.14
|
Run-Time Library Condition-Handling Routines
|
9.14.1
|
RTL Jacket Handlers (Alpha Only)
|
9.14.2
|
Converting a Floating-Point Fault to a Floating-Point Trap (VAX Only)
|
9.14.3
|
Changing a Signal to a Return Status
|
9.14.4
|
Changing a Signal to a Stop
|
9.14.5
|
Matching Condition Values
|
9.14.6
|
Correcting a Reserved Operand Condition (VAX Only)
|
9.14.7
|
Decoding the Instruction That Generated a Fault (VAX Only)
|
9.15
|
Exit Handlers
|
9.15.1
|
Establishing an Exit Handler
|
9.15.2
|
Writing an Exit Handler
|
9.15.3
|
Debugging an Exit Handler
|
9.15.4
|
Example of Exit Handler
|