Information technology — POSIX Ada Language Interfaces — Binding for System Application Program Interface (API)

Abstract: This standard is part of the POSIX ® series of standards for applications and user inter-faces to open systems. It defines the Ada language bindings as package specifications and accompanying textual descriptions of the application program interface (API). This standard supports application portability at the source code level through the binding between ISO 8652:1995 (Ada) and ISO/IEC 9945-1:1996 (IEEE Std 1003.1-1996) (POSIX) as amended by IEEE P1003.1g/D6.6. Terminology and general requirements, process primitives, the process environment, files and directories, input and output primaries, device- and classspecific functions, language-specific services for Ada, system databases, synchronization, memory management, execution scheduling, clocks and timers, message passing, task management, the XTI and socket detailed network inter-faces, event management, network support functions, and protocol-specific mappings are covered. It also specifies behavior to support the binding that must be provided by the Ada.

Technologies de l'information — Interfaces de langage POSIX Ada — Boucle pour interface de programme d'application système (API)

General Information

Status
Published
Publication Date
19-Dec-2001
Current Stage
9093 - International Standard confirmed
Start Date
24-Sep-2024
Completion Date
30-Oct-2025
Ref Project

Relations

Standard
ISO/IEC 14519:2001 - Information technology -- POSIX Ada Language Interfaces -- Binding for System Application Program Interface (API)
English language
871 pages
sale 15% off
Preview
sale 15% off
Preview
Standard
ISO/IEC 14519:2001 - Information technology -- POSIX Ada Language Interfaces -- Binding for System Application Program Interface (API)
English language
871 pages
sale 15% off
Preview
sale 15% off
Preview

Standards Content (Sample)


INTERNATIONAL ISO/IEC
STANDARD 14519
IEEE
Std 1003.5
Second edition
2001-12-15 ®
Information technology — POSIX Ada
Language Interfaces — Binding for System
Application Program Interface (API) ®
Technologies de l'information — Interfaces de langage POSIX Ada —
Boucle pour interface de programme d'application système (API)
Reference number
IEEE
Std 1003.5, 1999 edition
PDF disclaimer
This PDF file may contain embedded typefaces. In accordance with Adobe's licensing policy, this file may be printed or viewed but shall not
be edited unless the typefaces which are embedded are licensed to and installed on the computer performing the editing. In downloading this
file, parties accept therein the responsibility of not infringing Adobe's licensing policy. The ISO Central Secretariat accepts no liability in this
area.
Adobe is a trademark of Adobe Systems Incorporated.
Details of the software products used to create this PDF file can be found in the General Info relative to the file; the PDF-creation parameters
were optimized for printing. Every care has been taken to ensure that the file is suitable for use by ISO member bodies. In the unlikely event
that a problem relating to it is found, please inform the Central Secretariat at the address given below.
ISO
Case postale 56 � CH-1211 Geneva 20
Tel. + 41 22 749 01 11
Fax + 41 22 749 09 47
E-mail copyright@iso.ch
Web www.iso.ch
ii
International Standard ISO/IEC 14519:2001(E)
IEEE Std 1003.5, 1999 Edition
(Incorporates IEEE Std 1003.5-1992,
IEEE Std 1003.5b-1996, and
IEEE Std 1003.5c-1998)
Information technology— POSIX® Ada
Language Interfaces— Binding for System
Application Program Interface (API)
Sponsor
Portable Applications Standards Committee
of the
IEEE Computer Society
Approved 17 March 2001
IEEE-SA Standards Board
Approved 2001
International Organization for Standardization
and by the
International Electrotechnical Commission
Published by The Institute of Electrical
and Electroncis Engineeris, Inc.

Abstract: This standard is part of the POSIX ® series of standards for applications and user inter-faces to
open systems. It defines the Ada language bindings as package specifications and accompanying textual
descriptions of the application program interface (API). This standard supports application portability at the
source code level through the binding between ISO 8652:1995 (Ada) and ISO/IEC 9945-1:1996 (IEEE Std
1003.1-1996) (POSIX) as amended by IEEE P1003.1g/D6.6. Terminology and general requirements, process
primitives, the process environment, files and directories, input and output primaries, device- and class-
specific functions, language-specific services for Ada, system databases, synchronization, memory
management, execution scheduling, clocks and timers, message passing, task management, the XTI and
socket detailed network inter-faces, event management, network support functions, and protocol-specific
mappings are covered. It also specifies behavior to support the binding that must be provided by the Ada.
Keywords: Ada, API, application portability, computer language bindings, information exchange,
interprocess communication, networks, open systems, operating systems, portable application, POSIX,
POSIX language bindings, protocol-specific, protocol-independent, real-time, sockets, thread, XTI
The Institute of Electrical and Electronics Engineers, Inc.
3 Park Avenue, New York, NY 10016-5997, USA
Co p y right © 2001 b y the Institute of Elect rical and Electronics Engineers, Inc.
All rights reserved. Published 2001. This printing is by the International Organization for Standardization with special
permission of the Institute of Electrical and Electronics Engineers, Inc. Published in Switzerland
Print: ISBN 0-7381-2921-6 SH94937
PDF: ISBN 0-7381-2922-4 SS94937
No part of this publication may be reproduced in any form, in an electronic retrieval system or otherwise, without the prior
written permission of the publisher.
POSIX is a registered trademark of the Institute of Electrical and Electronics Engineers, Inc.

