Displaying 4 results from an estimated 4 matches for "hvvm_start".
2007 Apr 18
1
[RFC/PATCH LGUEST X86_64 01/13] HV VM Fix map area for HV.
...ges))
+ break;
+ }
+ } while (i < pages);
+
+ if (i < pages)
+ return 0;
+
+ /*
+ * OK we found a location where we can map our pages
+ * so now we set them used, and do the mapping.
+ */
+ bit = found_bit;
+ for (i=0; i < pages; i++)
+ set_bit(bit++, hvvm_avail_pages);
+
+ return HVVM_START + found_bit * PAGE_SIZE;
+}
+
+static void release_hv_pages(unsigned long addr, int pages)
+{
+ unsigned int bit;
+ int i;
+
+ /* FIXME : ADD LOCKING!!! */
+
+ bit = (addr - HVVM_START) / PAGE_SIZE;
+
+ for (i=0; i < pages; i++) {
+ BUG_ON(!test_bit(bit, hvvm_avail_pages));
+ clear_bit(bit++,...
2007 Apr 18
1
[RFC/PATCH LGUEST X86_64 01/13] HV VM Fix map area for HV.
...ges))
+ break;
+ }
+ } while (i < pages);
+
+ if (i < pages)
+ return 0;
+
+ /*
+ * OK we found a location where we can map our pages
+ * so now we set them used, and do the mapping.
+ */
+ bit = found_bit;
+ for (i=0; i < pages; i++)
+ set_bit(bit++, hvvm_avail_pages);
+
+ return HVVM_START + found_bit * PAGE_SIZE;
+}
+
+static void release_hv_pages(unsigned long addr, int pages)
+{
+ unsigned int bit;
+ int i;
+
+ /* FIXME : ADD LOCKING!!! */
+
+ bit = (addr - HVVM_START) / PAGE_SIZE;
+
+ for (i=0; i < pages; i++) {
+ BUG_ON(!test_bit(bit, hvvm_avail_pages));
+ clear_bit(bit++,...
2007 Apr 18
1
[RFC/PATCH LGUEST X86_64 03/13] lguest64 core
...ER_SCE | EFER_LME | EFER_LMA | EFER_NX;
+ lhwrite_u64(vcpu, regs->rbx, val);
+ break;
+ default:
+ kill_guest_dump(vcpu, "bad read of msr %llx\n", regs->rdx);
+ }
+ break;
+ case LHCALL_WRMSR:
+ switch (regs->rdx) {
+ case MSR_KERNEL_GS_BASE:
+ if ((regs->rbx >= HVVM_START) &&
+ (regs->rbx < (HVVM_START + HV_VIRT_SIZE))) {
+ kill_guest_dump(vcpu,
+ "guest trying to set GS shadow base"
+ " in hypervisor");
+ break;
+ }
+ vcpu->guest_gs_shadow_a = regs->rbx;
+ vcpu->guest_gs_shadow_d = regs->rbx...
2007 Apr 18
1
[RFC/PATCH LGUEST X86_64 03/13] lguest64 core
...ER_SCE | EFER_LME | EFER_LMA | EFER_NX;
+ lhwrite_u64(vcpu, regs->rbx, val);
+ break;
+ default:
+ kill_guest_dump(vcpu, "bad read of msr %llx\n", regs->rdx);
+ }
+ break;
+ case LHCALL_WRMSR:
+ switch (regs->rdx) {
+ case MSR_KERNEL_GS_BASE:
+ if ((regs->rbx >= HVVM_START) &&
+ (regs->rbx < (HVVM_START + HV_VIRT_SIZE))) {
+ kill_guest_dump(vcpu,
+ "guest trying to set GS shadow base"
+ " in hypervisor");
+ break;
+ }
+ vcpu->guest_gs_shadow_a = regs->rbx;
+ vcpu->guest_gs_shadow_d = regs->rbx...