Hi,
I want to declare a new hypercall in xen,i saw this post here
http://www.gossamer-threads.com/lists/xen/devel/186927
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 */
DECLARE_HYPERCALL;
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);
//xc_interface_close(handle);
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 :
....do_foo_bar(...)
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
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel