IEEE HomeSearch IEEE ShopWeb Account Contact IEEE IEEE
MembershipPublicationsServicesStandardsConferencesCareers/Jobs
IEEE-SA IEEE-SA Member Area Search our standards database for Abstract, Sponsor, Status, Contact,Ordering and Historical information. IEEE-SA Standards Association
Products & ServicesIEEE-SA MembershipStandards DevelopmentNews & InformationnavFillerHOMEHOME Icon

IEEE Std 1003.5b-1996 and (Includes IEEE Std 1003.5-1992) IEEE Standard for Information Technology— POSIX® Ada Language Interfaces— Part 1: Binding for System Application Program Interface (API)— Amendment 1: Realtime Extensions -Description

Abstract: This standard is part of the POSIX series of standards for applications and user interfaces 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: 1987 (Ada) and ISO/IEC 9945-1: 1990 (IEEE Std 1003.1-1990) (POSIX), as amended by IEEE Std 1003.1b-1993, IEEE Std 1003.1c-1995, and IEEE Std 1003.1i-1995. Terminology and general requirements, process primitives, the process environment, files and directories, input and output primitives, device- and class-specific functions, language-specific services for Ada, system databases, synchronization, memory management, execution scheduling, clocks and timers, and message passing are covered. It also specifies behavior to support the binding that must be provided by the Ada compilation system.

Keywords: Ada, API application portability, computer language bindings, open systems, operating systems, portable application, POSIX, POSIX language bindings, real-time, thread

