Displaying 4 results from an estimated 4 matches for "__hv_cs".
2007 Apr 18
1
[RFC/PATCH PV_OPS X86_64 05/17] pravirt_ops - segments
...================================================================
--- clean-start.orig/include/asm-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
...================================================================
--- clean-start.orig/include/asm-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
...#39;)
+ S_PRINT_L('e')
+ S_PRINT_L('s')
+ S_PRINT_L('t')
+ S_PRINT_L('\n')
+ S_PRINT_L('\r')
+#endif
+ NMI_SWITCH_TO_HOST
+
+ /* we want to come back here on the iret */
+ pushq $__HV_DS
+ /* put the vcpu struct as our stack */
+ pushq %rdi
+ pushfq
+ pushq $__HV_CS
+
+ movq LGUEST_VCPU_host_idt_address(%rdi), %rax
+
+ /* Decode the location of the host NMI handler */
+ leaq 32(%rax), %rbx /* NMI IDT entry */
+ DECODE_IDT %rbx %bx %rax
+
+ callq *%rax
+
+ /*
+ * Back from NMI, stack points to vcpu, and we can take
+ * more NMIs at this point. That...
2007 Apr 18
1
[RFC/PATCH LGUEST X86_64 03/13] lguest64 core
...#39;)
+ S_PRINT_L('e')
+ S_PRINT_L('s')
+ S_PRINT_L('t')
+ S_PRINT_L('\n')
+ S_PRINT_L('\r')
+#endif
+ NMI_SWITCH_TO_HOST
+
+ /* we want to come back here on the iret */
+ pushq $__HV_DS
+ /* put the vcpu struct as our stack */
+ pushq %rdi
+ pushfq
+ pushq $__HV_CS
+
+ movq LGUEST_VCPU_host_idt_address(%rdi), %rax
+
+ /* Decode the location of the host NMI handler */
+ leaq 32(%rax), %rbx /* NMI IDT entry */
+ DECODE_IDT %rbx %bx %rax
+
+ callq *%rax
+
+ /*
+ * Back from NMI, stack points to vcpu, and we can take
+ * more NMIs at this point. That...