Displaying 4 results from an estimated 4 matches for "gdt_entry_hv_d".
Did you mean:
gdt_entry_hv_ds
2007 Apr 18
1
[RFC/PATCH PV_OPS X86_64 05/17] pravirt_ops - segments
...x86_64/segment.h
+++ clean-start/include/asm-x86_64/segment.h
@@ -37,8 +37,14 @@
#define GS_TLS_SEL ((GDT_ENTRY_TLS_MIN+GS_TLS)*8 + 3)
#define FS_TLS_SEL ((GDT_ENTRY_TLS_MIN+FS_TLS)*8 + 3)
+#define __HV_CS 0x80 /* 16*8 */
+#define __HV_DS 0x88 /* 17*8 */
+
+#define GDT_ENTRY_HV_CS 16
+#define GDT_ENTRY_HV_DS 17
+
#define IDT_ENTRIES 256
-#define GDT_ENTRIES 16
+#define GDT_ENTRIES 18
#define GDT_SIZE (GDT_ENTRIES * 8)
#define TLS_SIZE (GDT_ENTRY_TLS_ENTRIES * 8)
--
2007 Apr 18
1
[RFC/PATCH PV_OPS X86_64 05/17] pravirt_ops - segments
...x86_64/segment.h
+++ clean-start/include/asm-x86_64/segment.h
@@ -37,8 +37,14 @@
#define GS_TLS_SEL ((GDT_ENTRY_TLS_MIN+GS_TLS)*8 + 3)
#define FS_TLS_SEL ((GDT_ENTRY_TLS_MIN+FS_TLS)*8 + 3)
+#define __HV_CS 0x80 /* 16*8 */
+#define __HV_DS 0x88 /* 17*8 */
+
+#define GDT_ENTRY_HV_CS 16
+#define GDT_ENTRY_HV_DS 17
+
#define IDT_ENTRIES 256
-#define GDT_ENTRIES 16
+#define GDT_ENTRIES 18
#define GDT_SIZE (GDT_ENTRIES * 8)
#define TLS_SIZE (GDT_ENTRY_TLS_ENTRIES * 8)
--
2007 Apr 18
1
[RFC/PATCH LGUEST X86_64 03/13] lguest64 core
...hv_pages = pages;
+ lguest_hv_offset = hvaddr - (unsigned long)&start_hyper_text;
+
+ /* Setup LGUEST segments on all cpus */
+ for_each_possible_cpu(i) {
+ struct desc_struct *gdt_table;
+ gdt_table = cpu_gdt(i);
+ gdt_table[GDT_ENTRY_HV_CS] = gdt_table[gdt_index(__KERNEL_CS)];
+ gdt_table[GDT_ENTRY_HV_DS] = gdt_table[gdt_index(__KERNEL_DS)];
+ }
+
+// rdmsrl(MSR_LSTAR, *lg_host_syscall);
+// wrmsrl(MSR_LSTAR, lg_hcall);
+ return 0;
+#if 0
+ ret = init_pagetables(hvaddr);
+ if (ret < 0)
+ goto out2;
+
+ return 0;
+
+out2:
+ hvvm_unnmap_pages(hvaddr, pages);
+#endif
+out:
+ lguest_device_remove(...
2007 Apr 18
1
[RFC/PATCH LGUEST X86_64 03/13] lguest64 core
...hv_pages = pages;
+ lguest_hv_offset = hvaddr - (unsigned long)&start_hyper_text;
+
+ /* Setup LGUEST segments on all cpus */
+ for_each_possible_cpu(i) {
+ struct desc_struct *gdt_table;
+ gdt_table = cpu_gdt(i);
+ gdt_table[GDT_ENTRY_HV_CS] = gdt_table[gdt_index(__KERNEL_CS)];
+ gdt_table[GDT_ENTRY_HV_DS] = gdt_table[gdt_index(__KERNEL_DS)];
+ }
+
+// rdmsrl(MSR_LSTAR, *lg_host_syscall);
+// wrmsrl(MSR_LSTAR, lg_hcall);
+ return 0;
+#if 0
+ ret = init_pagetables(hvaddr);
+ if (ret < 0)
+ goto out2;
+
+ return 0;
+
+out2:
+ hvvm_unnmap_pages(hvaddr, pages);
+#endif
+out:
+ lguest_device_remove(...