blob: 3986b207a395fcf8f0c0a933cd17ceccfd0c0e9d [file]
/* SPDX-License-Identifier: GPL-2.0-only */
/*
* Copyright (c) 2025 Qualcomm Innovation Center, Inc. All rights reserved.
*/
#ifndef _LINUX_GUNYAH_QTVM_H
#define _LINUX_GUNYAH_QTVM_H
#include <linux/notifier.h>
#include <linux/gunyah.h>
enum gunyah_qtvm_state {
GUNYAH_QTVM_BEFORE_POWERUP = 1,
GUNYAH_QTVM_POWERUP_FAIL = 2,
GUNYAH_QTVM_EARLY_POWEROFF = 3,
GUNYAH_QTVM_POWEROFF = 4,
GUNYAH_QTVM_EXITED = 5,
GUNYAH_QTVM_CRASH = 6,
};
#if IS_ENABLED(CONFIG_GUNYAH_QCOM_TRUSTED_VM)
int gunyah_qtvm_register_notifier(struct notifier_block *nb);
int gunyah_qtvm_unregister_notifier(struct notifier_block *nb);
int gunyah_qtvm_register_resource_ticket(struct gunyah_vm_resource_ticket *t,
u16 vmid);
void gunyah_qtvm_unregister_resource_ticket(struct gunyah_vm_resource_ticket *t,
u16 vmid);
#else
static inline int gunyah_qtvm_register_notifier(struct notifier_block *nb)
{
return 0;
}
static inline int gunyah_qtvm_unregister_notifier(struct notifier_block *nb)
{
return 0;
}
static inline int gunyah_qtvm_register_resource_ticket(
struct gunyah_vm_resource_ticket *t, u16 vmid)
{
return 0;
}
static inline void gunyah_qtvm_unregister_resource_ticket(
struct gunyah_vm_resource_ticket *t, u16 vmid)
{
}
#endif
#endif