Subject: Re: insmod: unresolved symbol XIo_In32/XIo_Out32

From: Juliana Su <[email-masked]>
Date: Sat, 12 Jul 2008 15:22:18 -0400

Hi again,

Ok, so I tried mapping to in_be32( ) and out_be32( ) by changing:

#define XIo_In32(InputPtr) (*(volatile u32 *)(InputPtr)); SYNCHRONIZE_IO; 
to
#define XIo_In32(InputPtr) in_be32(InputPtr)

and

#define XIo_Out32(OutputPtr, Value) \
   { (*(volatile u32 *)(OutputPtr) = Value); SYNCHRONIZE_IO; }
to
#define XIo_Out32(OutputPtr, Value) out_be32(OutputPtr, Value)

I made sure to include asm-ppc/io.h, too. However, I still get the same 
unresolved symbol error message... Did I do the mapping correctly? 
Thanks again for your help!

-Juliana

Grant Likely wrote:
> On Fri, Jul 11, 2008 at 03:11:06PM -0400, Juliana Su wrote:
>   
>> Hi,
>>
>> Thanks for your reply! I am new to creating loadable kernel modules, so  
>> I hope you do not mind some more questions... How can I get the XIo_*  
>> helper routines to compile into the kernel or export them with  
>> EXPORT_SYMBOL( )? In my c file (my driver file from which I create the  
>> object file), I made sure to include xio.h, which is where XIo_In32 and  
>> XIo_Out32 are defined (see below section from xio.h).
>>     
>
> Add an EXPORT_SYMBOL() line to the location where the io accessors are
> implemented.  However, you'd probably be better just to replace xio.h
> implementation with macros that just map them to the in_be32() and
> out_be32() macros.
>
> g.
>
>