Steve:

I still have not figured out the magic that creates the .ver files which
would resolve your concern with the symbol versions, but I do know that
you can edit the .ver file yourself (under /usr/src/linux/include/modules/)
and add entries.  This will eliminate the funny versioning, as in:

    grab_timer_interrupt_R__ver_grab_timer_interrupt

You can pick a hash value to use.  For example, you might add the following:

        #define __ver_grab_timer_interrupt      a1b2c3d4
        #define grab_timer_interrupt    _set_ver(grab_timer_interrupt)

As far as the printk() warning, you need to make sure your module code
includes the right header files.  In this case, I believe you need to grab
<linux/kernel.h> after including <linux/module.h>.

I hope this helps.

-art

> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED]]On Behalf Of Stephen Wille
> Padnos
> Sent: Tuesday, June 05, 2001 11:55 AM
> To: Linux Kernel
> Subject: Exporting new functions from kernel 2.2.14
> 
> 
> Hello, all.
> 
> I am writing a pseudo-realtime control system, based on kernel 2.2.14.
> The only RT-like task needs to hang off the timer IRQ.  I am using
> techniques like those in the book "Linux Kernel Internals", by Beck, et
> al..
> 
> The patches in that book won't apply (they are for 2.1.24 or lower),
> plus I want a somewaht different functionality, which brings me to my
> question:  How can I get (modversions-enabled) functions exported from
> arch/i386/kernel/irq.c?
> 
> I see in /proc/ksyms that there are some functions exported from there
> ({enable,disable}_irq, probe_irq_{on,off}, etc.), and they have correct
> looking versions.
> 
> When I add my new finctions to i386ksyms.c:
> EXPORT_SYMBOL(grab_timer_interrupt);
> EXPORT_SYMBOL(release_timer_interrupt);
> 
> I get names like
> 
> grab_timer_interrupt_R__ver_grab_timer_interrupt
> release_timer_interrupt_R__ver_release_timer_interrupt
> 
> instead of
> local_irq_count_R4d40375f
> 
> Additionally, when I make a dummy module (a la Alessandro Rubini's
> "Hello" module in "Linux Device Drivers"), I get the following warning:
> control.c:31: warning: implicit declaration of function
> `printk_R1b7d4074'
> The module seems to work (it printk's "module loaded" on load and
> "module unloaded" on unload), but I suspect that this is because I am
> printk()-ing unformatted text strings - only one parameter gets sent.
> 
> So, I obviously have missed some basics about:
> a) versioning,
> b) exporting symbols, and
> c) modules.
> 
> could soemone please enlighten me, or direct me along the path of
> enlightenment :)
> 
> Thanks
> - Steve
> 
> 
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to [EMAIL PROTECTED]
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at  http://www.tux.org/lkml/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to