[RTEMS Project] #3993: Specify the RTEMS Classic API
RTEMS trac
trac at rtems.org
Thu Jun 4 12:32:13 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
-------------------------+-------------------------------------------------
Changes (by Sebastian Huber):
* owner: (none) => Sebastian Huber
* status: assigned => accepted
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/specif.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/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:5>
RTEMS Project <http://www.rtems.org/>
RTEMS Project
More information about the bugs
mailing list