International Standard ISO/IEC 14519:2001(E)
ISO (the International Organization for Standardization) and IEC (the International Electrotechnical Commission)
form the specialized system for worldwide standardization. National bodies that are members of ISO or IEC
participate in the development of International Standards through technical committees established by the
respective organization to deal with particular fields of technical activity. ISO and IEC technical committees
collaborate in fields of mutual interest. Other international organizations, governmental and non-governmental, in
liaison with ISO and IEC, also take part in the work.
International Standards are drafted in accordance with the rules given in the ISO/IEC Directives, Part 3.
In the field of information technology, ISO and IEC have established a joint technical committee, ISO/IEC JTC 1.
Draft International Standards adopted by the joint technical committee are circulated to national bodies for voting.
Publication as an International Standard requires approval by at least 75 % of the national bodies casting a vote.
Attention is drawn to the possibility that some of the elements of this International Standard may be the subject of
patent rights. ISO and IEC shall not be held responsible for identifying any or all such patent rights.
International Standard ISO/IEC 14519 was prepared by Joint Technical Committee ISO/IEC JTC 1, Information
technology, Subcommittee SC 22, Programming languages, their environments and system software interfaces.
This second edition cancels and replaces the first edition (ISO/IEC 14519:1999), which has been technically
revised.
Annex D forms a normative part of this International Standard. Annexes A, B and C are for information only.
International Organization for Standardization/International Electrotechnical Commission
Case postale 56 � CH-1211 Genève 20 � Switzerland
iii
IEEE Standards documents are developed within the IEEE Societies and the Standards Coordinating Com-
mittees of the IEEE Standards Association (IEEE-SA) Standards Board. Members of the committees serve
voluntarily and without compensation. They are not necessarily members of the Institute. The standards
developed within IEEE represent a consensus of the broad expertise on the subject within the Institute as
well as those activities outside of IEEE that have expressed an interest in participating in the development of
the standard.
Use of an IEEE Standard is wholly voluntary. The existence of an IEEE Standard does not imply that there
are no other ways to produce, test, measure, purchase, market, or provide other goods and services related to
the scope of the IEEE Standard. Furthermore, the viewpoint expressed at the time a standard is approved and
issued is subject to change brought about through developments in the state of the art and comments
received from users of the standard. Every IEEE Standard is subjected to review at least every five years for
revision or reaffirmation. When a document is more than five years old and has not been reaffirmed, it is rea-
sonable to conclude that its contents, although still of some value, do not wholly reflect the present state of
the art. Users are cautioned to check to determine that they have the latest edition of any IEEE Standard.
Comments for revision of IEEE Standards are welcome from any interested party, regardless of membership
affiliation with IEEE. Suggestions for changes in documents should be in the form of a proposed change of
text, together with appropriate supporting comments.
Interpretations: Occasionally questions may arise regarding the meaning of portions of standards as they
relate to specific applications. When the need for interpretations is brought to the attention of IEEE, the
Institute will initiate action to prepare appropriate responses. Since IEEE Standards represent a consensus of
all concerned interests, it is important to ensure that any interpretation has also received the concurrence of a
balance of interests. For this reason, IEEE and the members of its societies and Standards Coordinating
Committees are not able to provide an instant response to interpretation requests except in those cases where
the matter has previously received formal consideration.
Comments on standards and requests for interpretations should be addressed to:
Secretary, IEEE-SA Standards Board
445 Hoes Lane
P.O. Box 1331
Piscataway, NJ 08855-1331
USA
Note: Attention is called to the possibility that implementation of this standard may
require use of subject matter covered by patent rights. By publication of this standard,
no position is taken with respect to the existence or validity of any patent rights in
connection therewith. The IEEE shall not be responsible for identifying patents for
which a license may be required by an IEEE standard or for conducting inquiries into
the legal validity or scope of those patents that are brought to its attention.
Authorization to photocopy portions of any individual standard for internal or personal use is granted by the
Institute of Electrical and Electronics Engineers, Inc., provided that the appropriate fee is paid to Copyright
Clearance Center. To arrange for payment of licensing fee, please contact Copyright Clearance Center, Cus-
tomer Service, 222 Rosewood Drive, Danvers, MA 01923 USA; (978) 750-8400. Permission to photocopy
portions of any individual standard for educational classroom use can also be obtained through the Copy-
right Clearance Center.
Contents
PAGE
Introduction . . . . . . . . . . . . . . . vi
Section 1: General . . . . . . . . . . . 1
1.1 Scope . . . . . . . . . . . . . . 1
1.2 Normative References . . . . . . . . . . . . 3
1.3 Conformance . . . . . . . . . . 4
Section 2: Terminology and General Requirements . . . . . 9
2.1 Editorial Conventions. . . . . . . . 9
2.2 Definitions . . . . . . . . . . . 10
2.3 General Concepts . . . . . . . . . . 38
2.4 PackagePOSIX. . . . . . . . . 42
2.5 PackagePOSIX_Options . . . . . . . . 76
2.6 PackagePOSIX_Limits . . . . . . . . 82
2.7 PackageAda_Streams . . . . . . . . 87
2.8 PackageSystem . . . . . . . . . 88
2.9 PackageSystem_Storage_Elements . . . . . . 89
2.10 PackagePOSIX_Page_Alignment . . . . . . 90
2.11 Environment Description . . . . . . . . . . . 91
Section 3: Process Primitives . . . . . . . . 95
3.1 PackagePOSIX_Process_Primitives . . . . . 95
3.2 PackagePOSIX_Unsafe_Process_Primitives. . . . 108
3.3 PackagePOSIX_Signals . . . . . . . . 115
Section 4: Process Environment . . . . . . . . . . . 149
4.1 PackagePOSIX_Process_Identification . . . . 149
4.2 PackagePOSIX_Process_Times . . . . . . 156
4.3 PackagePOSIX_Process_Environment . . . . . 157
4.4 PackagePOSIX_Calendar. . . . . . . . 164
4.5 PackagePOSIX_Configurable_System_Limits . . . . 167
Section 5: Files and Directories . . . . . . . . . . . . 175
5.1 PackagePOSIX_Permissions . . . . . . . 175
5.2 PackagePOSIX_Files . . . . . . . . 178
5.3 PackagePOSIX_File_Status . . . . . . . 190
5.4 PackagePOSIX_Configurable_File_Limits . . . . 194
Section 6: I/O Primitives . . . . . . . . . . . 205
6.1 PackagePOSIX_IO . . . . . . . . . 205
ii
6.2 PackagePOSIX_File_Locking. . . . . . . 232
6.3 PackagePOSIX_Asynchronous_IO . . . . . . 234
Section 7: Device- and Class-Specific Functions . . . . . . . 253
7.1 General Terminal Interface . . . . . . . . . 253
7.2 PackagePOSIX_Terminal_Functions . . . . . 260
Section 8: Language-Specific Services for Ada . . . . . . . . 279
8.1 Interoperable Ada I/O Services . . . . . . . 279
8.2 PackagePOSIX_Supplement_to_Ada_IO. . . . . 283
Section 9: System Databases . . . . . . . . 287
9.1 PackagePOSIX_User_Database . . . . . . 287
9.2 PackagePOSIX_Group_Database . . . . . . 289
Section 10: Data Interchange Format . . . . . . . . 293
Section 11: Synchronization . . . . . . . . . 295
11.1 PackagePOSIX_Semaphores . . . . . . . 295
11.2 PackagePOSIX_Mutexes . . . . . . . . 304
11.3 PackagePOSIX_Condition_Variables . . . . . 314
Section 12: Memory Management . . . . . . . . . . 323
12.1 PackagePOSIX_Memory_Locking . . . . . . 324
12.2 PackagePOSIX_Memory_Range_Locking. . . . . 326
12.3 PackagePOSIX_Memory_Mapping . . . . . . 328
12.4 PackagePOSIX_Shared_Memory_Objects . . . . . 337
12.5 PackagePOSIX_Generic_Shared_Memory . . . . . 341
Section 13: Execution Scheduling . . . . . . . . . . . 349
13.1 Scheduling Concepts and Terminology . . . . . . . . 349
13.2 PackagePOSIX_Process_Scheduling . . . . . 349
13.3 Task Scheduling . . . . . . . . . . . 354
13.4 Synchronization Scheduling . . . . . . . . . 356
Section 14: Clocks and Timers . . . . . . . . . . . . 357
14.1 PackagePOSIX_Timers . . . . . . . . 357
14.2 High Resolution Delay . . . . . . . . . . . . 366
Section 15: Message Passing . . . . . . . . 367
15.1 PackagePOSIX_Message_Queues . . . . . . 367
Section 16: Task Management . . . . . . . . . . . . 383
16.1 PackageAda_Task_Identification . . . . . . 383
Section 17: Detailed Network Interface - XTI . . . . . . . . . 385
17.1 Introduction . . . . . . . . . . 385
17.2 States and Events . . . . . . . . . . 391
17.3 The Use of Options . . . . . . . . . 399
17.4 PackagePOSIX_XTI . . . . . . . . 410
iii
Section 18: Detailed Network Interface - Socket . . . . . . . 487
18.1 Introduction . . . . . . . . . . 487
18.2 Events and States . . . . . . . . . . 489
18.3 Use of Options . . . . . . . . . 498
18.4 PackagePOSIX_Sockets . . . . . . . . 498
Section 19: Event Management . . . . . . . . . . . . 535
19.1 PackagePOSIX_Event_Management. . . . . . 535
Annex A (informative) Bibliography . . . . . . . . . 547
Annex B (informative) Rationale and Notes . . . . . . . . . . 549
B.1 General . . . . . . . . . . . . . 549
B.2 Terminology and General Requirements . . . . . . . 563
B.3 Process Primitives . . . . . . . . . . 575
B.4 Process Environment . . . . . . . . 592
B.5 Files and Directories . . . . . . . . 598
B.6 Input and Output Primitives . . . . . . . . 602
B.7 Device- and Class-Specific Functions . . . . . . . . . 610
B.8 Language-Specific Services for Ada . . . . . . . . . . 610
B.9 System Databases . . . . . . . . . . 621
B.10 Data Interchange Format . . . . . . . . . . 623
B.11 Synchronization . . . . . . . . . . . 623
B.12 Memory Management. . . . . . . . 629
B.13 Execution Scheduling . . . . . . . . 634
B.14 Clocks and Timers . . . . . . . . . . 639
B.15 Message Passing . . . . . . . . . . . 642
B.16 Task Identification . . . . . . . . . 643
B.17 Thread-Specific Data . . . . . . . . 643
B.18 Detailed Network Interface - XTI . . . . . . 643
B.19 Detailed Network Interface - Socket . . . . . . . . . 646
B.20 Network Support Functions . . . . . . . . . 647
B.21 Protocol Mappings Annex . . . . . . . . . . 648
Annex C (informative) Ada/C Cross-References . . . . . . . . 651
C.1 Ada-to-C Cross-Reference . . . . . . . . . . 651
C.2 C-to-Ada Cross-Reference . . . . . . . . . . 681
Annex D (normative) Protocol Mappings . . . . . . . 713
D.1 Sockets Protocol Mappings . . . . . . . . . . 713
D.2 XTI Protocol Mappings . . . . . . . . . . . . 759
Alphabetic Topical Index . . . . . . . . . . . 819
TABLES
Table1.1 – Sockets and XTI Package Renaming . . . . . . . . 5
Table2.1 – Typographical Conventions . . . . . . . . 9
iv
Table2.2 – Constant and Subtype Correspondences . . . . . 52
Table2.3 – Option Set Comparisons . . . . . . . . . . 60
Table2.4 – Static Subtypes and Options . . . . . . . 81
Table2.5 – Portable Constants and Limits . . . . . . 86
Table2.6 – Static Subtypes and Limits . . . . . . . . 88
Table3.1 – Default Actions for Job Control Signals . . . . . . 127
Table4.1 – Functions for System-Wide Options . . . . . . . . 172
Table4.2 – Configurable System Limits . . . . . . . 174
Table6.1 – Standard File Descriptors . . . . . . . . . 209
Table6.2 – Error Codes and AIO Status Values . . . . . . . . 247
Table7.1 –Terminal_Characteristics Components. . . . 263
Table7.2 –Terminal_Modes Values for Input Control . . . . . . 265
Table7.3 –Terminal_Modes Values for Output Control . . . . . 267
Table7.4 –Terminal_Modes Values for Hardware Control . . . . 267
Table7.5 –Terminal_Modes Values for Local Control Modes . . . . . . . 269
Table7.6 – Special Control Character Usage . . . . . . . . . . 272
Table17.1 – Events andLook . . . . . . . . 389
Table17.2 – Classification of the XTI Functions . . . . . . . . 392
Table17.3 – Communication Interface States . . . . . . . . . 394
Table17.4 – Initialization/De-initialization State Table . . . . . . 396
Table17.5 – Data Transfer State Table for Connectionless-Mode Service . 396
Table17.6 – Connection/Release/Data Transfer State Table for Connection-
Mode Service . . . . . . . . . . . . 397
Table17.7 –Event_Requires_Attention Error Indications . . . . . . . 399
Table18.1 – Socket Events . . . . . . . . . . 490
Table18.2 – Socket States . . . . . . . . . . 491
TableB.1 – Correspondence of File Creation Flags . . . . . . 615
TableD.1 – Port Number Re-Use . . . . . . . . . . . 744
TableD.2 – Communications_Provider_Info Returned by Get_Info and
Open, mOSI . . . . . . . . . . . . . 774
TableD.3 – XTI and ACSE/Presentation Services . . . . . . . 777
TableD.4 – XTI mOSI Connection-Mode Data Transfer Services . . . . . . 779
TableD.5 – XTI and Association Release Services . . . . . . . 779
TableD.6 – XTI Connectionless-Mode ACSE Services . . . . 780
TableD.7 – Communications_Provider_Info Returned by Get_Info and
Open,ISO . . . . . . . . . . . 801
TableD.8 – Communications_Provider_Info Returned by Get_Info and
Open, Internet . . . . . . . . . . . 810
v
IEEE Std 1003.5c-1998
Introduction
(This introduction is not a part of IEEE Std 1003.5c-1998, IEEE Standard for Information Technology
R
– POSIX Ada Language Interfaces – Part 1: Binding for System Application Program Interface (API)
– Amendment 2: Protocol-Independent Interfaces, but is included for information only.)
c
This standard is an amended version of IEEE Std 1003.5b-1996. The basic goal of
c
this standard is to provide an Ada application program interface for the language-
independent services made accessible to C-language applications programs by the
interfaces defined in ISO/IEC 9945-1:1996 (IEEE Std 1003.1-1996) f2g as amended
by IEEE P1003.1g fB14g.
c
The intent is to support portability of Ada applications via a standard binding to
the services provided by a POSIX-conforming operating system. POSIX is defined
by the standard C-language interfaces cited above. Therefore, much of the work in
producing this standard was deciding what features of those C-language interfaces
represented POSIX functionality, as opposed to C-language-specific features.
This standard provides package specifications and accompanying textual description
for a set of Ada packages that represent the POSIX system. This standard also spec-
ifies behavior to support the binding that must be provided by the Ada compilation
system, and further defines behavior specified as implementation defined in the Ada
language standard (particularly in the area ofText_IO) for use in a POSIX environ-
ment.
The emphasis in POSIX is on application program portability, so the interfaces in this
standard are not intended to be sufficient to implement an Ada compilation system
or a POSIX shell as defined in IEEE Standard 1003.2 fB16g. For an application,
the intent is that a Strictly Conforming POSIX.5 Application (one that uses only
the facilities in this standard and that does not depend on implementation-defined
behavior) can be ported to any Conforming Implementation of these interfaces and
that the binding makes it easy to identify where a program is not strictly conforming
and makes such programs easier to port.
Organization of This Standard
The standard is divided into three parts:
— Statement of scope, list of normative references, and conformance information
(Section 1)
— Definitions and global concepts (Section 2)
— The various interface facilities (Sections 3 through 19)
The content of the sections parallels that of the correspondingly numbered sections
of ISO/IEC 9945-1:1996 and IEEE P1003.1g/D6.6, with a few changes required to
accomodate differences between the Ada and C-language interfaces.This standard
c
vi Introduction
PART 1: BINDING FOR SYSTEM APPLICATION PROGRAM INTERFACE (API) IEEE Std 1003.5c-1998
has no Section 10, since there is no Ada binding for that Section 10 (Data Interchange
Formats) of ISO/IEC 9945-1:1996.
This introduction, any footnotes, notes accompanying the text, and the informative
annexes are not considered part of this standard.
Related Standards Activities
Activities to extend this standard to address additional requirements can be antici-
1)
pated in the future .
Extensions are approved as amendments or revisions to this standard, following
IEEE and ISO/IEC procedures.
Anyone interested in participating in the PASC working groups addressing these
issues should send his or her name, address, and phone number to the Secretary,
IEEE Standards Board, Institute of Electrical and Electronics Engineers, Inc., P.O.
Box 1331, 445 Hoes Lane, Piscataway, NJ 08855-1331, USA, and ask to have this
information forwarded to the chair of the appropriate PASC working group. A per-
son who is interested in participating in this work at the international level should
contact his or her ISO/IEC national body.
c
1) A Standards Status Report that lists all current IEEE Computer Society standards projects is avail-
able from the IEEE Computer Society, 1730 Massachusetts Avenue NW, Washington, DC 20036-
1903, USA; Telephone: +1 202 371-0101; FAX: +1 202 728-9614.
Introduction vii
IEEE Std 1003.5c-1998 IEEE STANDARD FOR INFORMATION TECHNOLOGY – POSIX ADA INTERFACES
IEEE Std 1003.5-1992 was prepared by the 1003.5 Working Group, sponsored by
the Technical Committee on Operating Systems and Applications Environments of
the IEEE Computer Society. At the time IEEE Std 1003.5-1992 was approved the
membership of the IEEE P1003.5 working group was as follows:
Technical Committee on Operating Systems
and Application Environments (TCOS)
Chair: Jehan-Franc¸ois Parisˆ
TCOS Standards Subcommittee
Chair: Jim Isaak
Vice Chairs: Ralph Barker
Hal Jesperson
Lorraine Kevra
Pete Meier
Andrew Twigger
Treasurer: Peter Smith
Secretary: Shane McCarron
P1003.5 Working Group Officials
Chair: James P. Lonjers
Steven Deller (1989-1991)
Major Terrence Fong (1988-1989)
Vice Chairs: James P. Lonjers (1990-1991)
Major Terrence Fong (1989-1990)
Stowe Boyd (1988-1989)
Editors: David Emery
Hal Jesperson
Steven Deller (1988-1989)
Rationale Editor: Mitch Gart
Secretary: C. Jayne Baker
David Emery (1988-1989)
Technical Reviewers
Ted Baker David Emery Jim Lonjers
Steven Deller Mitch Gart Jim Moore
Dennis Doubleday Stephen Schwarm
Working Group
Ted Baker Michael Gillam Sue LeGrand
Stowe Boyd Al Globus James Lonjers
Bevin Brett Mars Gralia James Moore
Charles Brown Jayne Guyse Mark Ruddock
Robert Brown Ken Harvey Stephen Schwarm
Bhavesh Damania Ruth Hirt Michael Shapiro
Steven Deller Jeff Hooley Brian Sullivan
Dennis Doubleday Michael Kjolsrud Del Swanson
David Emery Peter Krupp Robert Voigt
Terry Fong James Leathrum Olle Wikstrom
Mitchell Gart John Zenor
viii Introduction
PART 1: BINDING FOR SYSTEM APPLICATION PROGRAM INTERFACE (API) IEEE Std 1003.5c-1998
The following persons where members of the balloting group for IEEE Std 1003.5-
1992.
Harold C. Adams Andrew Chung Allen L. Grau
John S. Adams Brad Clark Charles R. Grauling
Omar Ahmed Lori A. Clarke Daniel Green
David Allen Norman H. Cohen Tom Griest
Charles J. Antonelli Edward Colbert F. Grize
B. Ardary Phillippe Collard Ernesto Guerrieri
David Athersych Robert A. Conti Lawrence M. Gunther
Randall Atkinson William M. Corwin R. N. Hagen
Randal J. August Mike Cossey Charles Hammons
Kenneth A. Austin John Courtney Peter A. Hansen
Carolyn J. Baker Donald Cragun Sam Harbaugh
Robert L. Baker Richard A. Crawford Samuel Harbison
Ted Baker Jim Creegan David S. Hardin
James Baldo Phyllis Crill Charles Harkey
Brad Balfour John J. Cupak Loren L. Hart
Gary E. Barnes Charles Dana Thomas S. Hawker
Mitchell C. Barnhart William H. Dashiell Clark M. Hay
Randall Barron David Davis Ralph Hayward
Steven Barryte Rich DeBernardo John Craig Heberle
Barbara K. Beauchamp David DeFanti William Hefley
Gary Beerman Mike Dean A. Marlow Henne
E. Jerome Bell Dave Decot Donald C. Hill
Donald Bennett Steven Deller Norman Hines
Peter A. Berggren Jorge Diaz-Herrera C. Michael Holloway
Mark Biggar Michael B. Dillencourt Jeffrey Hooley
Robert Bismuth James H. Dobbins Joseph P. Hoolihan
Alex Blakemore Audrey Dorofee Tom Housman
Stephen Blanchette, Jr. Terence Dowling Richard Howard
Pieter Botman Diptendu Dutta Norman R. Howes
Stowe Boyd Eugene Edelstein Lynne M. Hubbs
Carl Brandon Theodore F. Elbert David K. Hughes
Philip Brashear Richard W. Elwood Richard G. Hull
Joseph P. Brazy David Emery Jeremy James
Mark S. Breckenridge Arny Engelson Hal Jespersen
Ronald F. Brender Philip H. Enslow Darryl N. Johnson
Jim Briggs William Eventoff Bruce Johnston
Thomas C. Brooke Gary Falacara Alain Jouchoux
Jerry R. Brookshire John H. Fauerby Juern Juergens
Charles O. Brown Charles A. Finnell Steven Kahn
Elizabeth B. Brown Jeffery Fischer Fumimiko Kamijo
Jane C. Bryan Shayne Flint Alan Kaminsky
Gary L. Burt Terence Fong Ling Kan
Christopher Byrnes Edward J. Forbes, Jr. Karl Kelley
David Calloway Roy S. Freedman Robert H. C. Kemp
Nicholas A. Camillone Randal S. Freier Judy S. Kerner
Kenneth W. Campbell Dale J. Gaumer James J. Keys
Rick Carle Larry Gearhart Paul J. King
David J. Carlson K. M. George Hans R. Klay
Dana Carson Gregory A. Gicca Kenneth Kloss
Jeffrey R. Carter Robert T. Goettge Robert Knighten
Jerry Cashin Phillip Goldstein Joseph B. Kolb
H. L. Catala Roger Golliver John C. Krasnowski
Larry Chandler William N. Goolsby Lak Ming Lam
Andy Cheese William J. Goulet Rudolf C. Landwehr
James Chelini Mars J. Gralia Charles F. Lanman
Introduction ix
IEEE Std 1003.5c-1998 IEEE STANDARD FOR INFORMATION TECHNOLOGY – POSIX ADA INTERFACES
Gary Lauther James K. Parrish Ronald Skoog
Patricia K. Lawlis Thomas Parrish Thomas J. Smith
Scott A. Leschke Offer Pazy Charles Snyder
M. Levitz Walt Penney Jon S. Squire
Stephen H. Levy Guido Persch Jeff Stevenson
F. C. Lim Flavio Petersen Brian Sullivan
Timothy E. Lindquist Thomas A. Peterson Del Swanson
J. J. Logan George W. Petznick S. Tucker Taft
James P. Lonjers Hane W. Polzer Ravi Tavakley
Warren E. Loper J. Pottmyer Donn S. Terry
Mark Loveland Charles Pow John A. Thalhamer
George A. Ludgate Eileen Quann William J. Thomas
Sonny Lundahl Paul Rabin Peter L. Thompson
Wesley Mackey John Reddan James L. Troy
Austin J. Maher W. Scott Redmon Roger Tubby
James Maloney Gregg Reed Mark-Rene Uchida
Roger Martin Carl Reinert L. David Umbaugh
Robert Mathis Judith Richardson Robert B. Urling
Fred Maymir-Ducharme Richard A. Rink Evelyn M. Uzzle
Catherine McDonald Clyde Roby Frances Van Scoy
Robert L. McGarvey C. Allan Rofer Leonard Vanek
Daniel L. McNamee Hyman Rosen Michael W. Vannier
Robert McWhirter Jerome D. Rosen Uwe Wacker
Nancy R. Mead Frederick M. Rysz Robert N. Wagoner
Geoff Mendal Agnes M. Sardi Mary Wall
Jay Michael Robert J. Satnik Stephen R. Walli
Gary W. Miller Allen Saxton Neal Walters
Robert E. Miller Lorne H. Schachter Kenneth Wasmundt
Judah Mogilensky F. P. Schauer William Webster
Al Mok Alfred H. Scholldorf J. Richard Weger
Charles S. Mooney Ron Schroeder Brian Weis
James D. Mooney Mike Schultz Robert Weissensee
Freeman Moore W. L. Schultz Michael K. Welter
James W. Moore Fritz Schulz Stephen Wersan
Jerry A. Moore Leonard Seagren Thomas Wheeler
John I. Moore, Jr. Richard Seibel William Whitaker
Duncan Morrill Lawrence H. Shafer Bruce Wieand
M. W. Morron Michael D. Shapiro David Willcox
Gary Mrenak John G. Shea David C. Willet
David G. Mullens Nagy M. Shehad David Williamson
Richard E. Nesee Dan Shia Paul A. Willis
Sai Lun Ng Thomas E. Shields David H. Winfield
Daniel Nissen Keith Shillington David C. Wolfe
Karl Nyberg David Shochat Paul A. Wolfgang
James O’Day Stephen Schwarm Michal Young
Evelyn Obaid Robert Charles Shock Oren Yuan
Patricia Oberndorf Jerome L. Sibol, Jr. Janusz Zalewski
Kurt M. Olender Lee Silverthorn K. M. Zemrowski
S. Ron Oliver John Zolnowsky
x Introduction
PART 1: BINDING FOR SYSTEM APPLICATION PROGRAM INTERFACE (API) IEEE Std 1003.5c-1998
When the IEEE Standards Board approved IEEE Std 1003.5-1992 on 18 June 1992,
it had the following membership:
Marco W. Migliaro, Chair Donald C. Loughry, Vice Chair
Andrew G. Salem, Secretary
Dennis Bodson Donald N. Heirman T. Don Michael
Paul L. Borrill Clyde R. Ben C. Johnson John L. Rankins
Camp Walter J. Karplus Wallace S. Read
Donald C. Fleckenstein Ivor N. Knight Ronald H. Reimer

