{
RTCState *s = vcpu_vrtc(v);
+ if ( !has_vrtc(v->domain) )
+ return;
+
if ( v->vcpu_id == 0 )
{
migrate_timer(&s->update_timer, v->processor);;
{
RTCState *s = domain_vrtc(d);
int rc;
+
+ if ( !has_vrtc(d) )
+ return 0;
+
spin_lock(&s->lock);
rc = hvm_save_entry(RTC, 0, h, &s->hw);
spin_unlock(&s->lock);
{
RTCState *s = domain_vrtc(d);
+ if ( !has_vrtc(d) )
+ return -ENODEV;
+
spin_lock(&s->lock);
/* Restore the registers */
{
RTCState *s = domain_vrtc(d);
+ if ( !has_vrtc(d) )
+ return;
+
TRACE_0D(TRC_HVM_EMUL_RTC_STOP_TIMER);
destroy_periodic_time(&s->pt);
s->period = 0;
{
RTCState *s = domain_vrtc(d);
+ if ( !has_vrtc(d) )
+ return;
+
spin_lock_init(&s->lock);
init_timer(&s->update_timer, rtc_update_timer, s, smp_processor_id());
{
RTCState *s = domain_vrtc(d);
+ if ( !has_vrtc(d) )
+ return;
+
spin_barrier(&s->lock);
TRACE_0D(TRC_HVM_EMUL_RTC_STOP_TIMER);
{
RTCState *s = domain_vrtc(d);
+ if ( !has_vrtc(d) )
+ return;
+
spin_lock(&s->lock);
s->current_tm = gmtime(get_localtime(d));
spin_unlock(&s->lock);