"sys_clock_gettime " is System call which is provided to usr space as a interface for kernel.As you write a module you should use function in kernel system map that is export to use for your drive. if you want get time in your module,you can check recent include/linux/time.h like current_kernel_time() or CURRENT_TIME() do_gettimeofday etc. Maybe this can give u some help. Lin 2009/2/25 Ole Loots <ole@xxxxxxxxxxxxx>: > 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 > > -- To unsubscribe from this list: send an email with "unsubscribe kernelnewbies" to ecartis@xxxxxxxxxxxx Please read the FAQ at http://kernelnewbies.org/FAQ