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

Re: [Xen-devel] In which library can I find these functions ?



Thank you for your answer, I tried it but it doesn't solve my problem. Maybe I'm wrong, but i think headers are useful to include function prototypes (i. e. gnttab_grant_foreign_access or virt_to_mfn) but it doesn't include the code of these functions. So, when the module is launched, the system doesn't know what to do with the symbols gnttab_grant_foreign_access, xen_features and get_phys_to_machine because implementations of these functions are not linked with the module.

That's why I'm searching for the library including these implementations. I have to link them with the module so it's stop failing when launched.

Best regards,

Sebastien

UMONS

Ir Doctorant S. Frémal
Université de Mons
Service d'Informatique
Rue de Houdain,  n°9
7000 Mons
+32(0)65/37.40.51

www.umons.ac.be



2013/1/30 Konrad Rzeszutek Wilk <konrad@xxxxxxxxxx>
On Tue, Jan 29, 2013 at 04:59:39PM +0100, Sébastien Frémal wrote:
> Hi,
>
> I'm trying to build a module to implement a shared memory mechanism between
> the dom0 and domU's.
>
> To do so, I'm investigating the grant table mechanisms. I have wrote that
> code (which is supposed to be the dom0-side of a module creating and
> sharing 1 page) :
>
> #undef __KERNEL__
> #define __KERNEL__
>
> #undef MODULE
> #define MODULE
>
> #include <xen/page.h>
> #include <xen/grant_table.h>
> #include <linux/gfp.h>
> #include <linux/module.h>
> #include <linux/kernel.h>
> #include <linux/init.h>
>
> unsigned long myPage;
>
> static int __init hello_init(void){
> //      int domB = atoi(argv[1]);
>         printk(KERN_INFO "Test sur le partage de mémoire dans Xen \n");
>
>         if((myPage = get_zeroed_page(GFP_KERNEL))==0)
>                 printk(KERN_INFO "Zeroed page\n");
>
>         grant_ref_t gref;
>         gref = gnttab_grant_foreign_access(1, virt_to_mfn(myPage), 0);
>
>         if(gref < 0){
>                 printk(KERN_INFO "Grant failed\n");
>                 free_page(myPage);
>         }
>         return 0;
> }
>
> static void __exit hello_exit(void){
>         free_page(myPage);
>         printk(KERN_INFO "Cleaning module.\n");
> }
>
> module_init(hello_init);
> module_exit(hello_exit);
>
> The code is compiling, but when I try to launch the insert the module, I
> get error messages :
>
> [95265.790842] shmxen: Unknown symbol gnttab_grant_foreign_access (err 0)
> [95265.790855] shmxen: Unknown symbol xen_features (err 0)
> [95265.790865] shmxen: Unknown symbol get_phys_to_machine (err 0)
>
> I'm searching for libraries to link with the module so it can use these
> functions but I can't find those. Can you please help me ? I searched in
> project like Xen VMSocket to look after their way of dealing the problem,
> but the Makefile doesn't point out directories containing the included
> headers or libraries having implemented functions (I don't understand how
> it's suppose to compile).

cscope is quite good at finding these things. You just need
xen/grant_table.h and xen/xen.h
>
> I thank you for your help.
>
> Best regards,
>
> Fremal S.

> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxx
> http://lists.xen.org/xen-devel


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel

 


Rackspace

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