Introduction to VMS System Routines

*HyperReader

  CONTENTS

  Title Page

  Copyright Page

  Preface

  1      Documentation Format for System Routines

  1.1     Overview

  1.2     Format Heading

  1.3     Returns Heading
    1.3.1      Condition Values Returned in R0
    1.3.2      Data in Registers R0 Through R11
    1.3.3      Condition Values Signaled

  1.4     Arguments Heading
    1.4.1      VMS Usage Entry
    1.4.2      Type Entry
    1.4.3      Access Entry
    1.4.4      Mechanism Entry
    1.4.5      Explanatory Text Entry

  1.5     Condition Values Returned Heading
    1.5.1      Condition Values Returned
    1.5.2      Condition Values Returned in the I/O Status Block
    1.5.3      Condition Values Returned in a Mailbox
    1.5.4      Condition Values Signaled

  2      VAX Procedure Calling and Condition Handling Standard

  2.1     Introduction
    2.1.1      Goals of the Calling Standard
    2.1.2      Definitions Used in the VAX Calling Standard

  2.2     Calling Sequence

  2.3     Argument List
    2.3.1      Argument List Format
    2.3.2      Argument Lists and Higher-Level Languages
      2.3.2.1      Order of Argument Evaluation
      2.3.2.2      Language Extensions for Argument Transmission

  2.4     Function Value Return

  2.5     Condition Value
    2.5.1      Interpretation of Severity Codes
    2.5.2      Use of Condition Values

  2.6     Register Usage
    2.6.1      Scalar Register Usage
    2.6.2      Vector Register Usage
    2.6.3      Vector and Scalar Processor Synchronization
      2.6.3.1      Memory Synchronization
      2.6.3.2      Exception Synchronization
      2.6.3.3      Synchronization Summary

  2.7     Stack Usage

  2.8     Argument Data Types
    2.8.1      Atomic Data Types
    2.8.2      String Data Types
    2.8.3      Miscellaneous Data Types
    2.8.4      Facility-Specific Data Type Codes
    2.8.5      Reserved Data Type Codes
    2.8.6      COBOL Intermediate Temporary Data Type
    2.8.7      Varying Character String Data Type (DSC$K_DTYPE_VT)

  2.9     Argument Descriptor Formats
    2.9.1      Descriptor Prototype
    2.9.2      Fixed-Length Descriptor (DSC$K_CLASS_S)
    2.9.3      Dynamic String Descriptor (DSC$K_CLASS_D)
    2.9.4      Variable Buffer Descriptor (DSC$K_CLASS_V)
    2.9.5      Array Descriptor (DSC$K_CLASS_A)
    2.9.6      Procedure Descriptor (DSC$K_CLASS_P)
    2.9.7      Procedure Incarnation Descriptor (DSC$K_CLASS_PI)
    2.9.8      Label Descriptor (DSC$K_CLASS_J)
    2.9.9      Label Incarnation Descriptor (DSC$K_CLASS_JI)
    2.9.10     Decimal String Descriptor (DSC$K_CLASS_SD)
    2.9.11     Noncontiguous Array Descriptor (DSC$K_CLASS_NCA)
    2.9.12     Varying String Descriptor (DSC$K_CLASS_VS)
    2.9.13     Varying String Array Descriptor (DSC$K_CLASS_VSA)
    2.9.14     Unaligned Bit String Descriptor (DSC$K_CLASS_UBS)
    2.9.15     Unaligned Bit Array Descriptor (DSC$K_CLASS_UBA)
    2.9.16     String with Bounds Descriptor (DSC$K_CLASS_SB)
    2.9.17     Unaligned Bit String with Bounds Descriptor (DSC$K_CLASS_UBSB)
    2.9.18     Facility-Specific Descriptor Class Codes
    2.9.19     Reserved Descriptor Class Codes

  2.10    VAX Conditions
    2.10.1     Condition Handlers
    2.10.2     Condition Handler Options

  2.11    Operations Involving Condition Handlers
    2.11.1     Establishing a Condition Handler
    2.11.2     Reverting to the Caller's Handling
    2.11.3     Signaling a Condition

  2.12    Properties of Condition Handlers
    2.12.1     Condition Handler Parameters and Invocation
    2.12.2     System Default Condition Handlers
    2.12.3     Use of Memory
    2.12.4     Returning from a Condition Handler
    2.12.5     Request to Unwind
    2.12.6     Signaler's Registers

  2.13    Multiple Active Signals

  A   VMS Data Types

  A.1     VMS Data Types

  A.2     VAX Ada Implementation

  A.3     VAX APL Implementation

  A.4     VAX BASIC Implementation

  A.5     VAX BLISS Implementation

  A.6     VAX C Implementation

  A.7     VAX COBOL Implementation

  A.8     VAX FORTRAN Implementation

  A.9     VAX MACRO Implementation

  A.10   VAX Pascal Implementation

  A.11   VAX PL/I Implementation

  A.12   VAX RPG II Implementation

  A.13   VAX SCAN Implementation

  FIGURES

  2-1        Argument List Format

  2-2        Format of the Condition Value

  2-3        Stack Frame Generated by CALLG and CALLS Instructions

  2-4        Descriptor Prototype Format

  2-5        Fixed-Length Descriptor Format

  2-6        Dynamic String Descriptor Format

  2-7        Array Descriptor Format

  2-8        Procedure Descriptor Format

  2-9        Decimal String Descriptor Format

  2-10       Noncontiguous Array Descriptor Format

  2-11       Varying String Descriptor Format

  2-12       Varying String Array Descriptor Format

  2-13       Unaligned Bit String Descriptor Format

  2-14       Unaligned Bit Array Descriptor Format

  2-15       String with Bounds Descriptor Format

  2-16       Unaligned Bit String with Bounds Descriptor Format

  2-17       Interaction Between Handlers and Default Handlers

  2-18       Format of the Mechanism Argument Vector

  2-19       Format of the Signal Argument Vector

  TABLES

  1-1        Main Heading in the Documentation Format for System Routines

  1-2        General Rules of Syntax

  1-3        VAX Standard Data Types

  1-4        Descriptor Passing Mechanism Class Types

  2-1        Atomic Data Types

  2-2        String Data Types

  2-3        Miscellaneous Data Types

  A-1        VMS Data Types

  A-2        VAX Ada Implementation

  A-3        VAX APL Implementation

  A-4        VAX BASIC Implementation

  A-5        VAX BLISS Implementation

  A-6        VAX C Implementation

  A-7        VAX COBOL Implementation

  A-8        VAX FORTRAN Implementation

  A-9        VAX MACRO Implementation

  A-10       VAX Pascal Implementation

  A-11       VAX PL/I Implementation

  A-12       VAX RPG II Implementation

  A-13       VAX SCAN Implementation