|
|
|
|
|
|
|
|
|
|
xen-devel
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
|
|
|
|
|