Issue created by Sebastian Huber: https://gitlab.rtems.org/rtems/rtos/rtems/-/work_items/5754
`_CPU_Exception_resume()` restores a `CPU_Exception_frame` and continues execution. A fatal error extension needs it to recover from an exception which the system handles. Only `aarch64`, `arm` and `microblaze` define the function. The other ten ports do not. The three definitions disagree. `arm` declares the function in `cpuimpl.h` and takes a `const CPU_Exception_frame *`. `aarch64` and `microblaze` declare it in `cpu.h` and take a `CPU_Exception_frame *`. The port template `cpukit/score/cpu/no_cpu/include/rtems/score/cpu.h` puts the declaration behind `RTEMS_EXCEPTION_EXTENSIONS`, yet `arm` builds and declares it while that option is off for `arm`. Every port defines a `CPU_Exception_frame`, so nothing blocks an implementation. Declare `_CPU_Exception_resume()` in `cpuimpl.h` of every port. Take a `CPU_Exception_frame *`, which is the form of the template. Leave the declaration out of `RTEMS_EXCEPTION_EXTENSIONS`, which keeps the remaining functions of the exception extensions optional. Implement the function in every port. Cover the function with validation tests. Derive the requirements from the ISA and the ABI reference documents of each architecture. The specification items live in another repository, so only the generated sources reach this one. The mapping of an exception to a POSIX signal is a follow-up and is not part of this issue. This description was created with Claude Code assistance. -- View it on GitLab: https://gitlab.rtems.org/rtems/rtos/rtems/-/work_items/5754 You're receiving this email because of your account on gitlab.rtems.org. Unsubscribe from this thread: https://gitlab.rtems.org/-/sent_notifications/5-7obyped49rgy3kuzx23mvcpdo-1d/unsubscribe | Manage all notifications: https://gitlab.rtems.org/-/profile/notifications | Help: https://gitlab.rtems.org/help
_______________________________________________ bugs mailing list [email protected] http://lists.rtems.org/mailman/listinfo/bugs
