1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3 * Copyright (c) 2025 Qualcomm Innovation Center, Inc. All rights reserved.
4 */
5
6 #ifndef _LINUX_GUNYAH_QTVM_H
7 #define _LINUX_GUNYAH_QTVM_H
8
9 #include <linux/notifier.h>
10 #include <linux/gunyah.h>
11
12 enum gunyah_qtvm_state {
13 GUNYAH_QTVM_BEFORE_POWERUP = 1,
14 GUNYAH_QTVM_POWERUP_FAIL = 2,
15 GUNYAH_QTVM_EARLY_POWEROFF = 3,
16 GUNYAH_QTVM_POWEROFF = 4,
17 GUNYAH_QTVM_EXITED = 5,
18 GUNYAH_QTVM_CRASH = 6,
19 };
20
21 #if IS_ENABLED(CONFIG_GUNYAH_QCOM_TRUSTED_VM)
22 int gunyah_qtvm_register_notifier(struct notifier_block *nb);
23 int gunyah_qtvm_unregister_notifier(struct notifier_block *nb);
24 int gunyah_qtvm_register_resource_ticket(struct gunyah_vm_resource_ticket *t,
25 u16 vmid);
26 void gunyah_qtvm_unregister_resource_ticket(struct gunyah_vm_resource_ticket *t,
27 u16 vmid);
28 #else
gunyah_qtvm_register_notifier(struct notifier_block * nb)29 static inline int gunyah_qtvm_register_notifier(struct notifier_block *nb)
30 {
31 return 0;
32 }
gunyah_qtvm_unregister_notifier(struct notifier_block * nb)33 static inline int gunyah_qtvm_unregister_notifier(struct notifier_block *nb)
34 {
35 return 0;
36 }
gunyah_qtvm_register_resource_ticket(struct gunyah_vm_resource_ticket * t,u16 vmid)37 static inline int gunyah_qtvm_register_resource_ticket(
38 struct gunyah_vm_resource_ticket *t, u16 vmid)
39 {
40 return 0;
41 }
gunyah_qtvm_unregister_resource_ticket(struct gunyah_vm_resource_ticket * t,u16 vmid)42 static inline void gunyah_qtvm_unregister_resource_ticket(
43 struct gunyah_vm_resource_ticket *t, u16 vmid)
44 {
45 }
46 #endif
47
48 #endif
49