Part 3 |
Part 3
|
Addressing and Memory Management
|
Chapter 10 |
10
|
Overview of Virtual Address Space
|
10.1
|
Using 64-Bit Addresses
|
10.2
|
Traditional OpenVMS 32-Bit Virtual Address Space Layout
|
10.3
|
OpenVMS Alpha 64-Bit Virtual Address Space Layout
|
10.3.1
|
Process-Private Space
|
10.3.2
|
System Space
|
10.3.3
|
Page Table Space
|
10.3.4
|
Virtual Address Space Size
|
10.4
|
Virtual Regions
|
10.4.1
|
Regions Within P0 Space and P1 Space
|
10.4.2
|
64-Bit Program Region
|
10.4.3
|
User-Defined Virtual Regions
|
Chapter 11 |
11
|
Support for 64-Bit Addressing (Alpha Only)
|
11.1
|
System Services Support for 64-Bit Addressing
|
11.1.1
|
System Services Terminology
|
11.1.2
|
Comparison of 32-Bit and 64-Bit Descriptors
|
11.1.3
|
Comparison of 32-Bit and 64-Bit Item Lists
|
11.1.3.1
|
32-Bit Item Lists
|
11.1.3.2
|
64-Bit Item Lists
|
11.1.4
|
System Services That Support 64-Bit Addresses
|
11.1.5
|
Sign-Extension Checking
|
11.1.6
|
Language Support for 64-Bit System Services
|
11.1.7
|
NEW STARLET Definitions for C
|
11.2
|
RMS Interface Enhancements for 64-Bit Addressing
|
11.2.1
|
RAB64 Data Structure
|
11.2.2
|
Using the 64-Bit RAB Extension
|
11.2.3
|
Macros to Support User RAB Structure
|
11.3
|
File System Support for 64-Bit Addressing
|
11.4
|
OpenVMS Alpha 64-Bit API Guidelines
|
11.4.1
|
Quadword/Longword Argument Pointer Guidelines
|
11.4.2
|
Alpha/VAX Guidelines
|
11.4.3
|
Promoting an API from a 32-Bit API to a 64-Bit API
|
11.4.4
|
Example of a 32-Bit Routine and a 64-Bit Routine
|
11.5
|
OpenVMS Alpha Tools and Utilities That Support 64-Bit Addressing
|
11.5.1
|
OpenVMS Debugger
|
11.5.2
|
OpenVMS Alpha System-Code Debugger
|
11.5.3
|
Delta/XDelta
|
11.5.4
|
LIB$ and CVT$ Facilities of the OpenVMS Run-Time Library
|
11.5.5
|
Watchpoint Utility
|
11.5.6
|
SDA
|
11.6
|
Language and Pointer Support for 64-Bit Addressing
|
11.7
|
Compaq C RTL Support for 64-Bit Addressing
|
11.7.1
|
Using the Compaq C Run-Time Library
|
11.7.2
|
Obtaining 64-Bit Pointers to Memory
|
11.7.3
|
Compaq C Header Files
|
11.7.4
|
Functions Affected
|
11.7.4.1
|
No Pointer-Size Impact
|
11.7.4.2
|
Functions Accepting Both Pointer Sizes
|
11.7.4.3
|
Functions with Two Implementations
|
11.7.4.4
|
Functions Restricted to 32-Bit Pointers
|
11.7.5
|
Reading Header Files
|
Chapter 12 |
12
|
Memory Management Services and Routines on OpenVMS Alpha
|
12.1
|
Virtual Page Sizes (Alpha Only)
|
12.2
|
Virtual Address Space
|
12.3
|
Levels of Memory Allocation Routines
|
12.4
|
Using System Services for Memory Allocation
|
12.4.1
|
Increasing and Decreasing Virtual Address Space
|
12.4.2
|
Input Address Arrays and Return Address Arrays
|
12.4.3
|
Allocating Memory in Existing Virtual Address Space on Alpha Systems (Alpha Only)
|
12.4.4
|
Page Ownership and Protection
|
12.4.5
|
Working Set Paging (Alpha Only)
|
12.4.6
|
Process Swapping
|
12.4.7
|
Sections
|
12.4.7.1
|
Creating Sections
|
12.4.7.2
|
Opening the Disk File
|
12.4.7.3
|
Defining the Section Extents
|
12.4.7.4
|
Defining the Section Characteristics
|
12.4.7.5
|
Defining Global Section Characteristics
|
12.4.7.6
|
Global Section Name
|
12.4.7.7
|
Mapping Sections
|
12.4.7.8
|
Mapping Global Sections
|
12.4.7.9
|
Global Page-File Sections
|
12.4.7.10
|
Mapping into a Defined Address Range (Alpha Only)
|
12.4.7.11
|
Mapping from an Offset into a Section File (Alpha Only)
|
12.4.7.12
|
Section Paging
|
12.4.7.13
|
Reading and Writing Data Sections
|
12.4.7.14
|
Releasing and Deleting Sections
|
12.4.7.15
|
Writing Back Sections
|
12.4.7.16
|
Memory-Resident Global Sections
|
12.4.7.17
|
Image Sections
|
12.4.7.18
|
Page Frame Sections
|
12.4.7.19
|
Partial Sections (Alpha Only)
|
12.4.8
|
Example of Using Memory Management System Services (Alpha Only)
|