Jay Forster Joseph L. Koepfinger Gary S. Robinson
David F. Franklin Irving Kolodny Martin V. Schneider
Ramiro Garcia D.N. “Jim” Logothetis Terrance R. Whittemore
Thomas L. Hannan Lawrence V. McCall Donald W. Zipse

Member Emeritus
Also included are the following nonvoting IEEE Standards Board liaisons:
Satish K. Aggarwal
James Beall
Richard B.
Engleman
David E. Soffrin
Stanley Warshaw
Mary Lynne Nielsen
IEEE Standards Project Editor
Introduction xi
IEEE Std 1003.5c-1998 IEEE STANDARD FOR INFORMATION TECHNOLOGY – POSIX ADA INTERFACES
IEEE Std 1003.5b-1996 was prepared by the P1003.5 working group, sponsored by
the Portable Applications Standards Committee of the IEEE Computer Society. At
the time IEEE Std 1003.5b-1996 was approved the membership of the P1003.5 work-
ing group was as follows:
Portable Applications Standards Committee (PASC)
Chair: Jehan-Franc¸ois Parisˆ
PASC Standards Subcommittee
Chair: Lowell Johnson
Vice Chair: Charles Severance
Functional Chairs: Barry Needham
John Spencer
Jay Ashford
Andrew Josey
Treasurer: Peter Smith
Secretary: Charles Severance
IEEE P1003.5 Working Group Officials
Chair: James P. Lonjers (1991-1994)
Stephen Schwarm (1995-1996)
Ted Baker (1996-1997)
Vice Chairs: Stephen Schwarm (1991-1995)
Randy Greene (1995-1996)
David Emery (1003.5 Interpretations)
Editor: Ted Baker (P1003.5b)
Rationale Editor: Lee Lucas
Secretary: C. Jayne Guyse (1991-1993)
Peter Obermayer (1994-1996)
Technical Reviewers
Ted Baker Lee Lucas Henry H. Robbins
Mark Faulk Peter Obermayer Stephen Schwarm
Ted Giering Offer Pazy Del Swanson
Randy Greene Ruth A. Peek Laurent Visconti
Ed Posnak
Working Group
Theodore P. (Ted) Baker David K. Hughes Ray Ricco
Bevin Brett James Lonjers Henry H. Robbins
Steven Deller Lee Lucas Stephen Schwarm
David Emery Peter Obermayer Jim Smith
Mark Faulk James T. Oblinger Del Swanson
Randy Greene Offer Pazy Laurent Visconti
C. Jayne Guyse Ruth A. Peek John Zenor
xii Introduction
PART 1: BINDING FOR SYSTEM APPLICATION PROGRAM INTERFACE (API) IEEE Std 1003.5c-1998
The following persons were members of the balloting group for IEEE Std 1003.5b-
1996:
Alejandro A. Alonso Norman R. Howes Dave Plauger
Theodore P. Baker David K. Hughes Arlan Pool
Robert Barned Judy Kerner Henry H. Robbins
Andy Bihain Philippe Kruchten Stephen Schwarm
William M. Corwin Thomas M. Kurihara Leonard W. Seagren
Steven Deller Arthur Licht Robert Alan Siegel
David Emery C. Douglass Locke Dennis C. Stewart
Philip H. Enslow James P. Lonjers Alfred Strohmeier
Michael Gonzalez Lee W. Lucas Del Swanson
C. Jayne Guyse Roland McGrath Mark-Rene´ Uchida
Joe Gwinn Paul Murdock USENIX
Patrick Hebert James T. Oblinger Victor Fay-Wolfe
Steven Howell Offer Pazy John Zenor
When the IEEE Standards Board approved IEEE Std 1003.5b-1996 on 20 June 1996,
it had the following membership:
Donald C. Loughry, Chair Richard J. Holleman, Vice Chair
Andrew G. Salem, Secretary
Gilles A. Baril E. G. “Al” Kiener Jose R. Ramos

