Lines Matching refs:seg
775 struct segment_register seg; in hvm_save_cpu_ctxt() local
793 hvm_get_segment_register(v, x86_seg_idtr, &seg); in hvm_save_cpu_ctxt()
794 ctxt.idtr_limit = seg.limit; in hvm_save_cpu_ctxt()
795 ctxt.idtr_base = seg.base; in hvm_save_cpu_ctxt()
797 hvm_get_segment_register(v, x86_seg_gdtr, &seg); in hvm_save_cpu_ctxt()
798 ctxt.gdtr_limit = seg.limit; in hvm_save_cpu_ctxt()
799 ctxt.gdtr_base = seg.base; in hvm_save_cpu_ctxt()
801 hvm_get_segment_register(v, x86_seg_cs, &seg); in hvm_save_cpu_ctxt()
802 ctxt.cs_sel = seg.sel; in hvm_save_cpu_ctxt()
803 ctxt.cs_limit = seg.limit; in hvm_save_cpu_ctxt()
804 ctxt.cs_base = seg.base; in hvm_save_cpu_ctxt()
805 ctxt.cs_arbytes = seg.attr; in hvm_save_cpu_ctxt()
807 hvm_get_segment_register(v, x86_seg_ds, &seg); in hvm_save_cpu_ctxt()
808 ctxt.ds_sel = seg.sel; in hvm_save_cpu_ctxt()
809 ctxt.ds_limit = seg.limit; in hvm_save_cpu_ctxt()
810 ctxt.ds_base = seg.base; in hvm_save_cpu_ctxt()
811 ctxt.ds_arbytes = seg.attr; in hvm_save_cpu_ctxt()
813 hvm_get_segment_register(v, x86_seg_es, &seg); in hvm_save_cpu_ctxt()
814 ctxt.es_sel = seg.sel; in hvm_save_cpu_ctxt()
815 ctxt.es_limit = seg.limit; in hvm_save_cpu_ctxt()
816 ctxt.es_base = seg.base; in hvm_save_cpu_ctxt()
817 ctxt.es_arbytes = seg.attr; in hvm_save_cpu_ctxt()
819 hvm_get_segment_register(v, x86_seg_ss, &seg); in hvm_save_cpu_ctxt()
820 ctxt.ss_sel = seg.sel; in hvm_save_cpu_ctxt()
821 ctxt.ss_limit = seg.limit; in hvm_save_cpu_ctxt()
822 ctxt.ss_base = seg.base; in hvm_save_cpu_ctxt()
823 ctxt.ss_arbytes = seg.attr; in hvm_save_cpu_ctxt()
825 hvm_get_segment_register(v, x86_seg_fs, &seg); in hvm_save_cpu_ctxt()
826 ctxt.fs_sel = seg.sel; in hvm_save_cpu_ctxt()
827 ctxt.fs_limit = seg.limit; in hvm_save_cpu_ctxt()
828 ctxt.fs_base = seg.base; in hvm_save_cpu_ctxt()
829 ctxt.fs_arbytes = seg.attr; in hvm_save_cpu_ctxt()
831 hvm_get_segment_register(v, x86_seg_gs, &seg); in hvm_save_cpu_ctxt()
832 ctxt.gs_sel = seg.sel; in hvm_save_cpu_ctxt()
833 ctxt.gs_limit = seg.limit; in hvm_save_cpu_ctxt()
834 ctxt.gs_base = seg.base; in hvm_save_cpu_ctxt()
835 ctxt.gs_arbytes = seg.attr; in hvm_save_cpu_ctxt()
837 hvm_get_segment_register(v, x86_seg_tr, &seg); in hvm_save_cpu_ctxt()
838 ctxt.tr_sel = seg.sel; in hvm_save_cpu_ctxt()
839 ctxt.tr_limit = seg.limit; in hvm_save_cpu_ctxt()
840 ctxt.tr_base = seg.base; in hvm_save_cpu_ctxt()
841 ctxt.tr_arbytes = seg.attr; in hvm_save_cpu_ctxt()
843 hvm_get_segment_register(v, x86_seg_ldtr, &seg); in hvm_save_cpu_ctxt()
844 ctxt.ldtr_sel = seg.sel; in hvm_save_cpu_ctxt()
845 ctxt.ldtr_limit = seg.limit; in hvm_save_cpu_ctxt()
846 ctxt.ldtr_base = seg.base; in hvm_save_cpu_ctxt()
847 ctxt.ldtr_arbytes = seg.attr; in hvm_save_cpu_ctxt()
971 struct segment_register seg; in hvm_load_cpu_ctxt() local
1049 seg.limit = ctxt.idtr_limit; in hvm_load_cpu_ctxt()
1050 seg.base = ctxt.idtr_base; in hvm_load_cpu_ctxt()
1051 hvm_set_segment_register(v, x86_seg_idtr, &seg); in hvm_load_cpu_ctxt()
1053 seg.limit = ctxt.gdtr_limit; in hvm_load_cpu_ctxt()
1054 seg.base = ctxt.gdtr_base; in hvm_load_cpu_ctxt()
1055 hvm_set_segment_register(v, x86_seg_gdtr, &seg); in hvm_load_cpu_ctxt()
1057 seg.sel = ctxt.cs_sel; in hvm_load_cpu_ctxt()
1058 seg.limit = ctxt.cs_limit; in hvm_load_cpu_ctxt()
1059 seg.base = ctxt.cs_base; in hvm_load_cpu_ctxt()
1060 seg.attr = ctxt.cs_arbytes; in hvm_load_cpu_ctxt()
1061 hvm_set_segment_register(v, x86_seg_cs, &seg); in hvm_load_cpu_ctxt()
1063 seg.sel = ctxt.ds_sel; in hvm_load_cpu_ctxt()
1064 seg.limit = ctxt.ds_limit; in hvm_load_cpu_ctxt()
1065 seg.base = ctxt.ds_base; in hvm_load_cpu_ctxt()
1066 seg.attr = ctxt.ds_arbytes; in hvm_load_cpu_ctxt()
1067 hvm_set_segment_register(v, x86_seg_ds, &seg); in hvm_load_cpu_ctxt()
1069 seg.sel = ctxt.es_sel; in hvm_load_cpu_ctxt()
1070 seg.limit = ctxt.es_limit; in hvm_load_cpu_ctxt()
1071 seg.base = ctxt.es_base; in hvm_load_cpu_ctxt()
1072 seg.attr = ctxt.es_arbytes; in hvm_load_cpu_ctxt()
1073 hvm_set_segment_register(v, x86_seg_es, &seg); in hvm_load_cpu_ctxt()
1075 seg.sel = ctxt.ss_sel; in hvm_load_cpu_ctxt()
1076 seg.limit = ctxt.ss_limit; in hvm_load_cpu_ctxt()
1077 seg.base = ctxt.ss_base; in hvm_load_cpu_ctxt()
1078 seg.attr = ctxt.ss_arbytes; in hvm_load_cpu_ctxt()
1079 hvm_set_segment_register(v, x86_seg_ss, &seg); in hvm_load_cpu_ctxt()
1081 seg.sel = ctxt.fs_sel; in hvm_load_cpu_ctxt()
1082 seg.limit = ctxt.fs_limit; in hvm_load_cpu_ctxt()
1083 seg.base = ctxt.fs_base; in hvm_load_cpu_ctxt()
1084 seg.attr = ctxt.fs_arbytes; in hvm_load_cpu_ctxt()
1085 hvm_set_segment_register(v, x86_seg_fs, &seg); in hvm_load_cpu_ctxt()
1087 seg.sel = ctxt.gs_sel; in hvm_load_cpu_ctxt()
1088 seg.limit = ctxt.gs_limit; in hvm_load_cpu_ctxt()
1089 seg.base = ctxt.gs_base; in hvm_load_cpu_ctxt()
1090 seg.attr = ctxt.gs_arbytes; in hvm_load_cpu_ctxt()
1091 hvm_set_segment_register(v, x86_seg_gs, &seg); in hvm_load_cpu_ctxt()
1093 seg.sel = ctxt.tr_sel; in hvm_load_cpu_ctxt()
1094 seg.limit = ctxt.tr_limit; in hvm_load_cpu_ctxt()
1095 seg.base = ctxt.tr_base; in hvm_load_cpu_ctxt()
1096 seg.attr = ctxt.tr_arbytes; in hvm_load_cpu_ctxt()
1097 hvm_set_segment_register(v, x86_seg_tr, &seg); in hvm_load_cpu_ctxt()
1099 seg.sel = ctxt.ldtr_sel; in hvm_load_cpu_ctxt()
1100 seg.limit = ctxt.ldtr_limit; in hvm_load_cpu_ctxt()
1101 seg.base = ctxt.ldtr_base; in hvm_load_cpu_ctxt()
1102 seg.attr = ctxt.ldtr_arbytes; in hvm_load_cpu_ctxt()
1103 hvm_set_segment_register(v, x86_seg_ldtr, &seg); in hvm_load_cpu_ctxt()
2441 enum x86_segment seg, in hvm_virtual_to_linear_addr() argument
2459 ASSERT(seg < x86_seg_none); in hvm_virtual_to_linear_addr()
2474 (is_x86_system_segment(seg) || active_cs->l) ) in hvm_virtual_to_linear_addr()
2480 if ( is_x86_system_segment(seg) && in hvm_virtual_to_linear_addr()
2488 if ( seg >= x86_seg_fs ) in hvm_virtual_to_linear_addr()
2718 enum x86_segment seg, uint16_t sel, unsigned int cpl, unsigned int eflags) in hvm_load_segment_selector() argument
2733 hvm_set_segment_register(v, seg, &segr); in hvm_load_segment_selector()
2740 if ( (seg == x86_seg_cs) || (seg == x86_seg_ss) ) in hvm_load_segment_selector()
2744 hvm_set_segment_register(v, seg, &segr); in hvm_load_segment_selector()
2749 if ( (seg == x86_seg_ldtr) && (sel & 4) ) in hvm_load_segment_selector()
2771 if ( (desc.b & (1u<<12)) == ((seg == x86_seg_ldtr) << 12) ) in hvm_load_segment_selector()
2777 switch ( seg ) in hvm_load_segment_selector()
2817 fault_type = (seg != x86_seg_ss) ? TRAP_no_segment in hvm_load_segment_selector()
2840 hvm_set_segment_register(v, seg, &segr); in hvm_load_segment_selector()
4875 void hvm_get_segment_register(struct vcpu *v, enum x86_segment seg, in hvm_get_segment_register() argument
4878 hvm_funcs.get_segment_register(v, seg, reg); in hvm_get_segment_register()
4880 switch ( seg ) in hvm_get_segment_register()
4923 reg->s = is_x86_user_segment(seg); in hvm_get_segment_register()
4939 if ( is_x86_user_segment(seg) ) in hvm_get_segment_register()
4944 void hvm_set_segment_register(struct vcpu *v, enum x86_segment seg, in hvm_set_segment_register() argument
4951 switch ( seg ) in hvm_set_segment_register()
4984 if ( seg == x86_seg_fs || seg == x86_seg_gs ) in hvm_set_segment_register()
5024 hvm_funcs.set_segment_register(v, seg, reg); in hvm_set_segment_register()