Preface |
Preface
|
Preface
|
Chapter 1 |
1
|
Introduction
|
1.1
|
Using 64-Bit Addresses
|
1.2
|
Using VLM Features
|
Chapter 2 |
2
|
Overview of Virtual Address Space
|
2.1
|
Traditional OpenVMS 32-Bit Virtual Address Space Layout
|
2.2
|
OpenVMS Alpha 64-Bit Virtual Address Space Layout
|
2.2.1
|
Process-Private Space
|
2.2.2
|
System Space
|
2.2.3
|
Page Table Space
|
2.2.4
|
Virtual Address Space Size
|
2.3
|
Virtual Regions
|
2.3.1
|
Regions Within P0 Space and P1 Space
|
2.3.2
|
64-Bit Program Region
|
2.3.3
|
User-Defined Virtual Regions
|
Chapter 3 |
3
|
System Services Support for 64-Bit Addressing
|
3.1
|
System Services Terminology
|
3.2
|
System Services That Support 64-Bit Addresses
|
3.3
|
Sign-Extension Checking
|
3.4
|
Language Support for 64-Bit System Services
|
3.5
|
NEW STARLET Definitions for C
|
Chapter 4 |
4
|
Memory Management VLM Features
|
4.1
|
Overview of VLM Features
|
4.2
|
Memory-Resident Global Sections
|
4.3
|
Fast I/O and Buffer Objects for Global Sections
|
4.3.1
|
Comparison of $QIO and Fast I/O
|
4.3.2
|
Overview of Locking Buffers
|
4.3.3
|
Overview of Buffer Objects
|
4.3.4
|
Creating and Using Buffer Objects
|
4.4
|
Shared Page Tables
|
4.4.1
|
Memory Requirements for Private Page Tables
|
4.4.2
|
Shared Page Tables and Private Data
|
4.5
|
Expandable Global Page Table
|
4.6
|
Reserved Memory Registry
|
4.6.1
|
Using the Reserved Memory Registry
|
4.6.1.1
|
Reserved Memory Registry Data File
|
4.6.1.2
|
AUTOGEN
|
4.6.1.3
|
Adding Entries to the Reserved Memory Registry
|
4.6.2
|
Removing Entries from the Reserved Memory Registry
|
4.6.2.1
|
Allocating Reserved Memory
|
4.6.2.2
|
Freeing Reserved Memory
|
4.6.2.3
|
Displaying Reserved Memory
|
4.6.2.4
|
Using Reserved Memory
|
4.6.2.5
|
Returning Reserved Memory
|
4.6.3
|
Application Configuration
|
Chapter 5 |
5
|
RMS Interface Enhancements for 64-Bit Addressing
|
5.1
|
RAB64 Data Structure
|
5.2
|
Using the 64-Bit RAB Extension
|
5.3
|
Macros to Support User RAB Structure
|
Chapter 6 |
6
|
File System Support for 64-Bit Addressing
|
Chapter 7 |
7
|
OpenVMS Alpha Device Support for 64-Bit Addressing
|
7.1
|
$QIO Support for 64-Bit Addresses
|
7.2
|
OpenVMS Drivers Supporting 64-Bit Addresses
|
7.3
|
Function Codes that Support 64-Bit Addresses
|
7.4
|
64-Bit IO$_DIAGNOSE Function for SCSI Class Drivers
|
7.4.1
|
64-Bit S2DGB Example
|
Chapter 8 |
8
|
OpenVMS Alpha 64-Bit API Guidelines
|
8.1
|
Quadword/Longword Argument Pointer Guidelines
|
8.2
|
Alpha/VAX Guidelines
|
8.3
|
Promoting an API from a 32-Bit API to a 64-Bit API
|
8.4
|
Example of a 32-Bit Routine and a 64-Bit Routine
|
Chapter 9 |
9
|
OpenVMS Alpha Tools and Utilities That Support 64-Bit Addressing
|
9.1
|
OpenVMS Debugger
|
9.2
|
OpenVMS Alpha System-Code Debugger
|
9.3
|
Delta/XDelta
|
9.4
|
LIB$ and CVT$ Facilities of the OpenVMS Run-Time Library
|
9.5
|
Watchpoint Utility
|
9.6
|
SDA
|
Chapter 10 |
10
|
Language and Pointer Support for 64-Bit Addressing
|
Chapter 11 |
11
|
DEC C RTL Support for 64-Bit Addressing
|
11.1
|
Using the DEC C Run-Time Library
|
11.2
|
Obtaining 64-Bit Pointers to Memory
|
11.3
|
DEC C Header Files
|
11.4
|
Functions Affected
|
11.4.1
|
No Pointer-Size Impact
|
11.4.2
|
Functions Accepting Both Pointer Sizes
|
11.4.3
|
Functions with Two Implementations
|
11.4.4
|
Functions Restricted to 32-Bit Pointers
|
11.5
|
Reading Header Files
|
Chapter 12 |
12
|
MACRO--32 Programming Support for 64-Bit Addressing
|
12.1
|
Guidelines for 64-Bit Addressing
|
12.2
|
New and Changed Components for 64-Bit Addressing
|
12.3
|
Passing 64-Bit Values
|
12.3.1
|
Calls with a Fixed-Size Argument List
|
12.3.1.1
|
Usage Notes for $SETUP_CALL64, $PUSH_ARG64, and $CALL64
|
12.3.2
|
Calls with a Variable-Size Argument List
|
12.4
|
Declaring 64-Bit Arguments
|
12.4.1
|
Usage Notes for QUAD_ARGS
|
12.5
|
Specifying 64-Bit Address Arithmetic
|
12.5.1
|
Dependence on Wrapping Behavior of Longword Operations
|
12.6
|
Sign Extending and Checking
|
12.7
|
Alpha Instruction Built-ins
|
12.8
|
Calculating Page-Size Dependent Values
|
12.9
|
Creating and Using Buffers in 64-Bit Address Space
|
12.10
|
Coding for Moves Longer Than 64 KB
|
12.11
|
Using the MACRO--32 Compiler
|