1 /*
2  * Project Acrn
3  * Acrn-dm-monitor
4  *
5  * Copyright (C) 2018-2022 Intel Corporation.
6  *
7  * SPDX-License-Identifier: BSD-3-Clause
8  *
9  *
10  * Author: TaoYuhong <yuhong.tao@intel.com>
11  */
12 
13 /* acrn-dm monitor APIS */
14 
15 #ifndef MONITOR_H
16 #define MONITOR_H
17 
18 int monitor_init(struct vmctx *ctx);
19 void monitor_close(void);
20 
21 struct monitor_vm_ops {
22 	int (*stop) (void *arg);
23 	int (*resume) (void *arg);
24 	int (*suspend) (void *arg);
25 	int (*pause) (void *arg);
26 	int (*unpause) (void *arg);
27 	int (*query) (void *arg);
28 	int (*rescan)(void *arg, char *devargs);
29 };
30 
31 int monitor_register_vm_ops(struct monitor_vm_ops *ops, void *arg,
32 			    const char *name);
33 
34 /* helper functions for vm_ops callback developer */
35 unsigned get_wakeup_reason(void);
36 int set_wakeup_timer(time_t t);
37 int acrn_parse_intr_monitor(const char *opt);
38 int vm_monitor_blkrescan(void *arg, char *devargs);
39 
40 int vm_monitor_send_vm_event(const char *msg);
41 
42 #endif
43