|   | 
      | 
  
  
      | 
      | 
  
 
     | 
    | 
  
  
     | 
    | 
  
  
    |   | 
      | 
  
  
    | 
         
xen-devel
Re: [Xen-devel] Native hypercall basics using int 82
 
We relocate the Xen CPUID info when we emulate Hyper-V. You need to scan for the Xen signature — starting at 0x40000000 and then every 0x100 up to 0x40001000. If you find the signature then you have found the contiguous range of Xen CPUID leaves. I should fix xen-detect.c to do this scan. 
 
 -- Keir 
 
On 16/12/2008 10:33, "hnrkssn hnrkssn" <hnrkssn@xxxxxxxxx> wrote: 
 
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
 
 |   
 
 | 
    | 
  
  
    |   | 
    |