feat(notifications): get framework notifications
Get framework notifications in FFA_NOTIFICATION_GET handler. If flag
for SPM notifications is set:
- SPMC returns SPM framework notifications set for the receiver VM.
- Hypervisor forwards call to SPMC.
If flag for Hypervisor notifications is set:
- SPMC returns Hypervisor framework notifications set for the VM;
- Hypervisor retrieves Hypervisor framework notifications set in the
SPMC and merge with its own bitmap.
Change-Id: If371accc35bf2bd6e0425fadd5e1901286eaadc4
Signed-off-by: J-Alves <joao.alves@arm.com>
Signed-off-by: Federico Recanati <federico.recanati@arm.com>
diff --git a/src/api.c b/src/api.c
index 79095f9..7424b24 100644
--- a/src/api.c
+++ b/src/api.c
@@ -3233,6 +3233,18 @@
receiver_locked, true, vcpu_id);
}
+ if ((flags & FFA_NOTIFICATION_FLAG_BITMAP_HYP) != 0U ||
+ (flags & FFA_NOTIFICATION_FLAG_BITMAP_SPM) != 0U) {
+ if (!plat_ffa_notifications_get_framework_notifications(
+ receiver_locked, &framework_notifications, flags,
+ vcpu_id, &ret)) {
+ dlog_verbose(
+ "Failed to get notifications from "
+ "framework.\n");
+ goto out;
+ }
+ }
+
ret = api_ffa_notification_get_success_return(
sp_notifications, vm_notifications, framework_notifications);