4、中断注册
本节详细描述了每个软件组件(参见软件组件)在注册中断类型处理程序期间的作用。
4.1.EL3运行时固件
此组件为中断类型的处理程序声明以下原型。
typedef uint64_t (*interrupt_type_handler_t)(uint32_t id,
uint32_t flags,
void *handle,
void *cookie);
id 参数是保留的,只有在有一种确定id的简单方法时,才能在将来用于传递最高挂起中断的中断id。当前它包含INTR_ID_UNAVAILABLE。
flags参数包含以下杂项信息。
- 1、安全状态,位[0]。该位指示生成中断时较低异常级别的安全状态。值1表示它处于非安全状态。值0表示它处于安全状态。处理程序可以使用该位来确保按照注册期间指定的路由模型生成和路由中断。
- 2、保留,位[31:1]。剩余的位保留供将来使用。
handle参数指向flags参数中指定的安全状态的当前cpu的cpu_text结构。
一旦处理程序例程完成,执行将返回到安全或非安全状态。处理程序例程必须返回指向目标安全状态的当前cpu的cpu_text结构的指针。在AArch64上,此返回值当前被调用者忽略,因为处理程序需要通过上下文管理库API设置要使用的适当cpu_text。可移植中断处理程序实现必须在返回指针指向的结构中以及通过上下文管理库API设