1 /*
2  * include/asm-arm/monitor.h
3  *
4  * Arch-specific monitor_op domctl handler.
5  *
6  * Copyright (c) 2015 Tamas K Lengyel (tamas@tklengyel.com)
7  * Copyright (c) 2016, Bitdefender S.R.L.
8  *
9  * This program is free software; you can redistribute it and/or
10  * modify it under the terms of the GNU General Public
11  * License v2 as published by the Free Software Foundation.
12  *
13  * This program is distributed in the hope that it will be useful,
14  * but WITHOUT ANY WARRANTY; without even the implied warranty of
15  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16  * General Public License for more details.
17  *
18  * You should have received a copy of the GNU General Public
19  * License along with this program; If not, see <http://www.gnu.org/licenses/>.
20  */
21 
22 #ifndef __ASM_ARM_MONITOR_H__
23 #define __ASM_ARM_MONITOR_H__
24 
25 #include <xen/sched.h>
26 #include <public/domctl.h>
27 
28 #define HAS_ARCH_MONITOR_DOMCTL_EVENT
29 
30 #include <asm-generic/monitor.h>
31 
32 int arch_monitor_domctl_event(struct domain *d,
33                               struct xen_domctl_monitor_op *mop);
34 
arch_monitor_get_capabilities(struct domain * d)35 static inline uint32_t arch_monitor_get_capabilities(struct domain *d)
36 {
37     uint32_t capabilities = 0;
38 
39     capabilities = (1U << XEN_DOMCTL_MONITOR_EVENT_GUEST_REQUEST |
40                     1U << XEN_DOMCTL_MONITOR_EVENT_PRIVILEGED_CALL);
41 
42     return capabilities;
43 }
44 
45 int monitor_smc(void);
46 
47 #endif /* __ASM_ARM_MONITOR_H__ */
48