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] Declaring new Xen Hypercall

To: Keir Fraser <keir@xxxxxxx>, "Nimgaonkar, Satyajeet" <SatyajeetNimgaonkar@xxxxxxxxxx>, xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: RE: [Xen-devel] Declaring new Xen Hypercall
From: Dan Magenheimer <dan.magenheimer@xxxxxxxxxx>
Date: Tue, 28 Sep 2010 13:53:11 -0700 (PDT)
Cc:
Delivery-date: Tue, 28 Sep 2010 13:55:42 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <C8C81142.714D%keir@xxxxxxx>
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: <12871952FC0E29439F861FA745BCDD8503EB03E3@xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx C8C81142.714D%keir@xxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
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

<Prev in Thread] Current Thread [Next in Thread>