[RTEMS Project] #2080: Fatal error user extension exposes internal score Internal_errors_Source enum.

RTEMS trac trac at rtems.org
Sun Nov 23 15:43:41 UTC 2014


#2080: Fatal error user extension exposes internal score Internal_errors_Source
enum.
--------------------+----------------------------
 Reporter:  chrisj  |       Owner:  joel.sherrill
     Type:  defect  |      Status:  closed
 Priority:  normal  |   Milestone:  4.11
Component:  cpukit  |     Version:  4.11
 Severity:  normal  |  Resolution:  fixed
 Keywords:          |
--------------------+----------------------------
Changes (by joel.sherrill):

 * status:  new => closed
 * version:  unknown => 4.11
 * resolution:   => fixed


Old description:

> The fatal error user extension as shown here:
>
> http://www.rtems.org/onlinedocs/releases/rtemsdocs-4.10.2/share/rtems/html/c_user/c_user00406.html
>
> references 'Internal_errors_Source' which is an internal score enum.
>
> This interface should not be exposed this way and a "classic" api
> interface should be provided and the error states documented in the user
> manual.
>
> The enum, its location and what it is used for is causing problems where
> changes such as:
>
> http://git.rtems.org/rtems/commit/cpukit/score/include/rtems/score/interr.h?id=038e2f4a8825b8367a2b0102afdb017f0281deeb
>
> are being applied. The change itself is valid because adding a way for an
> application to raise an error is important how-ever it is breaking the
> isolation of the score.
>
> Maybe the error source enum value path in the score is changed to
> uint32_t and bit masked where the a bit states the usage, ie internal or
> external and then the remainder is a value. This removes the need for
> exporting a internal type from the score and allows the classic API to
> grow as it needs without the score being concerned.

New description:

 The fatal error user extension as shown here:

 http://www.rtems.org/onlinedocs/releases/rtemsdocs-4.10.2/share/rtems/html/c_user/c_user00406.html

 references 'Internal_errors_Source' which is an internal score enum.

 This interface should not be exposed this way and a "classic" api
 interface should be provided and the error states documented in the user
 manual.

 The enum, its location and what it is used for is causing problems where
 changes such as:

 http://git.rtems.org/rtems/commit/cpukit/score/include/rtems/score/interr.h?id=038e2f4a8825b8367a2b0102afdb017f0281deeb

 are being applied. The change itself is valid because adding a way for an
 application to raise an error is important how-ever it is breaking the
 isolation of the score.

 Maybe the error source enum value path in the score is changed to uint32_t
 and bit masked where the a bit states the usage, ie internal or external
 and then the remainder is a value. This removes the need for exporting a
 internal type from the score and allows the classic API to grow as it
 needs without the score being concerned.

--

Comment:

 Sebastian did significant rework on the normal and fatal termination path.
 If there are still issues, raise another ticket.

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


More information about the bugs mailing list