[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: [Xen-devel] Declaring new Xen Hypercall



Or, if this is for a hypervisor-centric class project and
you just want to see it work rather than submit your work
into mainline Xen... and don't want/need to learn all the
tools/libraries/Linux code to use privcmd/ioctl...

you could just find the assembly code in Xen that rejects
the userland hypercall and comment it out. :-)

> -----Original Message-----
> From: Keir Fraser [mailto:keir@xxxxxxx]
> Sent: Tuesday, September 28, 2010 2:40 PM
> To: Nimgaonkar, Satyajeet; Dan Magenheimer; xen-
> devel@xxxxxxxxxxxxxxxxxxx
> Subject: Re: [Xen-devel] Declaring new Xen Hypercall
> 
> Open /proc/xen/privcmd and perform ioctl(IOCTL_PRIVCMD_HYPERCALL) on
> the
> file handle you get back. See many examples in tools/libxc.
> 
>  -- Keir
> 
> On 28/09/2010 21:34, "Nimgaonkar, Satyajeet"
> <SatyajeetNimgaonkar@xxxxxxxxxx> wrote:
> 
> > Hi Dan,
> >             So is there an alternate route to call a hypercall from
> userspace
> > programs. Can you please advice?
> >
> > ________________________________________
> > From: Dan Magenheimer [dan.magenheimer@xxxxxxxxxx]
> > Sent: Tuesday, September 28, 2010 2:29 PM
> > To: Nimgaonkar, Satyajeet; xen-devel@xxxxxxxxxxxxxxxxxxx
> > Subject: RE: [Xen-devel] Declaring new Xen Hypercall
> >
> > If I recall correctly, the assembly language code in Xen
> > that is executed first when a hypercall enters into Xen
> > checks if the hypercall is done from userpace and disallows
> > the call (returning -1) if it is.
> >
> >> -----Original Message-----
> >> From: Nimgaonkar, Satyajeet [mailto:SatyajeetNimgaonkar@xxxxxxxxxx]
> >> Sent: Tuesday, September 28, 2010 2:07 PM
> >> To: xen-devel@xxxxxxxxxxxxxxxxxxx
> >> Subject: [Xen-devel] Declaring new Xen Hypercall
> >>
> >> Hi All,
> >>          I am currently working on declaring a new hypercall in Xen.
> >> For this i have declared my hypercall in xen.h -
> >> #define __HYPERVISOR_jeet1                56
> >>
> >> Then I modified the xcom_privcmd.c to accomodate my hypercall -
> >>         case __HYPERVISOR_jeet1:
> >>                 printk("Successfull Hypercall made to
> >> __HYPERVISOR_jeet1");
> >>
> >> And then I am calling this Hypercall through an user level program-
> >>
> >> #include </home/satyajeet/Important_Softwares/xen-
> >> 3.4.3/tools/libxc/xc_private.h>
> >> #include <xenctrl.h>
> >> #include <stdio.h>
> >>
> >> int main(){
> >>
> >>        printf("Attempt to invoke the hypercall:
> __HYPERVISOR_jeet1\n");
> >>        int handle, rc;
> >>
> >>          /* Acquire Hypervisor Interface Handle.
> >>             This handle goes as the first argument for the function
> >> do_xen_hypercall()
> >>          */
> >>
> >>        handle = xc_interface_open();
> >>        printf ("Acquired handle to Xen Hypervisor:%d\n",handle);
> >>
> >>        /* Hypercall definitions */
> >>
> >>        DECLARE_HYPERCALL;
> >>        hypercall.op     = __HYPERVISOR_jeet1;
> >>        rc = do_xen_hypercall(handle, &hypercall);
> >>        printf ("Hypercall Details: %d\n", rc);
> >>
> >>        xc_interface_close(handle);
> >>
> >>        return 0;
> >>
> >> }
> >>
> >> The program compiles properly but gives me -1 error for rc. Can
> anyone
> >> please tell me what I am doing wrong here. Also please tell me where
> >> should I view the output of printk in xen.
> >>
> >> Thanks in advance.
> >>
> >> Regards,
> >> Satyajeet Nimgaonkar
> >>
> >> _______________________________________________
> >> Xen-devel mailing list
> >> Xen-devel@xxxxxxxxxxxxxxxxxxx
> >> http://lists.xensource.com/xen-devel
> >
> > _______________________________________________
> > Xen-devel mailing list
> > Xen-devel@xxxxxxxxxxxxxxxxxxx
> > http://lists.xensource.com/xen-devel
> 
> 

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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.