But I wan't to call a function that is not part of my module... i want to
call sys_clock_gettime - which is a function of the kernel.
----- Original Message -----
From: "Guo Hongruan" <camelguo@xxxxxxxxx>
To: "Ole Loots" <ole@xxxxxxxxxxxxx>
Sent: Wednesday, February 25, 2009 12:47 PM
Subject: Re: Getting kernel symbols in kernel module (dynamically)
If you want to call a symbol in kernel module, you need to make sure it is
exported. Through the macro EXPORT_SYMBOL, you can export the kernel
function or variables, so that you can call them in kernel module.
The following is an example:
EXPORT_SYMBOL(acpi_bus_get_device);
在 Wed, 25 Feb 2009 18:45:05 +0800,Ole Loots <ole@xxxxxxxxxxxxx> 写道:
Hello Guo,
I'm talking about kernel space. I want to get kernel space symbols when
running a kernel module... Or maybe the linker can link agains the kernel
(so the addresses of the symbols are statically inserted into my module,
also), but that wouldn't be as good as getting the symbols dynamically.
On Wed, 25 Feb 2009 18:20:21 +0800, "Guo Hongruan" <camelguo@xxxxxxxxx>
wrote:
Too dangrous!!
In kernel space or userspace? If in userspace, you can only call
clock_gettime.
在 Wed, 25 Feb 2009 18:08:55 +0800,Ole Loots <ole@xxxxxxxxxxxxx>
写道:
Hello,
I want to call the kernel function sys_clock_gettime, but when I just
try to call it, the linker complains about the unknown symbol/function
sys_clock_gettime, so i have hard coded a function pointer in my
module...:
long (*p_sys_clock_gettime)(clockid_t, struct timespec *tp) =
0xc004373c;
That works fine for my system, but I know thats not the way to do it.
How is it done properly?
Regards,
Ole
--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ
--
Guo Hongruan, Embedded Linux Consultant
Mobile: +86-0-13484056007
Skype: camelguo
http://www.gulessoft.com
--
To unsubscribe from this list: send an email with
"unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx
Please read the FAQ at http://kernelnewbies.org/FAQ