Clyde R. Camp Joseph L. Koepfinger Arthur K. Reilly
Joseph A. Cannatelli Stephen R. Lambert Ronald H. Reimer
Stephen L. Diamond Lawrence V. McCall Gary S. Robinson
Harold E. Epstein Bruce McClung Ingo Rusc¨ h
Donald C. Fleckenstein Marco W. Migliaro John S. Ryan

Jay Forster Mary Lou Padgett Chee Kiow Tan
Donald N. Heirman John W. Pope Leonard L. Tripp
Ben C. Johnson Howard L. Wolfman

Member Emeritus
Also included are the following nonvoting IEEE Standards Board liaisons:
Satish K. Aggarwal
Alan H. Cookson
Chester C. Taylor
Lisa S. Young
IEEE Standards Project Editor
Introduction xiii
IEEE Std 1003.5c-1998 IEEE STANDARD FOR INFORMATION TECHNOLOGY – POSIX ADA INTERFACES
IEEE Std 1003.5c-1998 was prepared by the P1003.5 working group, sponsored by
the Portable Applications Standards Committee of the IEEE Computer Society. At
the time IEEE Std 1003.5c-1998 was approved the membership of the P1003.5 work-
ing group was as follows:
PASC Standards Subcommittee
Chair: Lowell Johnson
Vice Chair: Joe Gwinn
Functional Chairs: Curtis Royster
Jason Zions
Jay Ashford
Andrew Josey
Secretary: Nick Stoughton
IEEE P1003.5 Working Group Officials
Chair: Ted Baker
Vice Chair: Linda Harowicz
Editors: Craig Meyer (P1003.5c Editor)
Working Group
Ted Baker Greg Bussiere Craig Meyer
Linda Harowicz
The following persons were voting members of the balloting group for IEEE Std
1003.5c-1998:
Ted Baker Mars J. Gralia Craig Meyer
Bob Barned Linda Harowicz Stephen Michell
Carl Brandon Matthew Heaney Howard E. Neely
Greg Bussiere Niklas Holsti Peter E. Obermayer
Jorge L. Diaz-Herrera David C. Hoos James T. Oblinger
Victor Giddings Michael J. Kamrad Jan Pukite
Michael Gonzalez Mark Lundquist Curtis Royster
The following persons were nonvoting members of the balloting group for IEEE Std
1003.5c-1998:
Robert E. Allen Robert A. Duff Robert C. Leif
A. Barnes W. Douglas Findly B. Craig Meyers
Ronald Bjornseth Anthony Gargaro James W. Moore
Stephen E. Blake David Gross Tushar Pokle
Chad Bremmon Maretta Holden Bill Pritchet
Vincent Celier Harry Joiner Michael Rohan
Hans O. Danielsson Rush Kester David Shochat
John Davies Jim Kroening Lynn Stuckey
Peter Dencker Mark Larsen Terry J. Westley
Guido Duerinckx Stephen Whiting
c
xiv Introduction
PART 1: BINDING FOR SYSTEM APPLICATION PROGRAM INTERFACE (API) IEEE Std 1003.5c-1998
When the IEEE Standards Board approved IEEE Std 1003.5c-1998 on 8 December
1998, it had the following membership:
Richard J. Holleman, Chair Donald N. Heirman, Vice Chair
Judith Gorman, Secretary
James H. Gurney Jim D. Isaak L. Bruce McClung
Satish K. Aggarwal Lowell G. Johnson Louis-Franc¸ois Pau Ronald C.
Clyde R. Camp Robert Kennelly Petersen
Gary R. Engman E. G. “Al” Kiener Gerald H. Peterson
Harold E. Epstein Joseph L. Koepfinger* John B. Posey
Jay Forster* Stephen R. Lambert Gary S. Robinson
Thomas F. Garrity Jim Logothetis Hans E. Weinrich
Ruben D. Garzon Donald C. Loughry Donald W. Zipse

