Why are the CMSIS cache management functions all declared __STATIC_FORCEINLINE?

Hello,

I am compiling some code that has been designed for an ARM CM7 (STM32H745ZI) using a desktop GCC ("gcc (Rev10, Built by MSYS2 project) 11.2.0", running on Windows 10) in order to unit test the parts that do not have any hardware dependancies. Most library functions I can stub out, but the CMSIS cache management functions in "core_cm7.h" I have to work around a bit more because they are all forced inline using "__STATIC_FORCEINLINE".

Is there any particular reason for forcing them to be inline? I'm primarily interested in the DCache functions. The only reason I could think of was so that after you manipulated the cache there would be no other memory accesses (e.g. popping registers or a return address from the stack) which could end up in the cache prior to whatever operation you needed to manage the stack for. But that doesn't seem likely as I would not think those would be the kind of areas to be shared (DMA into the stack? but it would have to be below the current stack frame?).

Thanks in advance.