#3993 accepted task

Specify the RTEMS Classic API

Reported by: Sebastian Huber Owned by: Sebastian Huber
Priority: normal Milestone: 6.1
Component: rtems Version: 6
Severity: normal Keywords:
Cc: Blocked By: #3584, #3586, #3588, #3590, #3592, #3594, #3596, #3979, #3980, #3981, #3988, #3989, #3990
Blocking:

Description (last modified by Sebastian Huber)

For the RTEMS Qualification project we need a specification of the RTEMS Classic API. This specification can be used to generate an Interface Control Document (ICD), header files with Doxygen markup and content for the RTEMS Classic API Guide. The RTEMS Classic API is mainly defined in the following header files:

  • <rtems.h>
  • <rtems/config.h>
  • <rtems/extension.h>
  • <rtems/fatal.h>
  • <rtems/init.h>
  • <rtems/io.h>
  • <rtems/rtems/barrier.h>
  • <rtems/rtems/cache.h>
  • <rtems/rtems/clock.h>
  • <rtems/rtems/config.h>
  • <rtems/rtems/dpmem.h>
  • <rtems/rtems/event.h>
  • <rtems/rtems/intr.h>
  • <rtems/rtems/message.h>
  • <rtems/rtems/modes.h>
  • <rtems/rtems/mp.h>
  • <rtems/rtems/object.h>
  • <rtems/rtems/options.h>
  • <rtems/rtems/part.h>
  • <rtems/rtems/ratemon.h>
  • <rtems/rtems/region.h>
  • <rtems/rtems/sem.h>
  • <rtems/rtems/signal.h>
  • <rtems/rtems/status.h>
  • <rtems/rtems/support.h>
  • <rtems/rtems/tasks.h>
  • <rtems/rtems/timer.h>
  • <rtems/rtems/types.h>
  • <rtems/score/stack.h>

Examples for interface specification items are available here:

https://git.rtems.org/sebh/rtems-qual.git/tree/spec/if/rtems/status

You find an example for a generated header file here:

https://git.rtems.org/sebh/rtems.git/tree/cpukit/include/rtems/rtems/status.h?h=qual

The header files are generated by this script:

https://git.rtems.org/sebh/rtems-qual.git/tree/spec2rtems.py

As preliminary work, remove all RTEMS APIs deprecated in RTEMS 5.1.

Use and improve the Interface Specification How-To during the work on this ticket.

Carry out the following tasks for each header file:

  1. Add a interface specification item for each variable, typedef, enum, enumerator, define, macro, function, struct, and union.
  1. For each item analyse the change history using git log -p --follow to determine the copyright holders of the Doxygen markup. Use only Doxygen markup for the specification items from contributors which agreed on a dual-licensing (CC-BY-SA-4.0 OR BSD-2-Clause) in #3899. Use this information to provide copyright statements for the items. The API parts alone (e.g. function names, parameter names, type names, etc.) are not considered to be copyrightable information.
  1. Use the RTEMS documentation sources to document the API. Use only content from contributors which agreed on a dual-licensing (CC-BY-SA-4.0 OR BSD-2-Clause) in #3899.
  1. Add unspecified interface items for interfaces to the implementation, C language, compiler, user provided defines, build system provided defines, etc.
  1. Run the RTEMS test suite with all tests enabled and check for regressions (in particular new warnings).
  1. Create a commit for each header file and send it to the RTEMS mailing list for review.

Change History (39)

comment:1 Changed on Jun 1, 2020 at 11:16:17 AM by Sebastian Huber

Blocked By: 3584, 3588, 3590, 3592, 3594, 3596, 3686, 3979, 3980, 3981, 3988, 3989, 3990 added
Description: modified (diff)

comment:2 Changed on Jun 1, 2020 at 11:17:38 AM by Sebastian Huber

Blocked By: 3686 removed

comment:3 Changed on Jun 1, 2020 at 11:19:05 AM by Sebastian Huber

Blocked By: 3586 added

comment:4 Changed on Jun 1, 2020 at 11:46:42 AM by Sebastian Huber

Description: modified (diff)

comment:5 Changed on Jun 4, 2020 at 12:32:13 PM by Sebastian Huber

Description: modified (diff)
Owner: set to Sebastian Huber
Status: assignedaccepted

comment:6 Changed on Jun 4, 2020 at 5:38:29 PM by Sebastian Huber

Description: modified (diff)

comment:7 Changed on Sep 3, 2020 at 5:00:43 AM by Sebastian Huber <sebastian.huber@…>

In 16ee8cf/rtems-docs:

c-user: Split up semaphore manager

This makes it easier to automatically generate parts of the manager
documentation in the future.

Update #3993.

comment:8 Changed on Sep 3, 2020 at 5:00:46 AM by Sebastian Huber <sebastian.huber@…>

In ba6825c/rtems-docs:

c-user: Split up event manager

This makes it easier to automatically generate parts of the manager
documentation in the future.

