HP OpenVMS Systems Documentation
OpenVMS Calling Standard
Begin
Index
Contents (summary)
Preface
Preface
Chapter 1
Introduction
Chapter 2
OpenVMS VAX Conventions
Chapter 3
OpenVMS Alpha Conventions
Chapter 4
OpenVMS Argument Data Types
Chapter 5
OpenVMS Argument Descriptors
Chapter 6
OpenVMS Conditions
Index
Figures
Examples
Tables
Contents
Preface
Preface
Preface
Chapter 1
1
Introduction
1.1
Applicability
1.2
Architectural Level
1.3
Goals
1.4
Definitions
Chapter 2
2
OpenVMS VAX Conventions
2.1
Register Usage
2.1.1
Scalar Register Usage
2.1.2
Vector Register Usage
2.2
Stack Usage
2.3
Calling Sequence
2.4
Argument List
2.4.1
Format
2.4.2
Argument Lists and High-Level Languages
2.4.2.1
Order of Argument Evaluation
2.4.2.2
Language Extensions for Argument Transmission
2.5
Function Value Returns
2.5.1
Returning a Function Value on Top of the Stack
2.5.1.1
Returning a Fixed-Length or Varying String Function Value
2.6
Vector and Scalar Processor Synchronization
2.6.1
Memory Synchronization
2.6.2
Exception Synchronization
Chapter 3
3
OpenVMS Alpha Conventions
3.1
Register Usage
3.1.1
Integer Registers
3.1.2
Floating-Point Registers
3.2
Address Representation
3.3
Procedure Representation
3.4
Procedure Types
3.4.1
Stack Frame Procedures
3.4.2
Procedure Descriptor for Procedures with a Stack Frame
3.4.3
Stack Frame Format
3.4.3.1
Fixed-Size Stack Frame
3.4.3.2
Variable-Size Stack Frame
3.4.3.3
Fixed Temporary Locations for All Stack Frames
3.4.3.4
Register Save Area for All Stack Frames
3.4.4
Register Frame Procedure
3.4.5
Procedure Descriptor for Procedures with a Register Frame
3.4.6
Null Frame Procedures
3.4.7
Procedure Descriptor for Null Frame Procedures
3.5
Procedure Signatures
3.5.1
Call Parameter PSIG Conversions
3.5.1.1
Native-to-Translated Code PSIG Conversions
3.5.1.2
Translated-to-Native Code PSIG Conversions
3.5.2
Default Procedure Signature
3.6
Procedure Call Chain
3.6.1
Current Procedure
3.6.2
Procedure Call Tracing
3.6.2.1
Referring to a Procedure Invocation from a Data Structure
3.6.2.2
Invocation Context Block
3.6.2.3
Getting a Procedure Invocation Context with a Routine
3.6.2.4
Walking the Call Chain
3.6.3
Invocation Context Access Routines
3.6.3.1
LIB$GET_INVO_CONTEXT
3.6.3.2
LIB$GET_CURR_INVO_CONTEXT
3.6.3.3
LIB$GET_PREV_INVO_CONTEXT
3.6.3.4
LIB$GET_INVO_HANDLE
3.6.3.5
LIB$GET_PREV_INVO_HANDLE
3.6.3.6
LIB$PUT_INVO_REGISTERS
3.7
Transfer of Control
3.7.1
Call Conventions
3.7.2
Linkage Section
3.7.3
Calling Computed Addresses
3.7.4
Bound Procedure Descriptors
3.7.4.1
Bound Procedure Value
3.7.5
Entry and Exit Code Sequences
3.7.5.1
Entry Code Sequence
3.7.5.2
Exit Code Sequence
3.8
Data Passing
3.8.1
Argument-Passing Mechanisms
3.8.2
Argument List Structure
3.8.3
Argument Lists and High-Level Languages
3.8.4
Unused Bits in Passed Data
3.8.5
Sending Data
3.8.5.1
Sending Mechanism
3.8.5.2
Order of Argument Evaluation
3.8.6
Receiving Data
3.8.7
Returning Data
3.8.7.1
Function Value Return by Immediate Value
3.8.7.2
Function Value Return by Reference
3.8.7.3
Function Value Return by Descriptor
3.9
Static Data
3.9.1
Alignment
3.9.2
Record Layout Conventions
3.9.2.1
Aligned Record Layout
3.9.2.2
OpenVMS VAX Compatible Record Layout
3.10
Multithreaded Execution Environments
3.10.1
Stack Limit Checking
3.10.1.1
Stack Guard Region
3.10.1.2
Stack Reserve Region
3.10.1.3
Methods for Stack Limit Checking
3.10.1.4
Stack Overflow Handling
Previous
Next
Contents
Index