cpukit/aarch64: Refactor exception handling

This refactors the AArch64 exception handling to remove the mutable code
sections that are generally flagged as a bad idea by code analysis
tools. This also removes any casting between data pointers and function
pointers to avoid the need to use pragmas to disable warnings about such
casting.
This commit is contained in:
Kinsey Moore
2025-06-25 05:59:55 -05:00
committed by Kinsey Moore
parent ad5a2be4c1
commit dc0d3149e5
5 changed files with 199 additions and 165 deletions

View File

@@ -117,13 +117,9 @@ typedef struct {
.end = (uintptr_t) bsp_translation_table_end, \
.flags = AARCH64_MMU_DATA_RW_CACHED \
}, { \
/*
* The vector table must be in writable and executable memory as it stores both
* exception code and the mutable pointer to which it jumps
*/ \
.begin = (uintptr_t) bsp_start_vector_table_begin, \
.end = (uintptr_t) bsp_start_vector_table_end, \
.flags = AARCH64_MMU_CODE_RW_CACHED \
.flags = AARCH64_MMU_CODE_CACHED \
}
/**