Lines Matching defs:data

32 static int kvm_xen_setattr_evtchn(struct kvm *kvm, struct kvm_xen_hvm_attr *data);
195 * paranoid about that, and matching it with our internal data
604 int kvm_xen_hvm_set_attr(struct kvm *kvm, struct kvm_xen_hvm_attr *data)
609 switch (data->type) {
611 if (!IS_ENABLED(CONFIG_64BIT) && data->u.long_mode) {
615 kvm->arch.xen.long_mode = !!data->u.long_mode;
623 r = kvm_xen_shared_info_init(kvm, data->u.shared_info.gfn);
628 if (data->u.vector && data->u.vector < 0x10)
632 kvm->arch.xen.upcall_vector = data->u.vector;
639 r = kvm_xen_setattr_evtchn(kvm, data);
644 kvm->arch.xen.xen_version = data->u.xen_version;
655 kvm->arch.xen.runstate_update_flag = !!data->u.runstate_update_flag;
667 int kvm_xen_hvm_get_attr(struct kvm *kvm, struct kvm_xen_hvm_attr *data)
673 switch (data->type) {
675 data->u.long_mode = kvm->arch.xen.long_mode;
681 data->u.shared_info.gfn = gpa_to_gfn(kvm->arch.xen.shinfo_cache.gpa);
683 data->u.shared_info.gfn = KVM_XEN_INVALID_GFN;
688 data->u.vector = kvm->arch.xen.upcall_vector;
693 data->u.xen_version = kvm->arch.xen.xen_version;
702 data->u.runstate_update_flag = kvm->arch.xen.runstate_update_flag;
714 int kvm_xen_vcpu_set_attr(struct kvm_vcpu *vcpu, struct kvm_xen_vcpu_attr *data)
721 switch (data->type) {
729 if (data->u.gpa == KVM_XEN_INVALID_GPA) {
736 data->u.gpa, sizeof(struct vcpu_info));
743 if (data->u.gpa == KVM_XEN_INVALID_GPA) {
750 data->u.gpa,
763 if (data->u.gpa == KVM_XEN_INVALID_GPA) {
782 sz1 = PAGE_SIZE - (data->u.gpa & ~PAGE_MASK);
784 data->u.gpa, sz1);
793 BUG_ON((data->u.gpa + sz1) & ~PAGE_MASK);
795 data->u.gpa + sz1, sz2);
808 if (data->u.runstate.state > RUNSTATE_offline) {
813 kvm_xen_update_runstate(vcpu, data->u.runstate.state);
822 if (data->u.runstate.state > RUNSTATE_offline) {
826 if (data->u.runstate.state_entry_time !=
827 (data->u.runstate.time_running +
828 data->u.runstate.time_runnable +
829 data->u.runstate.time_blocked +
830 data->u.runstate.time_offline)) {
835 data->u.runstate.state_entry_time) {
840 vcpu->arch.xen.current_runstate = data->u.runstate.state;
842 data->u.runstate.state_entry_time;
844 data->u.runstate.time_running;
846 data->u.runstate.time_runnable;
848 data->u.runstate.time_blocked;
850 data->u.runstate.time_offline;
860 if (data->u.runstate.state > RUNSTATE_offline &&
861 data->u.runstate.state != (u64)-1) {
866 if (data->u.runstate.state_entry_time !=
867 (data->u.runstate.time_running +
868 data->u.runstate.time_runnable +
869 data->u.runstate.time_blocked +
870 data->u.runstate.time_offline)) {
877 data->u.runstate.state_entry_time)) {
883 data->u.runstate.state_entry_time;
885 data->u.runstate.time_running;
887 data->u.runstate.time_runnable;
889 data->u.runstate.time_blocked;
891 data->u.runstate.time_offline;
893 if (data->u.runstate.state <= RUNSTATE_offline)
894 kvm_xen_update_runstate(vcpu, data->u.runstate.state);
901 if (data->u.vcpu_id >= KVM_MAX_VCPUS)
904 vcpu->arch.xen.vcpu_id = data->u.vcpu_id;
910 if (data->u.timer.port &&
911 data->u.timer.priority != KVM_IRQ_ROUTING_XEN_EVTCHN_PRIO_2LEVEL) {
921 vcpu->arch.xen.timer_virq = data->u.timer.port;
924 if (data->u.timer.port && data->u.timer.expires_ns)
925 kvm_xen_start_timer(vcpu, data->u.timer.expires_ns,
926 data->u.timer.expires_ns -
933 if (data->u.vector && data->u.vector < 0x10)
936 vcpu->arch.xen.upcall_vector = data->u.vector;
950 int kvm_xen_vcpu_get_attr(struct kvm_vcpu *vcpu, struct kvm_xen_vcpu_attr *data)
956 switch (data->type) {
959 data->u.gpa = vcpu->arch.xen.vcpu_info_cache.gpa;
961 data->u.gpa = KVM_XEN_INVALID_GPA;
967 data->u.gpa = vcpu->arch.xen.vcpu_time_info_cache.gpa;
969 data->u.gpa = KVM_XEN_INVALID_GPA;
979 data->u.gpa = vcpu->arch.xen.runstate_cache.gpa;
989 data->u.runstate.state = vcpu->arch.xen.current_runstate;
998 data->u.runstate.state = vcpu->arch.xen.current_runstate;
999 data->u.runstate.state_entry_time =
1001 data->u.runstate.time_running =
1003 data->u.runstate.time_runnable =
1005 data->u.runstate.time_blocked =
1007 data->u.runstate.time_offline =
1017 data->u.vcpu_id = vcpu->arch.xen.vcpu_id;
1022 data->u.timer.port = vcpu->arch.xen.timer_virq;
1023 data->u.timer.priority = KVM_IRQ_ROUTING_XEN_EVTCHN_PRIO_2LEVEL;
1024 data->u.timer.expires_ns = vcpu->arch.xen.timer_expires;
1029 data->u.vector = vcpu->arch.xen.upcall_vector;
1041 int kvm_xen_write_hypercall_page(struct kvm_vcpu *vcpu, u64 data)
1044 u32 page_num = data & ~PAGE_MASK;
1045 u64 page_addr = data & PAGE_MASK;
1820 struct kvm_xen_hvm_attr *data)
1822 u32 port = data->u.evtchn.send_port;
1836 if (evtchnfd->type != data->u.evtchn.type)
1844 evtchnfd->deliver.port.port != data->u.evtchn.deliver.port.port)
1848 if (data->u.evtchn.deliver.port.priority != KVM_IRQ_ROUTING_XEN_EVTCHN_PRIO_2LEVEL)
1851 evtchnfd->deliver.port.priority = data->u.evtchn.deliver.port.priority;
1852 if (evtchnfd->deliver.port.vcpu_id != data->u.evtchn.deliver.port.vcpu) {
1853 evtchnfd->deliver.port.vcpu_id = data->u.evtchn.deliver.port.vcpu;
1867 struct kvm_xen_hvm_attr *data)
1869 u32 port = data->u.evtchn.send_port;
1878 switch(data->u.evtchn.type) {
1881 if (data->u.evtchn.deliver.port.port != data->u.evtchn.send_port)
1886 if (data->u.evtchn.deliver.port.port) {
1887 if (data->u.evtchn.deliver.port.port >= max_evtchn_port(kvm))
1890 eventfd = eventfd_ctx_fdget(data->u.evtchn.deliver.eventfd.fd);
1906 evtchnfd->send_port = data->u.evtchn.send_port;
1907 evtchnfd->type = data->u.evtchn.type;
1912 if (data->u.evtchn.deliver.port.priority != KVM_IRQ_ROUTING_XEN_EVTCHN_PRIO_2LEVEL)
1915 evtchnfd->deliver.port.port = data->u.evtchn.deliver.port.port;
1916 evtchnfd->deliver.port.vcpu_id = data->u.evtchn.deliver.port.vcpu;
1918 evtchnfd->deliver.port.priority = data->u.evtchn.deliver.port.priority;
1998 static int kvm_xen_setattr_evtchn(struct kvm *kvm, struct kvm_xen_hvm_attr *data)
2000 u32 port = data->u.evtchn.send_port;
2002 if (data->u.evtchn.flags == KVM_XEN_EVTCHN_RESET)
2008 if (data->u.evtchn.flags == KVM_XEN_EVTCHN_DEASSIGN)
2010 if (data->u.evtchn.flags == KVM_XEN_EVTCHN_UPDATE)
2011 return kvm_xen_eventfd_update(kvm, data);
2012 if (data->u.evtchn.flags)
2015 return kvm_xen_eventfd_assign(kvm, data);