Allow messages to be sent between all VMs.
Any VM can send a message to any other VM. The hypervisor acts as a
router to deliver the message to the destination but does not track
higher level state about the communications.
When receiving a message, the source VM is reported so access controls
can be applies and replies can be sent back.
Bug: 116705004
Change-Id: Ib83988eb8ddee1753dfd67a3baa3fb991ebd4dd7
diff --git a/inc/hf/cpu.h b/inc/hf/cpu.h
index b263e39..d598296 100644
--- a/inc/hf/cpu.h
+++ b/inc/hf/cpu.h
@@ -10,10 +10,19 @@
#include "hf/spinlock.h"
enum vcpu_state {
+ /* The vcpu is switched off. */
vcpu_state_off,
+
+ /* The vcpu is ready to be run. */
vcpu_state_ready,
+
+ /* The vcpu is currently running. */
vcpu_state_running,
- vcpu_state_blocked_rpc,
+
+ /* The vcpu is waiting for a message. */
+ vcpu_state_blocked_mailbox,
+
+ /* The vcpu is waiting for an interrupt. */
vcpu_state_blocked_interrupt,
};
@@ -21,7 +30,7 @@
struct spinlock lock;
enum vcpu_state state;
struct vm *vm;
- struct vcpu *rpc_next;
+ struct vcpu *mailbox_next;
struct arch_regs regs;
};