Member Emeritus
Yvette Ho Sang
IEEE Standards Project Editor
c
Introduction xv
IEEE Std 1003.5c-1998
IEEE Standard for Information Technology—
R
POSIX Ada Language Interfaces—
Part 1: Binding for System
Application Program Interface (API)—
Amendment 2: Protocol Independent
Interfaces
c
Section 1: General
1.1 Scope
This standard defines a set of system application program interfaces to operating
system services. These interfaces provide access via the Ada programming language
to the same operating system services for which C-language interfaces are specified
1)2)
in ISO/IEC 9945-1:1996 f2g and IEEE P1003.1g fB14g.
c
The purpose of this standard is to support application portability at the Ada source
code level. This standard is intended to be used by both application developers and
system implementors.
This standard is intended to be compatible with implementations of the 1995 revi-
sion to the Ada language standard (ISO/IEC 8652:1995 f1g). Fall-back approaches
compatible with implementations of the original Ada language standard (ISO/IEC
8652:1987 fB5g) are also provided (see 1.3).
1) Plain numbers in curly braces correspond to those of the normative references in 1.2. Numbers
preceded by a “B” in curly braces correspond to those of the bibliography in Annex A. See 2.1 for the
description of this and the other typographical conventions followed in this document.
2) A language-independent definitions of this standard was once under development, but work on that
project was suspended.
c
1 General 1
IEEE Std 1003.5c-1998 IEEE STANDARD FOR INFORMATION TECHNOLOGY – POSIX ADA INTERFACES
This standard is intended to contain no specifications that conflict with “Year 2000”
requirements.
c
This standard comprises three major components:
— Definitions for terminology and concepts, and definitions and specifications that
govern program structures, language-system interaction, and related require-
ments.
— Definitions of the specific Ada interfaces to the system services defined by the
POSIX standards, presented in the form of Ada packages.
— Interpretations of Ada semantics with respect to the POSIX standards.
The following areas are outside the scope of this standard:
(1) User interface (shell) and commands associated with Ada program development.
(2) Ada bindings to the archive/interchange file formats for tar and cpio.
(3) Network protocols.
(4) Graphics and windowing interfaces.
(5) Database management system interfaces.
(6) Object or binary code portability.
(7) System configuration and resource availability.
(8) Interfaces to the Ada runtime system.
When the XTI Detailed Network Interface option and/or the Sockets Detailed Network Inter-
face option are supported, then a set of DNI’s (see 2.2.3.26) are also within the scope
of this standard. A DNI is intended to provide access to protocol-specific features of
the underlying network for highly portable applications that need access to sophisti-
cated network features. The DNI’s are based on the SPG4 XTI and 4.4 BSD socket
specifications.
The following areas are outside of the scope of the DNI’s:
— Interface to manipulate underlying protocol implementations
— Network management interface
— Interface to manipulate performance-specific features
— Definition for protocol address formats
c
This standard describes the external characteristics and facilities that are of impor-
tance to applications developers, rather than the implementation approaches that
may be employed to achieve them. Special emphasis is placed on those facilities and
capabilities needed for the broad spectrum of applications.
This standard has been defined exclusively at the source code level. The objective is
that a Strictly Conforming POSIX.5 Application can be compiled to execute on any
conforming implementation, within the portability of the application Ada code itself.
2 1 General
PART 1: BINDING FOR SYSTEM APPLICATION PROGRAM INTERFACE (API) IEEE Std 1003.5c-1998
1.2 Normative References
The following standards contain provisions that, through references in this text, con-
stitute provisions of this standard. At the time of publication, the editions indicated
were valid. All standards are subject to revision, and parties to agreements based
on this standard are encouraged to investigate the possibility of applying the most
recent editions of the standards listed below. Members of IEC and ISO maintain
registers of currently valid International Standards.
3)
f1g ISO/IEC 8652:1995 , Information technology—Programming languages—
Ada [Revision of first edition (ISO/IEC 8652:1987)], 15 February 1995.
4)
f2g ISO/IEC 9945-1:1996 (IEEE Std 1003.1-1996 ), Information technology—
Portable Operating System Interface (POSIX)—Part 1: System Application
Program Interface (API) [C Language]. This edition incorporates the
extensions for realtime applications (POSIX.1b, POSIX.1i) and threads
(POSIX.1c).
5)
f3g ISO/IEC 8072:1996 (CCIT X.214:1988 ), Information technology—Open
systems interconnection—Transport service definition.
f4g ISO/IEC 8073:1992 (CCITT X.224:1992), Information technology—
Telecommunications and information exchange between systems—Open
systems interconnection— Protocol for providing the connection-mode
transport service.
f5g ISO/IEC 8208:1995, Information technology—Data communications—X.25
Packet layer protocol for data terminal equipment.
f6g ISO/IEC 8348:1996, Information technology—Open systems interconnection—
Network service definition.
f7g ISO/IEC 8473-1:1994, Information technology—Protocol for providing the
connectionless-mode network service: Protocol specification.
f8g ISO/IEC 8473-3:1995, Information technology—Protocol for providing the
connectionless-mode network service: Provision of the underlying service by an
X.25 subnetwork.
f9g ISO/IEC 8602:1995, Information Technology—Protocol for providing the OSI
connectionless-mode transport service.
f10g ISO/IEC 8878:1992, Information technology—Telecommunications and infor-
mation exchange between systems—Use of X.25 to provide the OSI connection-
mode network service.
3) ISO/IEC publications can be obtained from the ISO Central Secretariat, Case Postale 56, 1 rue de
Varembe,´ CH-1211, Geneve` 20, Switzerland/Suisse (http://www.iso.ch) or from the Sales Depart-
ment of the International Electrotechnical Commission, Case Postale 131, 3 rue de Varembe,´ CH-
1211, Geneve` 20, Switzerland/Suisse (http://www.iec.ch/). ISO/IEC publications can also be obtained
in the United States from the Sales Department, American National Standards Institute, 11 West
42nd Street, 13th Floor, New York, NY 10036, USA (http://www.ansi.org).
4) IEEE standards publications are available from the IEEE Service Center, 445 Hoes Lane, P.O. Box
1331, Piscataway, NJ 08855-1331, USA (http://www.standards.ieee.o
...


INTERNATIONAL ISO/IEC
STANDARD 14519
IEEE
Std 1003.5
Second edition
2001-12-15 ®
Information technology — POSIX Ada
Language interfaces — Binding for System
Application Program Interface (API) ®
Technologies de l'information — Interfaces de langage POSIX Ada —
Boucle pour interface de programme d'application système (API)
Reference number
IEEE
Std 1003.5, 1999 edition
IEEE Std 1003.5, 1999 Edition
PDF disclaimer
This PDF file may contain embedded typefaces. In accordance with Adobe's licensing policy, this file may be printed or viewed but shall not
be edited unless the typefaces which are embedded are licensed to and installed on the computer performing the editing. In downloading this
file, parties accept therein the responsibility of not infringing Adobe's licensing policy. The ISO Central Secretariat accepts no liability in this
area.
Adobe is a trademark of Adobe Systems Incorporated.
Details of the software products used to create this PDF file can be found in the General Info relative to the file; the PDF-creation parameters
were optimized for printing. Every care has been taken to ensure that the file is suitable for use by ISO member bodies. In the unlikely event
that a problem relating to it is found, please inform the Central Secretariat at the address given below.
This CD-ROM contains the publication ISO/IEC 14519 in portable document format (PDF), which can be viewed
using Adobe® Acrobat® Reader.
Adobe and Acrobat are trademarks of Adobe Systems Incorporated.
This second edition cancels and replaces the first edition (ISO/IEC 14519:1999), whic
...

Questions, Comments and Discussion

Ask us and Technical Secretary will try to provide an answer. You can facilitate discussion about the standard in here.

Loading comments...