hi, my friends:
recently, i am reading the source codes about hypercall.
First, i study a simple hypercall, for example, the "do_xen_version".
In "xen-3.1.0-src\xen\common\kernel.c", the definition of "do_xen_version"
is:
DO(xen_version) (int cmd,
XEN_GUEST_HANDLE(void) arg)
{
....
}
according to the " #define DO(fn) long do_##fn ", the expanded form is
"do_xen_version (...)".
then, in the "xen-3.1.0-src\xen\arch\x86\x86_32\entry.S", there is an item
in the "hypercall_table", like this:
ENTRY(hypercall_table)
....
.long do_xen_version
....
as we all known, for a symbol reference of function there need to be
a header file contained, or a "global" declaration.
By searching the header files, i found the file,
"xen-3.1.0-src\xen\include\xen\hypercall.h" that declared the function in a form
as follows:
extern long
do_xen_version(
int cmd,
XEN_GUEST_HANDLE(void)
arg);
But, i can not find where the file "hypercall.h" is contained in order to
link it with the reference of "do_xen_version" in the "entry.S"
So, please help me, or give me some advice.
thanks advance.
2008-03-18
房海峰
|