Update #3993.

comment:9 Changed on Sep 3, 2020 at 5:00:48 AM by Sebastian Huber <sebastian.huber@…>

In 91f0f97/rtems-docs:

c-user: Split up barrier manager

This makes it easier to automatically generate parts of the manager
documentation in the future.

Update #3993.

comment:10 Changed on Sep 3, 2020 at 5:00:50 AM by Sebastian Huber <sebastian.huber@…>

In 86c39ef/rtems-docs:

c-user: Split up clock manager

This makes it easier to automatically generate parts of the manager
documentation in the future.

Update #3993.

comment:11 Changed on Sep 3, 2020 at 5:00:52 AM by Sebastian Huber <sebastian.huber@…>

In 623a9a1/rtems-docs:

c-user: Split up dual-ported memory manager

This makes it easier to automatically generate parts of the manager
documentation in the future.

Update #3993.

comment:12 Changed on Sep 3, 2020 at 5:00:54 AM by Sebastian Huber <sebastian.huber@…>

In 72295d4/rtems-docs:

c-user: Split up interrupt manager

This makes it easier to automatically generate parts of the manager
documentation in the future.

Update #3993.

comment:13 Changed on Sep 3, 2020 at 5:00:57 AM by Sebastian Huber <sebastian.huber@…>

In 980734f/rtems-docs:

c-user: Split up IO manager

This makes it easier to automatically generate parts of the manager
documentation in the future.

Update #3993.

comment:14 Changed on Sep 3, 2020 at 5:00:59 AM by Sebastian Huber <sebastian.huber@…>

In c75ded2/rtems-docs:

c-user: Split up message manager

This makes it easier to automatically generate parts of the manager
documentation in the future.

Update #3993.

comment:15 Changed on Sep 3, 2020 at 5:01:01 AM by Sebastian Huber <sebastian.huber@…>

In a4119a9/rtems-docs:

c-user: Split up partition manager

This makes it easier to automatically generate parts of the manager
documentation in the future.

Update #3993.

comment:16 Changed on Sep 3, 2020 at 5:01:03 AM by Sebastian Huber <sebastian.huber@…>

In 082054b/rtems-docs:

c-user: Split up rate-monotonic manager

This makes it easier to automatically generate parts of the manager
documentation in the future.

Update #3993.

comment:17 Changed on Sep 3, 2020 at 5:01:05 AM by Sebastian Huber <sebastian.huber@…>

In aebb6fd/rtems-docs:

c-user: Split up region manager

This makes it easier to automatically generate parts of the manager
documentation in the future.

Update #3993.

comment:18 Changed on Sep 3, 2020 at 5:01:08 AM by Sebastian Huber <sebastian.huber@…>

In e3523ed/rtems-docs:

c-user: Split up signal manager

This makes it easier to automatically generate parts of the manager
documentation in the future.

Update #3993.

comment:19 Changed on Sep 3, 2020 at 5:01:10 AM by Sebastian Huber <sebastian.huber@…>

In ccb384b/rtems-docs:

c-user: Split up task manager

This makes it easier to automatically generate parts of the manager
documentation in the future.

Update #3993.

comment:20 Changed on Sep 3, 2020 at 5:01:12 AM by Sebastian Huber <sebastian.huber@…>

In a99bbae/rtems-docs:

c-user: Split up timer manager

This makes it easier to automatically generate parts of the manager
documentation in the future.

Update #3993.

comment:21 Changed on Sep 3, 2020 at 5:01:14 AM by Sebastian Huber <sebastian.huber@…>

In 80df4d6/rtems-docs:

c-user: Split up user extensions manager

This makes it easier to automatically generate parts of the manager
documentation in the future.

Update #3993.

comment:22 Changed on Sep 3, 2020 at 5:01:16 AM by Sebastian Huber <sebastian.huber@…>

In ba9dfcf/rtems-docs:

c-user: Split up scheduling concepts

Introduce a background section.

This makes it easier to automatically generate parts of the scheduling
concepts documentation in the future.

Update #3993.

comment:23 Changed on Sep 18, 2020 at 4:57:09 PM by Sebastian Huber <sebastian.huber@…>

In 0b410b8a/rtems:

rtems: Generate <rtems.h>

Change license to BSD-2-Clause according to file history and
documentation re-licensing agreement.

Update #3053.
Update #3899.
Update #3993.

comment:24 Changed on Oct 8, 2020 at 5:40:38 AM by Sebastian Huber <sebastian.huber@…>

In f815d04/rtems:

rtems: Add "Generated from ..." comments

Improve file header comment.

Update #3993.

comment:25 Changed on Oct 11, 2020 at 1:27:04 PM by Sebastian Huber <sebastian.huber@…>

In 4aae24d/rtems-docs:

c-user: Generate I/O Manager documentation

The manager documentation is a consolidation of the comments in Doxygen
markup and the documentation sources in Sphinx markup. The
documentation was transfered to interface specification items. This
header file was generated from the items by a script.

