Re: Getting kernel symbols in kernel module (dynamically)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



"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



[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux