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

[Xen-devel] Questions about XEN hypercalls

I want to declare a new hypercall in xen,i saw this post here
and I follow almost like it,but it doesnt work. I have some questions,I really appreciate if anybody can help.
I did the fowllowing steps:

1)Add my hypercall in xen.h ---- #define __HYPERVISOR_test 56

2) Added it to entry.S - hypercall table ---- .quad do_mca /* 48 */
.quad do_test /* 56 */
- hypercall_args_table ---- .byte 1 /* do_mca */ /* 48 */
.byte 0 /* do_test */ /* 56 */

3) Then declared my hypercall in asm-x86/hypercall.h ---- void do_test(void);

4) Then calling it in schedule.c in xen/common --- void do_test(void){

printk ("Successfull Hypercall made to __HYPERVISOR_test");


I noticed that some hypercalls are defined as :

int hypercall_test(int handle){ 
int rc; 
int arg=0; 
//int cmd=1; 
//int test; 
/* Hypercall definitions */ 

hypercall.op = __HYPERVISOR_jeet1; 
rc = do_xen_hypercall(handle, &hypercall); 
hypercall.arg[0] = 0; 
hypercall.arg[1] = (unsigned long)&arg; 
//printf ("Hypercall Details: %d\n", rc); 
return rc; 

but some of them are not defined this way using handler and ...
why ? what is the difference of them?
the other are just defined as :
 and how should I know where and in which file I should define my hypercall?

and as I followed the steps in that post I get this error:
domain_build.c:1178:1: error: implicit declaration of function ‘do_test’
I invoked my hypercall in this file once with rc and handler and once without them just : do_test(); but both returned this error.
I dont want to invoke my hypercall in user mode so I didn't invoke it in a user program


Xen-devel mailing list



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