Content +

  • 1. General
    • 1.1 Scope
    • 1.2 Normative Cross-References
    • 1.3 Conformance
      • 1.3.1 Implementation Conformance
      • 1.3.2 Application Conformance
  • 2. Terminology and General Requirements
    • 2.1 Editorial Conventions
    • 2.2 Definitions
      • 2.2.1 Terminology
      • 2.2.2 General Terms
      • 2.2.3 Abbreviations
    • 2.3 General Concepts
      • 2.3.1 Process/Active Partition Relationship
      • 2.3.2 Task/Thread Relationship
      • 2.3.3 Ada Character Differences
      • 2.3.4 Posix Signals Are Not Interrupts
      • 2.3.5 System Call Exception Errors
      • 2.3.6 Extended Security Controls
      • 2.3.7 File Access Permissions
      • 2.3.8 File Hierarchy
      • 2.3.9 Filename Portability
      • 2.3.10 File Times Update
      • 2.3.11 Pathname Resolution
      • 2.3.12 Allocated Storage
    • 2.4 Package POSIX
      • 2.4.1 Constants and Static Subtypes
      • 2.4.2 POSIX Characters
      • 2.4.3 POSIX Strings
      • 2.4.4 String Lists
      • 2.4.5 Option Sets
      • 2.4.6 Error Codes and Exceptions
      • 2.4.7 System Identification
      • 2.4.8 Time Types
    • 2.5 Package POSIX_Options
      • 2.5.1 Implementation Options
    • 2.6 Package POSIX_Limits
      • 2.6.1 Implementation Limits
    • 2.7 Package Ada_Streams
    • 2.8 Package System
    • 2.9 Package System_Storage_Elements
    • 2.10 Package POSIX_Page_Alignment
      • 2.10.1 Description
      • 2.10.2 Error Handling
    • 2.11 Environment Description
      • 2.11.1 Time-Zone Information
  • 3. Process Primitives
    • 3.1 Package POSIX_Process_Primitives
      • 3.1.1 Process Template
      • 3.1.2 Process Creation
      • 3.1.3 Process Exit
      • 3.1.4 Termination Status
      • 3.1.5 Wait for Process Termination
    • 3.2 Package POSIX_Unsafe_Process_Primitives
      • 3.2.1 Process Creation
      • 3.2.2 File Execution
    • 3.3 Package POSIX_Signals
      • 3.3.1 Signal Model
      • 3.3.2 Signal Type
      • 3.3.3 Standard Signals
      • 3.3.4 Default Signal Actions
      • 3.3.5 Tasking Safety
      • 3.3.6 Interruptibility
      • 3.3.7 Signal Sets
      • 3.3.8 Block and Unblock Signals
      • 3.3.9 Ignore Signals
      • 3.3.10 Controlling Generation of Signal for Child Process
      • 3.3.11 Examine Pending Signals
      • 3.3.12 Signal Event Notification
      • 3.3.13 Signal Information
      • 3.3.14 Control Signal Queueing
      • 3.3.15 Wait for Signal
      • 3.3.16 Wait for Signal with Information
      • 3.3.17 Signal Entries
      • 3.3.18 Send a Signal
      • 3.3.19 Queue a Signal
      • 3.3.20 Interrupt a Task
  • 4. Process Environment
    • 4.1 Package POSIX_Process_Identification
      • 4.1.1 Process Identification Operations
      • 4.1.2 Process Group Identification
      • 4.1.3 User Identification
      • 4.1.4 User and Group Identification
    • 4.2 Package POSIX_Process_Times
      • 4.2.1 Process Time Accounting
    • 4.3 Package POSIX_Process_Environment
      • 4.3.1 Argument List
      • 4.3.2 Environment Variables
      • 4.3.3 Process Working Directory
    • 4.4 Package POSIX_Calendar
      • 4.4.1 Time Information
      • 4.4.2 Operations on POSIX Times
    • 4.5 Package POSIX_Configurable_System_Limits
      • 4.5.1 Get Configurable System Options
      • 4.5.2 Get Configurable System Limits
  • 5. Files and Directories
    • 5.1 Package POSIX_Permissions
      • 5.1.1 File Permissions
      • 5.1.2 Process Permission Set
    • 5.2 Package POSIX_Files
      • 5.2.1 Create and Remove Files
      • 5.2.2 Inquiries on File Types
      • 5.2.3 Modify File Pathnames
      • 5.2.4 Directory Iteration
      • 5.2.5 Update File Status Information
      • 5.2.6 Check File Accessibility
    • 5.3 Package POSIX_File_Status
      • 5.3.1 Access File Status
      • 5.3.2 Access Status Information
    • 5.4 Package POSIX_Configurable_File_Limits
      • 5.4.1 File Limits
      • 5.4.2 File Restrictions
      • 5.4.3 Pathname-Specific Options
  • 6. Input and Output Primitives
    • 6.1 Package POSIX_IO
      • 6.1.1 Open or Create a File
      • 6.1.2 I/O Buffer Type
      • 6.1.3 Read from a File
      • 6.1.4 Write to a File
      • 6.1.5 File Position Operations
      • 6.1.6 Terminal Operations
      • 6.1.7 File Control
      • 6.1.8 Update File Status Information
      • 6.1.9 Truncate File to A Specified Length
      • 6.1.10 Synchronize a File's State
      • 6.1.11 Data Synchronization
    • 6.2 Package POSIX_File_Locking
      • 6.2.1 Lock and Unlock a Region of a File
    • 6.3 Package POSIX_Asynchronous_IO
      • 6.3.1 AIO Descriptor Type
      • 6.3.2 Attributes of AIO Control Blocks
      • 6.3.3 Asynchronous Read
      • 6.3.4 Asynchronous Write
      • 6.3.5 List Directed I/O
      • 6.3.6 Retrieve Status of Asynchronous I/O Request
      • 6.3.7 Retrieve Bytes Transferred by Asynchronous I/O Request
      • 6.3.8 Cancel Asynchronous I/O Request
      • 6.3.9 Wait for Asynchronous I/O Request to Complete
      • 6.3.10 Asynchronous File and Data Synchronization
  • 7. Device-and Class-Specific Functions
    • 7.1 General Terminal Interface
      • 7.1.1 Interface Characteristics
    • 7.2 Package POSIX_Terminal_Functions
      • 7.2.1 Terminal Characteristics
      • 7.2.2 Input Modes
      • 7.2.3 Output Modes
      • 7.2.4 Control Modes
      • 7.2.5 Local Modes
      • 7.2.6 Retrieve and Define Terminal Modes and Bits per Character
      • 7.2.7 Special Control Characters
      • 7.2.8 Noncanonical Controls
      • 7.2.9 Baud Rate Subprograms
      • 7.2.10 Line Control Operations
      • 7.2.11 Foreground Process Group ID
      • 7.2.12 Generate Terminal Pathname
  • 8. Language-Specific Services for Ada
    • 8.1 Interoperable Ada I/O Services
      • 8.1.1 Requirements
      • 8.1.2 Additional Interpretation of the POSIX.1 Standard
    • 8.2 Package POSIX_Supplement_to_Ada_IO
      • 8.2.1 Parse Form values
      • 8.2.2 Flush Files
  • 9. System Databases
    • 9.1 Package POSIX_User_Database
      • 9.1.1 Access Contents of a User Database Item
      • 9.1.2 Access User Database Items
    • 9.2 Package POSIX_Group_Database
      • 9.2.1 Access Contents of a Group Database Item
      • 9.2.2 Access Elements of the Group Item List of Members
      • 9.2.3 Access Group Database Items
  • 10. Data Interchange Format
  • 11. Synchronization
    • 11.1 Package POSIX_Semaphores
      • 11.1.1 Semaphore and Semaphore Descriptor Types
      • 11.1.2 Initialize an Unnamed Semaphore
      • 11.1.3 Finalize an Unnamed Semaphore
      • 11.1.4 Create/Open a Named Semaphore
      • 11.1.5 Close a Named Semaphore
      • 11.1.6 Remove a Named Semaphore
      • 11.1.7 Decrement a Semaphore
      • 11.1.8 Increment a Semaphore
      • 11.1.9 Get the Value of a Semaphore
    • 11.2 Package POSIX_Mutexes
      • 11.2.1 Mutex Ownership
      • 11.2.2 Mutex and Mutex Descriptor Types
      • 11.2.3 Mutex Attributes Type
      • 11.2.4 Mutex Process Shared Attribute
      • 11.2.5 Mutex Locking Policy Attributes
      • 11.2.6 Initialize and Finalize a Mutex
      • 11.2.7 Change the Ceiling Priority of a Mutex
      • 11.2.8 Lock and Unlock a Mutex
    • 11.3 Package POSIX_Condition_Variables
      • 11.3.1 Condition and Condition Descriptor Types
      • 11.3.2 Condition Variable Attributes Type
      • 11.3.3 Condition Process Shared Attribute
      • 11.3.4 Initialize and Finalize a Condition
      • 11.3.5 Broadcast and Signal a Condition
      • 11.3.6 Wait on a Condition
  • 12. Memory Management
    • 12.1 Package POSIX_Memory_Locking
      • 12.1.1 Lock/Unlock a Process's Address Space
    • 12.2 Package POSIX_Memory_Range_Locking
      • 12.2.1 Lock/Unlock a Range of Process Address Space
    • 12.3 Package POSIX_Memory-Mapping
      • 12.3.1 Map Process Addresses to a Memory Object
      • 12.3.2 Unmap Memory
      • 12.3.3 Change Memory Protection
      • 12.3.4 Memory Object Synchronization
    • 12.4 Package POSIX_Shared_Memory_Objects
      • 12.4.1 Open a Shared Memory Object
      • 12.4.2 Remove a Shared Memory Object
    • 12.5 Package POSIX_Generic_Shared_Memory
      • 12.5.1 Open Shared Memory
      • 12.5.2 Access Shared Memory
      • 12.5.3 Close Shared Memory
      • 12.5.4 Remove Shared Memory
      • 12.5.5 Lock/Unlock Shared Memory
  • 13. Execution Scheduling
    • 13.1 Scheduling Concepts and Terminology
    • 13.2 Package POSIX_Process_Scheduling
      • 13.2.1 Scheduling Parameters
      • 13.2.2 Scheduling Policies
      • 13.2.3 Modify Process Scheduling Policy and Parameters
      • 13.2.4 Process Yield CPU
      • 13.2.5 Get Scheduling Limits
    • 13.3 Task Scheduling
      • 13.3.1 Dynamic Priorities
      • 13.3.2 Task Dispatching Policy Pragma
      • 13.3.3 Task Creation Attributes Pragma
      • 13.3.4 Task Yield CPU
    • 13.4 Synchronization Scheduling
  • 14. Clocks and Timers
    • 14.1 Package POSIX_Timers
      • 14.1.1 Clock and Timer Types
      • 14.1.2 Realtime Clock
      • 14.1.3 Timer State and Timer Options
      • 14.1.4 Clock Operations
      • 14.1.5 Create a Timer
      • 14.1.6 Delete a Timer
      • 14.1.7 Timer Operations
    • 14.2 High Resolution Delay
  • 15. Message Passing
    • 15.1 Package POSIX_Message_Queues
      • 15.1.1 Message Queue Attributes
      • 15.1.2 Open a Message Queue
      • 15.1.3 Close a Message Queue
      • 15.1.4 Remove a Message Queue
      • 15.1.5 Send a Message to a Message Queue
      • 15.1.6 Receive a Message from a Message Queue
      • 15.1.7 Generic Message Passing
      • 15.1.8 Notify Process that a Message is Available
      • 15.1.9 Set/Query Message Queue Attributes
  • 16. Task Management
    • 16.1 Package Ada_Task_Identification
      • 16.1.1 Description
  • Annex A Bibliography
  • Annex B Rationale and Notes
    • B.1 General
      • B.1.1 Purpose and Audience
      • B.1.2 Relation to Other POSIX Standards
      • B.1.3 Ada Language
      • B.1.4 Implementation Model
      • B.1.5 Level of Binding
      • B.1.6 Form of Document
      • B.1.7 Global Issues
      • B.1.8 Naming
      • B.1.9 Mapping C Features to Ada
      • B.1.10 Conformance
    • B.2 Terminology and General Requirements
      • B.2.1 Conventions
      • B.2.2 Definitions
      • B.2.3 General Concepts
      • B.2.4 Package POSIX
      • B.2.5 Package POSIX_Options
      • B.2.6 Package POSIX_Limits
      • B.2.7 Package Ada_Streams
      • B.2.8 Package system
      • B.2.9 Package System_Storage_Elements
      • B.2.10 Package POSIX_Page Alignment
      • B.2.11 Environment Description
    • B.3 Process Primitives
      • B.3.1 Package POSIX_Process_Primitives
      • B.3.2 Process Creation
      • B.3.3 Process Exit
      • B.3.4 Wait for Process Termination
      • B.3.5 Package POSIX_Unsafe_Process_Primitives
      • B.3.6 Package POSIX_Signals
      • B.3.7 Signal Model
      • B.3.8 Signal Masking and Related Concepts
      • B.3.9 Tasking Safety
      • B.3.10 Signal Type
      • B.3.11 Standard Signals
      • B.3.12 Signal Sets
      • B.3.13 Examine and Change Signal Action
      • B.3.14 Signal Queueing
      • B.3.15 Signal Notification Model
      • B.3.16 Examine Pending Signals
      • B.3.17 Send a Signal
      • B.3.18 Binding for sigsuspend
      • B.3.19 Synchronously Accept a Signal
      • B.3.20 Queue a Signal to a Process
      • B.3.21 Send a Signal to a Thread
      • B.3.22 Schedule Alarm
      • B.3.23 Suspend Process Execution
      • B.3.24 Delay Process Execution
      • B.3.25 B.3.25 Task Signal Entries
      • B.3.26 Composability Considerations
    • B.4 Process Environment
      • B.4.1 Organization
      • B.4.2 Package POSIX_Process_Identification
      • B.4.3 Package Process_Times
      • B.4.4 Package POSIX_Process_Environment
      • B.4.5 Package POSIX_Calendar
      • B.4.6 Package POSIX_Configurable_System_Limits
    • B.5 Files and Directories
      • B.5.1 Organization
      • B.5.2 Package POSIX_Permissions
      • B.5.3 Package POSIX_Files
      • B.5.4 Package POSIX_File_Status
      • B.5.5 Package POSIX_Configurable_File_Limits
      • B.5.6 Directory Operations
    • B.6 Input and Output Primitives
      • B.6.1 Package POSIX_IO
      • B.6.2 Package POSIX_File_Locking
      • B.6.3 Package POSIX_Asynchronous_IO
    • B.7 Device- and Class-Specific Functions
    • B.8 Language-Specific Services for Ada
      • B.8.1 General Rationale
      • B.8.2 Limitations on Interoperability
      • B.8.3 Rationale for Form Parameter
      • B.8.4 Unaffected Implementation Dependencies
      • B.8.5 Notes on Specific Topics
    • B.9 System Databases
      • B.9.1 Requirements from POSIX.1
      • B.9.2 Rationale for the Current Design
    • B.10 Data Interchange Format
    • B.11 Synchronization
      • B.11.1 Package POSIX_Semaphores
      • B.11.2 Mutexes & Condition Variables
    • B.12 Memory Management
      • B.12.1 Process Memory Locking
      • B.12.2 Package POSIX_Memory_Mapping
      • B.12.3 Package POSIX_Shared_Memory_Objects
      • B.12.4 Package POSIX_Generic_Shared_Memory
    • B.13 Priority Process Scheduling
      • B.13.1 Scheduling Concepts and Terminology
      • B.13.2 Package POSIX_Process_Scheduling
      • B.13.3 Task Scheduling
      • B.13.4 Synchronization Scheduling
      • B.13.5 Thread Scheduling Pragmas vs. Environment Variables
    • B.14 Clocks and Timers
      • B.14.1 Types and Constants
      • B.14.2 Clock Operations
      • B.14.3 Timer Creation
      • B.14.4 Timer Operations
      • B.14.5 High Resolution Sleep
    • B.15 Message Passing
      • B.15.1 Message Queue Attributes
      • B.15.2 Priorities
      • B.15.3 Generic Message Passing
      • B.15.4 Notification
    • B.16 Task Identification
    • B.17 Thread-Specific Data
  • Annex C Ada/C Cross-References
    • C.1 Ada-to-C Cross-Reference
  • Package Ada_Streams (§)
  • Package Posix (§)
  • Package POSIX Asynchronous_IO (§)
  • Package POSIX_Calendar (§)
  • Package POSIX_Condition_Variables (§)
  • Package POSIX_Configurable_File_Limits (§)
  • Package POSIX_Configurable_System_Limits (§)
  • Package POSIX_File_Locking (§)
  • Package POSIX_File_Status (§)
  • Package POSIX_Files (§)
  • Package POSIX_Generic_Shared_Memory (§)
  • Package POSIX_Group_Database (§)
  • Package POSIX_IO (§)
  • Package POSIX_Limits (§)
  • Package POSIX_Memory_Locking (§)
  • Package POSIX_Memory_Mapping (§)
  • Package POSIX_Memory_Range_Locking (§)
  • Package POSIX_Message_Queues (§)
  • Package POSIX_Mutexes (§)
  • Package POSIX_OPTIONS (§)
  • Package POSIX_Page_Alignment (§)
  • Package POSIX_Permissions (§)
  • Package POSIX_Process_Environment (4.3)
  • Package POSIX_Process_Identification (§)
  • Package POSIX_Process_Primitives (§)
  • Package POSIX_Process_Times (§)
  • Package Package POSIX_Process_Scheduling (§)
  • Package POSIX_Semaphores (§)
  • Package POSIX_Shared_Memory_Objects (§)
  • Package POSIX_Signals (§)
  • Package POSIX_Supplement_to_Ada_IO (§)
  • Package POSIX_Terminal_Functions (§)
  • Package POSIX_Timers (§)
  • Package POSIX_Unsafe_Process_Primitives (§)
  • Package POSIX_User_Database (§)
  • Package System_Storage_Elements (§)
    • C.2 C-to-Ada Cross-Reference

links: [Standard Status] - [Purchase] - [PDF*] - [Portable Applications (POSIX) Collection - Description]

available for Standards Online Portable Applications (POSIX) Collection subscribers only

spacer

Copyright ©2004 IEEE-SA
Contact IEEE-SA
(m.v.rodriguez@ieee.org)
URL: http://standards.ieee.org/reading/ieee/std_public/description/posix/1003.5b-1996_desc.html

spacer