Messages in this thread |  | | Date | Wed, 11 Oct 2000 13:36:11 +0100 (BST) | From | Tigran Aivazian <> | Subject | Re: executing function in kernel whose name is known |
| |
On Wed, 11 Oct 2000 aprasad@in.ibm.com wrote:
> > > >> i know the name of a function which is stored in some string in a kernel > >> module, is there any way to execute that function. > >> That function is implemented in a module and has been exported. > >> thanks, > >> anil > > >you mean execute from userspace? No. > >You mean execute from kernel space? Yes, but you would need to ensure the > >module cannot be unloaded (by incrementing its module reference > >counter) while the function is invoked. > >Tigran > > module having that function won't be unloaded. but my problem is i know > only name (a string containing name of the function) but not function > pointer. could you please elaborate on how to do this?? >
if you look at the way get_ksyms_list() (in kernel/module.c) walks the module_list and prints the hex address and the human readable name of each exported symbol in a module, you will understand how to map a name to address.
But I am sure Keith knows of a better way.... looking at his latest kdb patch.... Indeed, there is a function called get_module_symbol() (in kernel/module.c) which gets the address of a symbol in the given module. Actually, this doesn't even require kdb -- it is in the plain vanilla kernel and is even exported to modules...
Regards, Tigran
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/
|  |