WARNING - OLD ARCHIVES

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/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] Native hypercall basics using int 82

To: "Keir Fraser" <keir.fraser@xxxxxxxxxxxxx>
Subject: Re: [Xen-devel] Native hypercall basics using int 82
From: "hnrkssn hnrkssn" <hnrkssn@xxxxxxxxx>
Date: Tue, 16 Dec 2008 11:33:10 +0100
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
Delivery-date: Tue, 16 Dec 2008 02:33:36 -0800
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to :subject:cc:in-reply-to:mime-version:content-type:references; bh=Qz41L1PJCsRDDD/26KJ+RUSo/AgGvkCRTlt4aPbR3HY=; b=bVIp3PG99Va5svPHexDrKgBWBdDCk0bjJHHhwjlbwL4BONr0TJNnMyhW5FOqG1AgZf 0lTTB8yvC7PxHEi9QOIQ0AqtX0jxuYQrrkAjBFigISoMwSGNiGA98zdX8PwMjZSjHtc4 BYiFCRRu3/rc9EC+SghZY8WLxJDazB1s5QFiQ=
Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:cc:in-reply-to:mime-version :content-type:references; b=ErAApDA+o/9QBiiELhQwhnwZ7Ag9ILmwAlPNZ9yVPcF/9vVdENcxN5Vw/7q7DiycEy hOxIlulolFSpONwu6MYVMso9ffdB+6RvJcGYY63dvKuMMuuT7qc8LgKl5fsytnrQIHRh OYvaWzxGxwMxNa+l1i+BOJBO2R6nKsfRibwOo=
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <C56D1BAB.2041D%keir.fraser@xxxxxxxxxxxxx>
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/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <6a3ccf200812160039g55343adn750be651e432d4a5@xxxxxxxxxxxxxx> <C56D1BAB.2041D%keir.fraser@xxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
I have already tried the CPUID approach used in xen-detect.c
When I read the info from leaf 0x40000001, it says "Microsoft Hv" when I run it on Citrix XenServer Express Edition.
I thought "Microsoft Hv" was supposed to identify Hyper-V?

So I have to try another method.
Can anybody give me some hints on my assembler example in the initial post for making a hypercall?

---
char buffer[256];
HYPERCALL hypercall;
PHYPERCALL phypercall = &hypercall;

hypercall.op     = 17;                       // xen_version
hypercall.arg[0] = (unsigned long) 1; // xen_extra_version
hypercall.arg[1] = (unsigned long) Buffer;

memset(Buffer, 0, sizeof(Buffer));

_asm
  {
    MOV EAX, phypercall;
    INT 82;
  }

  Buffer[255] = '\0';
 
  Cprintf("Buf: %s\r\n", Buffer);



Best Regards,
David

On Tue, Dec 16, 2008 at 9:47 AM, Keir Fraser <keir.fraser@xxxxxxxxxxxxx> wrote:
On 16/12/2008 08:39, "hnrkssn hnrkssn" <hnrkssn@xxxxxxxxx> wrote:

> I'm trying to detect if I'm running as a guest in XEN hypervisor using a
> simple hypercall like __HYPERVISOR_xen_version with the XENVER_extraversion
> option.
> I cannot use any of the API functions for this so I'm trying to setup the
> required registers and call int 82 myself.
> This is what I do and unfortunately, it generates an exception 0xd when
> executing INT 82.
>
> Reading the source, I think I've figured out that I should put my arguments in
> a hypercall struct shown below. I might be wrong then.

See tools/misc/xen-detect.c for a nice approach that even works from user
space.

 -- Keir



_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel