This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
Home Products Support Community News


[Xen-devel] testing hypercall from windows - what's the most basic call

To: <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: [Xen-devel] testing hypercall from windows - what's the most basic call I can make to test
From: "James Harper" <james.harper@xxxxxxxxxxxxxxxx>
Date: Mon, 24 Sep 2007 23:27:06 +1000
Delivery-date: Mon, 24 Sep 2007 06:27:50 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: Acf+rpm9QXpClAmUQGKlPQ11YJlmyw==
Thread-topic: testing hypercall from windows - what's the most basic call I can make to test
I'm tinkering with some code to be able to talk to the hypervisor from
Windows, with the ultimate aim to get a usable xenbus.

So far I've created a driver for the Xen PCI 'device', and (hopefully)
mapped the hypercall space given by the CPUID call...

What is the simplest hypercall I can make to get an answer from the
hypervisor to tell me that it's working?

Also, it would be really helpful if someone could validate my logic
. Get the PCI details (mmio space, io space, interrupt)
. CPUID(0x40000000) to check for the XenVMMXenVMM signature
. CPUID(0x40000001) to check the Xen version
. CPUID(0x40000002) to get the number of pages for the hypercall memory
space, and the msr to use
. Allocate page-aligned, executable memory for the hypercall memory
. execute an WRMSR using the msr value given above and the pfn(*) of
each page
. make calls into the above space as required

(*) - It isn't clear to me how to do this under windows... anecdotal
googling suggests I can get the physical address of the memory I
allocated and shift it right by the PAGE_SHIFT value to get the pfn, but
I thought there would be more to it than that...



Xen-devel mailing list