Document revision date: 19 July 1999
[Compaq] [Go to the documentation home page] [How to order documentation] [Help on this site] [How to contact us]
[OpenVMS 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

  [Go to the documentation home page] [How to order documentation] [Help on this site] [How to contact us]  
  privacy and legal statement  
5973PRO_CONTENTS.HTML