Lines Matching refs:gtod

1226 static void __kvm_s390_set_tod_clock(struct kvm *kvm, const struct kvm_s390_vm_tod_clock *gtod);
1230 struct kvm_s390_vm_tod_clock gtod;
1232 if (copy_from_user(&gtod, (void __user *)attr->addr, sizeof(gtod)))
1235 if (!test_kvm_facility(kvm, 139) && gtod.epoch_idx)
1237 __kvm_s390_set_tod_clock(kvm, &gtod);
1240 gtod.epoch_idx, gtod.tod);
1262 struct kvm_s390_vm_tod_clock gtod = { 0 };
1264 if (copy_from_user(&gtod.tod, (void __user *)attr->addr,
1265 sizeof(gtod.tod)))
1268 __kvm_s390_set_tod_clock(kvm, &gtod);
1269 VM_EVENT(kvm, 3, "SET: TOD base: 0x%llx", gtod.tod);
1311 struct kvm_s390_vm_tod_clock *gtod)
1319 gtod->tod = clk.tod + kvm->arch.epoch;
1320 gtod->epoch_idx = 0;
1322 gtod->epoch_idx = clk.ei + kvm->arch.epdx;
1323 if (gtod->tod < clk.tod)
1324 gtod->epoch_idx += 1;
1332 struct kvm_s390_vm_tod_clock gtod;
1334 memset(&gtod, 0, sizeof(gtod));
1335 kvm_s390_get_tod_clock(kvm, &gtod);
1336 if (copy_to_user((void __user *)attr->addr, &gtod, sizeof(gtod)))
1340 gtod.epoch_idx, gtod.tod);
1358 u64 gtod;
1360 gtod = kvm_s390_get_tod_clock_fast(kvm);
1361 if (copy_to_user((void __user *)attr->addr, &gtod, sizeof(gtod)))
1363 VM_EVENT(kvm, 3, "QUERY: TOD base: 0x%llx", gtod);
4542 static void __kvm_s390_set_tod_clock(struct kvm *kvm, const struct kvm_s390_vm_tod_clock *gtod)
4552 kvm->arch.epoch = gtod->tod - clk.tod;
4555 kvm->arch.epdx = gtod->epoch_idx - clk.ei;
4556 if (kvm->arch.epoch > gtod->tod)
4570 int kvm_s390_try_set_tod_clock(struct kvm *kvm, const struct kvm_s390_vm_tod_clock *gtod)
4574 __kvm_s390_set_tod_clock(kvm, gtod);