Lines Matching refs:gtod

1095 static void __kvm_s390_set_tod_clock(struct kvm *kvm, const struct kvm_s390_vm_tod_clock *gtod);
1099 struct kvm_s390_vm_tod_clock gtod;
1101 if (copy_from_user(&gtod, (void __user *)attr->addr, sizeof(gtod)))
1104 if (!test_kvm_facility(kvm, 139) && gtod.epoch_idx)
1106 __kvm_s390_set_tod_clock(kvm, &gtod);
1109 gtod.epoch_idx, gtod.tod);
1131 struct kvm_s390_vm_tod_clock gtod = { 0 };
1133 if (copy_from_user(&gtod.tod, (void __user *)attr->addr,
1134 sizeof(gtod.tod)))
1137 __kvm_s390_set_tod_clock(kvm, &gtod);
1138 VM_EVENT(kvm, 3, "SET: TOD base: 0x%llx", gtod.tod);
1180 struct kvm_s390_vm_tod_clock *gtod)
1188 gtod->tod = htod.tod + kvm->arch.epoch;
1189 gtod->epoch_idx = 0;
1191 gtod->epoch_idx = htod.epoch_idx + kvm->arch.epdx;
1192 if (gtod->tod < htod.tod)
1193 gtod->epoch_idx += 1;
1201 struct kvm_s390_vm_tod_clock gtod;
1203 memset(&gtod, 0, sizeof(gtod));
1204 kvm_s390_get_tod_clock(kvm, &gtod);
1205 if (copy_to_user((void __user *)attr->addr, &gtod, sizeof(gtod)))
1209 gtod.epoch_idx, gtod.tod);
1227 u64 gtod;
1229 gtod = kvm_s390_get_tod_clock_fast(kvm);
1230 if (copy_to_user((void __user *)attr->addr, &gtod, sizeof(gtod)))
1232 VM_EVENT(kvm, 3, "QUERY: TOD base: 0x%llx", gtod);
3879 static void __kvm_s390_set_tod_clock(struct kvm *kvm, const struct kvm_s390_vm_tod_clock *gtod)
3889 kvm->arch.epoch = gtod->tod - htod.tod;
3892 kvm->arch.epdx = gtod->epoch_idx - htod.epoch_idx;
3893 if (kvm->arch.epoch > gtod->tod)
3907 int kvm_s390_try_set_tod_clock(struct kvm *kvm, const struct kvm_s390_vm_tod_clock *gtod)
3911 __kvm_s390_set_tod_clock(kvm, gtod);