/' ' Copyright (c) 2017, ARM Limited and Contributors. All rights reserved. ' ' SPDX-License-Identifier: BSD-3-Clause '/ @startuml autonumber "[#]" participant "SDEI client" as EL2 participant EL3 participant SEL1 activate EL2 EL2->EL3: **SDEI_EVENT_REGISTER**(ev, handler, ...) EL3->EL2: success EL2->EL3: **SDEI_EVENT_ENABLE**(ev) EL3->EL2: success EL2->EL3: **SDEI_PE_UNMASK**() EL3->EL2: 1 ... <> ... EL3<--]: **CRITICAL EVENT** activate EL3 #red note over EL3: Critical event triage EL3->SEL1: dispatch activate SEL1 #salmon note over SEL1: Critical event handling SEL1->EL3: done deactivate SEL1 EL3-->EL3: sdei_dispatch_event(ev) note over EL3: Prepare SDEI dispatch EL3->EL2: dispatch activate EL2 #salmon note over EL2: SDEI handler EL2->EL3: **SDEI_EVENT_COMPLETE()** deactivate EL2 note over EL3: Complete SDEI dispatch EL3->EL2: resumes preempted execution deactivate EL3 ... <> ... @enduml