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