This manual defines the requirements, mechanisms, and conventions that
are used in the UNIX interface that supports procedure calls for
Tru64TM UNIX
for
AlphaTM
systems.
The standard defines the data
structures, constants, algorithms, conventions, methods, and functional interfaces
that enable a native user-mode procedure to operate correctly in a multilanguage
and multithreaded environment on Tru64 UNIX systems operating on Alpha hardware.
Audience
Although this manual primarily defines requirements for compiler and
debugger writers, the information applies to procedure calling for all programmers
at all levels of programming.
New and Changed Features
Changes or additions to information on the following topics have been made to this manual for the Version 5.1 release of Tru64 UNIX:
Chapter 4:
Passing extended-precision complex values by reference -- Section 4.1.2
Passing single- and double-precision complex values as two real values in two argument items -- Section 4.1.6.1
Quadword alignment of global variables -- Section 4.2.1
Granularity requirements of byte and word instructions -- Section 4.2.2
Chapter 5:
Chapter 8:
New fields in code range descriptors and procedure descriptors to define the context of any given instruction in a procedure -- Section 8.1.1 and Section 8.1.2
Examples showing use of code range descriptors and procedure descriptors -- Section 8.1.3
This document includes eight chapters:
Chapter 1 | Introduces the standard and provides definitions of terms used in the standard. |
Chapter 2 | Describes the fundamental concepts of the Tru64 UNIX calling standard for Alpha systems. |
Chapter 3 | Describes the aspects of the standard that deal with flow control. |
Chapter 4 | Discusses the passing and storage of data. |
Chapter 5 | Discusses how the standard relates to events outside the normal program flow. |
Chapter 6 | Discusses stack limit checking in multithreaded execution environments. |
Chapter 7 | Describes the mechanisms for functions that are needed to support procedure call tracing. |
Chapter 8 | Discusses procedure descriptors. |
This Tru64 UNIX calling standard is a component of the larger Alpha Software Architecture and depends on standards and conventions not described in this document. These standards include:
Object language (including link-time optimizations) and object file format
Status values and message definition, formatting, and reporting
Heap memory management and dynamic string management
Multithread architecture
Names and naming conventions
The following documents contain information related to this standard and the standards mentioned in the previous list:
Alpha Architecture Reference Manual, 2nd Edition (Butterworth-Hinemann Press, ISBN:1-55558-145-5)
Guide to DECthreads
Object File/Symbol Table Format Specification (This manual is available in HTML and PDF formats on the Tru64 UNIX Documentation CD-ROM, V5.0 and higher; it is not available in hardcopy or in PostScript format.)
Compaq Portable Mathematics Library
POSIX Conformance Document
Information Technology - Portable Operating System Interface (POSIX) - Part 1: System Application Program Interface (API) [C Language] ISO/IEC 9945-1: 1990
American National Standard for Information Systems Programming Language C - ANSI X3.159-1989 and its international equivalent, ISO/IEC 9899
Icons on Tru64 UNIX Printed Manuals
The printed version of the Tru64 UNIX documentation uses letter icons on the spines of the manuals to help specific audiences quickly find the manuals that meet their needs. (You can order the printed documentation from Compaq.) The following list describes this convention:
G | Manuals for general users |
S | Manuals for system and network administrators |
P | Manuals for programmers |
R | Manuals for reference page users |
Some manuals in the documentation help meet the needs of several audiences. For example, the information in some system manuals is also used by programmers. Keep this in mind when searching for information on specific topics.
The
Documentation Overview
provides
information on all of the manuals in the Tru64 UNIX documentation set.
Reader's Comments
Compaq welcomes any comments and suggestions you have on this and other Tru64 UNIX manuals.
You can send your comments in the following ways:
Fax: 603-884-0120 Attn: UBPG Publications, ZKO3-3/Y32
Internet electronic mail:
readers_comment@zk3.dec.com
A Reader's Comment form is located on your system in the following location:
/usr/doc/readers_comment.txt
Please include the following information along with your comments:
The full title of the manual and the order number. (The order number appears on the title page of printed and PDF versions of a manual.)
The section numbers and page numbers of the information on which you are commenting.
The version of Tru64 UNIX that you are using.
If known, the type of processor that is running the Tru64 UNIX software.
The Tru64 UNIX Publications group cannot respond to system problems or
technical support inquiries.
Please address technical questions to your
local system vendor or to the appropriate Compaq technical support office.
Information provided with the software media explains how to send problem
reports to Compaq.
Conventions
This document uses the following typographical and symbol conventions:
%
$
A percent sign represents the C shell system prompt. A dollar sign represents the system prompt for the Bourne, Korn, and POSIX shells.
%
cat
Boldface type in interactive examples indicates typed user input.
Italic (slanted) type indicates variable values, placeholders, and function argument names.
In syntax definitions, brackets indicate items that are optional and braces indicate items that are required. Vertical bars separating items inside brackets or braces indicate that you choose one item from among those listed.
colored
text
In syntax definitions, literal elements are colored green. Variable values, placeholders, and function argument names are colored red. No special colored text is used outside of syntax descriptions.
cat
(1)A cross-reference to a reference page includes the appropriate section
number in parentheses.
For example,
cat
(1)
indicates that you can find information on the
cat
command in Section 1 of the reference pages.
The following presentation conventions apply to this standard:
Constants, data structures, and functional interfaces
Constants are represented symbolically with their values given at the point of definition in the standard. Data structures are defined in terms of the physical memory format of each structure. Functional interface syntax is presented in abstract form. Concrete language bindings for each constant, data structure, and functional interface are provided in system definition files external to the standard.
Algorithms
Algorithms are presented as a series of steps in standard American English.
Numbering
All numbers are represented as decimal values unless otherwise indicated.
Nondecimal numbers are represented with the base name in parentheses following
the number, for example,
1B(hex)
.
Memory and register layouts
Figures that represent memory or register layouts follow the convention that increasing addresses run from top to bottom and right to left. The most significant bits are on the left; the least significant bits are on the right.
Code examples
All code examples are supplied to clarify the concept under discussion. These examples do not necessarily reflect the optimized or properly scheduled code sequences that a compiler would generate. The assembly language syntax follows the conventions used in the Assembly Language Programmer's Guide.
Record fields
Record fields are referred to by using the name of the record or subrecord followed by a dot (.) and then the field name:
record-name.subrecord-name.field