Messages in this thread | | | From | "Arthur Naseef" <> | Subject | RE: Exporting new functions from kernel 2.2.14 | Date | Tue, 5 Jun 2001 09:10:56 -0400 |
| |
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: linux-kernel-owner@vger.kernel.org > [mailto:linux-kernel-owner@vger.kernel.org]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 majordomo@vger.kernel.org > 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 majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |