Chapter 18 |
18
|
Basic Calling Standard Conventions
|
18.1
|
Hardware Registers
|
18.1.1
|
Register Usage for OpenVMS VAX
|
18.1.2
|
Register Usage for OpenVMS Alpha
|
18.1.2.1
|
Integer Registers
|
18.1.2.2
|
Floating-Point Registers
|
18.1.3
|
Register Usage for OpenVMS I64
|
18.1.3.1
|
Partitioning
|
18.1.3.2
|
I64 General Register Usage
|
18.1.3.3
|
I64 Floating-Point Register Usage
|
18.1.3.4
|
I64 Predicate Register Usage
|
18.1.3.5
|
I64 Branch Register Usage
|
18.2
|
Stack Usage for Procedures
|
18.2.1
|
Stack Procedure Usage for VAX
|
18.2.1.1
|
Calling Sequence
|
18.2.1.2
|
Call Frames on Return
|
18.2.2
|
Stack Procedure Usage for Alpha
|
18.2.2.1
|
Fixed-Size Stack Frame
|
18.2.2.2
|
Variable-Size Stack Frame
|
18.2.3
|
Stack Procedure Usage for I64
|
18.2.3.1
|
Procedure Types
|
18.2.3.2
|
Memory Stack
|
18.2.3.3
|
Procedure Frames
|
18.2.3.4
|
Register Stack
|
18.2.3.4.1
|
Input and Local Registers
|
18.2.3.4.2
|
Output Registers
|
18.2.3.4.3
|
Rotating Registers
|
18.2.3.4.4
|
Frame Markers
|
18.2.3.4.5
|
Backing Store for Register Stack
|
18.3
|
Procedure Representation
|
18.4
|
Argument List
|
18.5
|
Argument Passing Mechanisms
|
18.5.1
|
Passing Arguments by Value
|
18.5.2
|
Passing Arguments by Reference
|
18.5.3
|
Passing Arguments by Descriptor
|
18.5.4
|
Parameter Passing Mechanisms for I64
|
18.5.4.1
|
Allocation of Parameter Slots
|
18.5.5
|
Normal Register Parameters
|
18.5.6
|
Argument Information (AI) Register
|
18.5.7
|
Memory Stack Parameters
|
18.5.8
|
Variable Argument Lists
|
18.5.9
|
Pointers to Formal Parameters
|
18.5.9.1
|
Languages Other than C
|
18.5.10
|
Rounding Floating-Point Values
|
18.6
|
Passing Scalars as Arguments
|
18.7
|
Passing Arrays as Arguments
|
18.8
|
Passing Strings as Arguments
|
18.9
|
Combinations of Descriptor Class and Data Type
|
18.10
|
Function Value Return
|
18.11
|
Condition Value Return
|
18.12
|
Macro-32 Register Usage and Mapping for I64
|
18.12.1
|
I64 Register Usage Compared with Alpha and VAX
|
18.12.1.1
|
I64 Register Mapping in MACRO Compiler
|
18.12.1.2
|
Use of MACRO Linkage Directives to Preserve Registers
|
18.12.2
|
High-Level Language Compiler Register Mapping
|
Chapter 19 |
19
|
Calling Run-Time Library Routines
|
19.1
|
Overview
|
19.2
|
Call Instructions
|
19.2.1
|
Facility Prefix and Routine Name
|
19.2.2
|
The RTL Call Entry
|
19.2.2.1
|
JSB Call Entries (VAX Only)
|
19.2.3
|
Returns from an RTL Routine
|
19.2.3.1
|
Facility Return Status and Condition Value Symbols
|
19.3
|
Calling a Library Procedure in VAX MACRO (VAX Only)
|
19.3.1
|
VAX MACRO Calling Sequence
|
19.3.2
|
VAX MACRO CALLS Instruction Example
|
19.3.3
|
VAX MACRO CALLG Instruction Example
|
19.3.4
|
VAX MACRO JSB Entry Points
|
19.3.5
|
Return Status
|
19.3.6
|
Function Return Values in VAX MACRO (VAX and Alpha)
|
19.4
|
Calling a Library Routine in BLISS
|
19.4.1
|
BLISS Calling Sequence
|
19.4.2
|
Accessing a Return Status in BLISS
|
19.4.3
|
Calling JSB Entry Points from BLISS
|
Chapter 20 |
20
|
Calling System Services
|
20.1
|
Overview
|
20.2
|
Preserving System Integrity
|
20.2.1
|
User Privileges
|
20.2.2
|
Resource Quotas
|
20.2.3
|
Access Modes
|
20.3
|
System Service Call Entry
|
20.4
|
System Service Completion
|
20.4.1
|
Asynchronous and Synchronous System Services
|
20.4.2
|
System Service Resource Wait Mode
|
20.4.3
|
Condition Values Returned from System Services
|
20.4.4
|
Testing the Condition Value
|
20.4.4.1
|
Testing the Condition Value With $VMS_STATUS_SUCCESS Macro
|
20.4.5
|
Special Condition Values Using Symbolic Codes
|
20.4.6
|
Testing the Return Condition Value for VAX MACRO
|
20.4.7
|
System Messages Generated by Condition Values
|
20.5
|
Program Examples with System Service Calls
|