diff --git a/main.c b/main.c
index 5cb1142..d5cfe55 100644
--- a/main.c
+++ b/main.c
@@ -56,7 +56,7 @@
 };
 
 struct hf_vm {
-	ffa_vm_id_t id;
+	ffa_id_t id;
 	ffa_vcpu_count_t vcpu_count;
 	struct hf_vcpu *vcpu;
 };
@@ -90,12 +90,12 @@
 static DEFINE_SPINLOCK(hf_local_port_hash_lock);
 static int hf_irq;
 static enum cpuhp_state hf_cpuhp_state;
-static ffa_vm_id_t current_vm_id;
+static ffa_id_t current_vm_id;
 
 /**
  * Retrieves a VM from its ID, returning NULL if the VM doesn't exist.
  */
-static struct hf_vm *hf_vm_from_id(ffa_vm_id_t vm_id)
+static struct hf_vm *hf_vm_from_id(ffa_id_t vm_id)
 {
 	if (vm_id < FIRST_SECONDARY_VM_ID ||
 	    vm_id >= FIRST_SECONDARY_VM_ID + hf_vm_count)
@@ -158,7 +158,7 @@
  *
  * It wakes up the thread if it's sleeping, or kicks it if it's already running.
  */
-static void hf_handle_wake_up_request(ffa_vm_id_t vm_id,
+static void hf_handle_wake_up_request(ffa_id_t vm_id,
 				      ffa_vcpu_index_t vcpu)
 {
 	struct hf_vm *vm = hf_vm_from_id(vm_id);
@@ -188,7 +188,7 @@
  * Injects an interrupt into a vCPU of the VM and ensures the vCPU will run to
  * handle the interrupt.
  */
-static void hf_interrupt_vm(ffa_vm_id_t vm_id, uint64_t int_id)
+static void hf_interrupt_vm(ffa_id_t vm_id, uint64_t int_id)
 {
 	struct hf_vm *vm = hf_vm_from_id(vm_id);
 	ffa_vcpu_index_t vcpu;
@@ -223,9 +223,9 @@
 /**
  * Notify all waiters on the given VM.
  */
-static void hf_notify_waiters(ffa_vm_id_t vm_id)
+static void hf_notify_waiters(ffa_id_t vm_id)
 {
-	ffa_vm_id_t waiter_vm_id;
+	ffa_id_t waiter_vm_id;
 
 	while ((waiter_vm_id = hf_mailbox_waiter_get(vm_id)) != -1) {
 		if (waiter_vm_id == PRIMARY_VM_ID) {
@@ -243,7 +243,7 @@
 /**
  * Delivers a message to a VM.
  */
-static void hf_deliver_message(ffa_vm_id_t vm_id)
+static void hf_deliver_message(ffa_id_t vm_id)
 {
 	struct hf_vm *vm = hf_vm_from_id(vm_id);
 	ffa_vcpu_index_t i;
@@ -366,7 +366,7 @@
 		/* Preempted, or wants to wake up another vCPU. */
 		case FFA_INTERRUPT_32:
 		{
-			ffa_vm_id_t vm_id = ffa_vm_id(ret);
+			ffa_id_t vm_id = ffa_vm_id(ret);
 			ffa_vcpu_index_t vcpu_index = ffa_vcpu_index(ret);
 
 			if (vm_id >= FIRST_SECONDARY_VM_ID &&
@@ -984,7 +984,7 @@
 	};
 	int64_t ret;
 	struct ffa_value ffa_ret;
-	ffa_vm_id_t i;
+	ffa_id_t i;
 	ffa_vcpu_index_t j;
 	struct ffa_uuid null_uuid;
 	ffa_vm_count_t secondary_vm_count;
