HP OpenVMS Systems Documentation
HP OpenVMS Programming Concepts Manual
Previous
Contents
Index
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
Previous
Next
Contents
Index