gcc: ARM ARMv8-M Security Extensions

1 
1 6.59.9 ARM ARMv8-M Security Extensions
1 --------------------------------------
1 
1 GCC implements the ARMv8-M Security Extensions as described in the
1 ARMv8-M Security Extensions: Requirements on Development Tools
1 Engineering Specification, which can be found at
1 <https://developer.arm.com/documentation/ecm0359818/latest/>.
1 
1  As part of the Security Extensions GCC implements two new function
1 attributes: 'cmse_nonsecure_entry' and 'cmse_nonsecure_call'.
1 
1  As part of the Security Extensions GCC implements the intrinsics below.
1 FPTR is used here to mean any function pointer type.
1 
1      cmse_address_info_t cmse_TT (void *)
1      cmse_address_info_t cmse_TT_fptr (FPTR)
1      cmse_address_info_t cmse_TTT (void *)
1      cmse_address_info_t cmse_TTT_fptr (FPTR)
1      cmse_address_info_t cmse_TTA (void *)
1      cmse_address_info_t cmse_TTA_fptr (FPTR)
1      cmse_address_info_t cmse_TTAT (void *)
1      cmse_address_info_t cmse_TTAT_fptr (FPTR)
1      void * cmse_check_address_range (void *, size_t, int)
1      typeof(p) cmse_nsfptr_create (FPTR p)
1      intptr_t cmse_is_nsfptr (FPTR)
1      int cmse_nonsecure_caller (void)
1