[RTEMS Project] #3993: Specify the RTEMS Classic API

RTEMS trac trac at rtems.org
Thu Jun 4 17:38:29 UTC 2020


#3993: Specify the RTEMS Classic API
-------------------------+-------------------------------------------------
 Reporter:  Sebastian    |       Owner:  Sebastian Huber
  Huber                  |
     Type:  task         |      Status:  accepted
 Priority:  normal       |   Milestone:  6.1
Component:  rtems        |     Version:  6
 Severity:  normal       |  Resolution:
 Keywords:               |  Blocked By:  3584, 3586, 3588, 3590, 3592,
 Blocking:               |  3594, 3596, 3979, 3980, 3981, 3988, 3989, 3990
-------------------------+-------------------------------------------------
Description changed by Sebastian Huber:

Old description:

> 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/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
> [https://docs.rtems.org/branches/master/eng/req/howto.html#interface-
> specification 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.
>
> 2. 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.
>
> 3. 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.
>
> 4. Add unspecified interface items for interfaces to the implementation,
> C language, compiler, user provided defines, build system provided
> defines, etc.
>
> 5. Run the RTEMS test suite with all tests enabled and check for
> regressions (in particular new warnings).
>
> 6. Create a commit for each header file and send it to the RTEMS mailing
> list for review.

New description:

 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
 [https://docs.rtems.org/branches/master/eng/req/howto.html#interface-
 specification 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.

 2. 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.

 3. 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.

 4. Add unspecified interface items for interfaces to the implementation, C
 language, compiler, user provided defines, build system provided defines,
 etc.

 5. Run the RTEMS test suite with all tests enabled and check for
 regressions (in particular new warnings).

 6. Create a commit for each header file and send it to the RTEMS mailing
 list for review.

--

--
Ticket URL: <http://devel.rtems.org/ticket/3993#comment:6>
RTEMS Project <http://www.rtems.org/>
RTEMS Project


More information about the bugs mailing list