Update #3993.

comment:26 Changed on Oct 11, 2020 at 2:07:39 PM by Sebastian Huber <sebastian.huber@…>

In 8111a6ba/rtems:

rtems: Generate <rtems/io.h>

The manager documentation is a consolidation of the comments in Doxygen
markup and the documentation sources in Sphinx markup. The
documentation was transfered to interface specification items. This
header file was generated from the items by a script.

Change license to BSD-2-Clause according to file histories and
documentation re-licensing agreement.

Update #3899.
Update #3993.

comment:27 Changed on Nov 12, 2020 at 6:47:02 AM by Sebastian Huber <sebastian.huber@…>

In ec4dcc0/rtems-docs:

c-user: Generate Event Manager documentation

The manager documentation is a consolidation of the comments in Doxygen
markup and the documentation sources in Sphinx markup. The
documentation was transfered to interface specification items. This
header file was generated from the items by a script.

Update #3993.

comment:28 Changed on Nov 12, 2020 at 6:47:04 AM by Sebastian Huber <sebastian.huber@…>

In 530bc2b/rtems-docs:

c-user: Generate Partition Manager documentation

The manager documentation is a consolidation of the comments in Doxygen
markup and the documentation sources in Sphinx markup. The
documentation was transfered to interface specification items. This
header file was generated from the items by a script.

Update #3993.

comment:29 Changed on Nov 12, 2020 at 7:55:26 AM by Sebastian Huber <sebastian.huber@…>

In 1af94608/rtems:

rtems: Generate <rtems/config.h>

Change license to BSD-2-Clause according to file histories and
documentation re-licensing agreement.

Update #3899.
Update #3993.

comment:30 Changed on Nov 12, 2020 at 7:55:30 AM by Sebastian Huber <sebastian.huber@…>

In da44df3/rtems:

rtems: Generate <rtems/rtems/config.h>

Change license to BSD-2-Clause according to file histories and
documentation re-licensing agreement.

Update #3899.
Update #3993.

comment:31 Changed on Nov 12, 2020 at 7:55:33 AM by Sebastian Huber <sebastian.huber@…>

In c0327d8/rtems:

rtems: Generate <rtems/rtems/status.h>

Change license to BSD-2-Clause according to file histories and
documentation re-licensing agreement.

Update #3899.
Update #3993.

comment:32 Changed on Nov 12, 2020 at 7:55:37 AM by Sebastian Huber <sebastian.huber@…>

In e05b100/rtems:

rtems: Generate <rtems/rtems/modes.h>

Change license to BSD-2-Clause according to file histories and
documentation re-licensing agreement.

Update #3899.
Update #3993.

comment:33 Changed on Nov 12, 2020 at 7:55:40 AM by Sebastian Huber <sebastian.huber@…>

In 8de874b/rtems:

rtems: Generate <rtems/rtems/options.h>

Change license to BSD-2-Clause according to file histories and
documentation re-licensing agreement.

Update #3899.
Update #3993.

comment:34 Changed on Nov 12, 2020 at 7:55:44 AM by Sebastian Huber <sebastian.huber@…>

In 9b4458e7/rtems:

rtems: Generate <rtems/rtems/types.h>

Change license to BSD-2-Clause according to file histories and
documentation re-licensing agreement.

Update #3899.
Update #3993.

comment:35 Changed on Nov 12, 2020 at 7:55:47 AM by Sebastian Huber <sebastian.huber@…>

In f75e240/rtems:

rtems: Generate <rtems/rtems/attr.h>

Change license to BSD-2-Clause according to file histories and
documentation re-licensing agreement.

Update #3899.
Update #3993.

comment:36 Changed on Nov 12, 2020 at 7:55:50 AM by Sebastian Huber <sebastian.huber@…>

In 007ee13/rtems:

rtems: Generate <rtems/rtems/event.h>

Change license to BSD-2-Clause according to file histories and
documentation re-licensing agreement.

Update #3899.
Update #3993.

comment:37 Changed on Nov 12, 2020 at 7:55:54 AM by Sebastian Huber <sebastian.huber@…>

In ecc6b2f/rtems:

rtems: Generate <rtems/rtems/part.h>

Change license to BSD-2-Clause according to file histories and
documentation re-licensing agreement.

Update #3899.
Update #3993.

comment:38 Changed on Nov 12, 2020 at 7:55:57 AM by Sebastian Huber <sebastian.huber@…>

In 21af871/rtems:

rtems: Generate <rtems/score/basedefs.h>

Change license to BSD-2-Clause according to file histories and
documentation re-licensing agreement.

Update #3899.
Update #3993.

comment:39 Changed on Nov 20, 2020 at 1:27:03 PM by Sebastian Huber <sebastian.huber@…>

In 05f06aa/rtems-docs:

c-user: Split up object services

This makes it easier to automatically generate parts of the module
documentation in the future.

Update #3993.

Note: See TracTickets for help on using tickets.