Update the POSIX Compliance Tracking Spreadsheet. Add standards.

This update adds the following:

C11 Programming Language Standard
FACE Technical Standard Edition 3.0 (four profiles)
Software Communication Architecture Specification 2.2.2 (one profile)
Software Communication Architecture Specification 4.1 (three profiles)
This commit is contained in:
Joel Sherrill 2018-03-09 14:53:36 -06:00
parent 2a0664402b
commit 0472eada76
6 changed files with 1434 additions and 1208 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -13,29 +13,49 @@ import sys
standards = [
'RTEMS',
'POSIX-2008',
'POSIX-2003',
'PSE51',
'PSE52',
'PSE53',
'PSE54',
'C99',
'C11',
'FACE 2.1 Security',
'FACE 2.1 Safety Base',
'FACE 2.1 Safety Extended',
'FACE 2.1 General Purpose'
'FACE 2.1 General Purpose',
'FACE 3.0 Security',
'FACE 3.0 Safety Base',
'FACE 3.0 Safety Extended',
'FACE 3.0 General Purpose',
'SCA 2.2.2 AEP',
'SCA 4.1 Ultra Lightweight AEP',
'SCA 4.1 Lightweight AEP',
'SCA 4.1 [Full] AEP'
]
standard_names = {
'RTEMS' : 'RTEMS Complete Profile',
'POSIX-2008' : 'POSIX-2008',
'POSIX-2003' : 'POSIX-2003',
'PSE51' : 'POSIX PSE51 - Minimal',
'PSE52' : 'POSIX PSE52 - Real-Time Controller',
'PSE53' : 'POSIX PSE53 - Dedicated',
'PSE54' : 'POSIX PSE54 - Multipurpose',
'C99' : 'C99 Standard Library',
'C11' : 'C11 Standard Library',
'FACE 2.1 Security' : 'FACE 2.1 Security',
'FACE 2.1 Safety Base' : 'FACE 2.1 Safety Base',
'FACE 2.1 Safety Extended': 'FACE 2.1 Safety Extended',
'FACE 2.1 General Purpose': 'FACE 2.1 General Purpose'
'FACE 2.1 General Purpose': 'FACE 2.1 General Purpose',
'FACE 3.0 Security' : 'FACE 3.0 Security',
'FACE 3.0 Safety Base' : 'FACE 3.0 Safety Base',
'FACE 3.0 Safety Extended': 'FACE 3.0 Safety Extended',
'FACE 3.0 General Purpose': 'FACE 3.0 General Purpose',
'SCA 2.2.2 AEP' : 'SCA 2.2.2 AEP',
'SCA 4.1 Ultra Lightweight AEP' : 'SCA 4.1 Ultra Lightweight AEP',
'SCA 4.1 Lightweight AEP' : 'SCA 4.1 Lightweight AEP',
'SCA 4.1 [Full] AEP' : 'SCA 4.1 [Full] AEP'
}
col_names = {
@ -44,15 +64,25 @@ col_names = {
'rtems-net' : 'RTEMS w/ Networking',
'rtems-impl' : 'RTEMS Impl Note',
'POSIX-2008' : 'IEEE Std 1003.1-2008',
'POSIX-2003' : 'IEEE Std 1003.1-2003',
'PSE51' : 'PSE51',
'PSE52' : 'PSE52',
'PSE53' : 'PSE53',
'PSE54' : 'PSE54',
'C99' : 'C99',
'C11' : 'C11',
'FACE 2.1 Security' : 'FACE 2.1 Security',
'FACE 2.1 Safety Base' : 'FACE 2.1 Safety Base',
'FACE 2.1 Safety Extended' : 'FACE 2.1 Safety Extended',
'FACE 2.1 General Purpose' : 'FACE 2.1 General Purpose'
'FACE 2.1 General Purpose' : 'FACE 2.1 General Purpose',
'FACE 3.0 Security' : 'FACE 3.0 Security',
'FACE 3.0 Safety Base' : 'FACE 3.0 Safety Base',
'FACE 3.0 Safety Extended' : 'FACE 3.0 Safety Extended',
'FACE 3.0 General Purpose' : 'FACE 3.0 General Purpose',
'SCA 2.2.2 AEP' : 'SCA 2.2.2 AEP',
'SCA 4.1 Ultra Lightweight AEP' : 'SCA 4.1 Ultra Lightweight AEP',
'SCA 4.1 Lightweight AEP' : 'SCA 4.1 Lightweight AEP',
'SCA 4.1 [Full] AEP' : 'SCA 4.1 [Full] AEP'
}
#

View File

@ -34,6 +34,13 @@ specific implementations. Still others may be impossible to implement
without multiple processes or can only be implemented in a restricted
fashion.
Missing methods required by the C99 standard or FACE Technical
Standard Edition 3.0 General Purpose Profile are good candidates to add.
Proposals to add missing methods from the C11 standard should be reviewed
by RTEMS core developers to ensure the effort is well spent. There are
rumors that some optional methods that are not being widely implemented
will be removed in a future versino of the C Programming Language standard.
The next chapter in this document describes each of the standards
with which the RTEMS alignment is tracked. Each subsequent chapter in
this document presents the alignment of RTEMS with a specific standard

View File

@ -22,10 +22,11 @@ independent of any standard and represents a union of multiple
standards. For example, RTEMS supports BSD derived methods that
are not in POSIX.
The IEEE Std 1003.1-2008 API is the 2008 edition of the POSIX standard.
It is an update from the 2003 edition. Each edition of the POSIX standard
tends to add some methods, deprecate some methods, and obsolete
(e.g. remove) other methods.
The IEEE Standard 1003.1 is the POSIX standard. Specifically, IEEE
Standard 1003.1-2008 is the 2003 edition of the POSIX standard and IEEE
Standard 1003.1-2008 is the 2008 edition. The 2008 is is an update from
the 2003 edition. Each edition of the POSIX standard tends to add some
methods, deprecate some methods, and obsolete (e.g. remove) other methods.
PSE51 through PSE54 are Open Group defined profiles of the 2003 edition
of the POSIX standard. These profiles are:
@ -49,10 +50,16 @@ of the POSIX standard. These profiles are:
The C99 Programming Language standard defines the Standard C Library. This
library is largely included by reference in the POSIX standard.
The Open Group FACE Consortium has defined four POSIX profiles targetting
the avionics application domain. The FACE Technical Standard has been
through multiple revisions and the POSIX API profiles are identical in
Editions 1.0, 2.0, and 2.1. They are as follows:
The C11 Programming Language standard defines also defines an
updated version of the Standard C Library. It deletes a few methods
from the C99 version but adds many methods. A large portion of these
methods are optional and not commonly implemented.
The Open Group FACE Consortium (https://www.opengroup.org/face)
has defined four POSIX profiles targetting the avionics application
domain. The FACE Technical Standard has been through multiple revisions
and the POSIX API profiles are identical in Editions 1.0, 2.0, 2.1,
and 2.1.1. In these editions, the profiles are as follows:
* Security - 163 APIs, single process, no FILE *
@ -62,7 +69,29 @@ Editions 1.0, 2.0, and 2.1. They are as follows:
* General Purpose - 812 APIs, multi-process, much more
FACE Technical Standard Edition 3.0 adds the requirement for an
operating system to support ``clock_nanosleep()`` in all profiles and
defines one additional subcommand for the ``posix_devctl()`` methods.
RTEMS provides all of the methods required by the FACE Safety BASE profile
and all of the methods in the Safety Extended profile which do not require
multiple processes. Similarly, RTEMS provides most of the methods in the
General Purpose profile which do not require multiple processes.
The Software Communications Architecture (SCA) specification targets the
requirements for software-defined radios. This specification was originally
developed in support of the Joint Tactical Radio System (JTRS) program
in conjunction with the Object Management Group (OMG). This standard is
now maintained by the Wireless Innovation Forum with support from the
U.S. Navy Joint Tactical Network Center (JTNC). Some URLs of interest:
* SCA at Wireless Innovation Forum - http://www.wirelessinnovation.org/sca-based-standards-library
* JTRS - https://en.wikipedia.org/wiki/Joint_Tactical_Radio_System
* JTNC - http://www.public.navy.mil/jtnc/Pages/home.aspx
The SCA standard is hosted at the Wireless Innovation Forum with JTNC
hosting supplemental information.
RTEMS includes all methods required by the SCA POSIX profiles.

View File

@ -28,6 +28,6 @@ def gen_posix_rst(task):
def build(ctx):
ctx(rule = gen_posix_rst,
source = ['posix_rst.py', 'RTEMS-Standards-Compliance-v1.csv'],
source = ['posix_rst.py', 'RTEMS-Standards-Compliance-v4.csv'],
target = 'generated-posix-compliance.rst')
doc_build(ctx, extra_source = ['generated-posix-compliance.rst'])