mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-08-12 13:32:31 +00:00
When a guest OS performs an RTC change action, we wish this event be captured by developers, and then they can decide what to do with it. (e.g., whether to change physical RTC) There are some facts that makes RTC change event a bit complicated: - There are 7 RTC date/time regs (year, month…). They can only be updated one by one. - RTC time is not reliable before date/time update is finished. - Guests can update RTC date/time regs in any order. - Guests may update RTC date/time regs during either RTC halted or not halted. A single date/time update event is not reliable. We have to wait for the guest to finish the update process. So the DM's event handler sets up a timer, and wait for some time (1 second). If no more change happens befor the timer expires, we can conclude that the RTC change has been done. Then the rtc change event is emitted. This logic of event handler can be used to process HV vrtc time change event too. Tracked-On: #8547 Signed-off-by: Wu Zhou <wu.zhou@intel.com> Reviewed-by: Jian Jun Chen <jian.jun.chen@intel.com>
19 lines
359 B
C
19 lines
359 B
C
/*
|
|
* Copyright (C) 2019-2023 Intel Corporation.
|
|
*
|
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
*/
|
|
|
|
#ifndef VM_EVENT_H
|
|
#define VM_EVENT_H
|
|
|
|
#include <types.h>
|
|
#include "vmmapi.h"
|
|
|
|
int vm_event_init(struct vmctx *ctx);
|
|
int vm_event_deinit(void);
|
|
int dm_send_vm_event(struct vm_event *event);
|
|
uint32_t get_dm_vm_event_overrun_count(void);
|
|
|
|
#endif /* VM_EVENT_H */
|