feat: allow an endpoint to specify optional timeout with FFA_YIELD
An endpoint can yield execution back to the VM that allocated it CPU
cycles rather than busy waiting (such as for an IO operation to
complete). FF-A v1.2 spec allows the endpoint to specify an optional
64-bit timeout.
Signed-off-by: Madhukar Pappireddy <madhukar.pappireddy@arm.com>
Change-Id: I5481c5483f4edd71b95c15a11a118498c71e3fa1
diff --git a/src/arch/aarch64/hypervisor/handler.c b/src/arch/aarch64/hypervisor/handler.c
index cdc9697..1ee1f3d 100644
--- a/src/arch/aarch64/hypervisor/handler.c
+++ b/src/arch/aarch64/hypervisor/handler.c
@@ -576,7 +576,7 @@
*args = api_ffa_rx_acquire(ffa_receiver(*args), current);
return true;
case FFA_YIELD_32:
- *args = api_yield(current, next);
+ *args = api_yield(current, next, args);
return true;
case FFA_MSG_SEND_32:
*args = plat_ffa_msg_send(
@@ -1236,7 +1236,7 @@
* interrupts into EL0 partitions.
*/
if (is_el0_partition) {
- api_yield(vcpu, &new_vcpu);
+ api_yield(vcpu, &new_vcpu, NULL);
return new_vcpu;
}
@@ -1247,7 +1247,7 @@
* TODO: consider giving the scheduler more context,
* somehow.
*/
- api_yield(vcpu, &new_vcpu);
+ api_yield(vcpu, &new_vcpu, NULL);
return new_vcpu;
}
/* WFI */