lkml.org 
[lkml]   [2003]   [Oct]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: getting timestamp of last interrupt?
Richard B. Johnson wrote:

> On Mon, 6 Oct 2003, Hans-Georg Thien wrote:
>
>
>>Richard B. Johnson wrote:
>>
>>
>>>On Mon, 6 Oct 2003, Hans-Georg Thien wrote:
>>>
>>>
>>>>[...]
>>>>I'm writing a kernel mode device driver (mouse).
>>>>
>>>>In that device driver I need the timestamp of the last event for another
>>>>kernel mode device (keyboard).
>>>>
>>>>I do not care if that timestamp is in jiffies or in gettimeofday()
>>>>format or whatever format does exist in the world. I am absolutely sure
>>>>I can convert it somehow to fit my needs.
>>>>
>>>>But since it is a kernel mode driver it can not -AFAIK- use the signal()
>>>>syscall.
>>>>
>>>>-Hans
>>>
>>>
>>>Then it gets real simple. Just use jiffies, if you can stand the [...]
>>
>>I fear that there is still some miss-understanding. Jiffies are totally
>>OK for me. I can use them without any conversion.
>>
>>I'll try to formulate the problem with some other words:
>>
>>I hope that there is is something like a "jiffie-counter" for the
>>keyboard driver, that stores the actual jiffies value whenever a
>>keyboard interrupt occurs.
>>
>
>
> Well the keyboard driver and the mouse driver are entirely
> different devices.
>
yes, - I know

> The keyboard has a built-int CPU that generates scan-codes for
> every key-press/key-release. It also performs auto-repeat. The
> mouse generates mouse data at each interrupting event. This data
> represents direction and three key events. Wheel mouse have may
> have additional data, I haven't looked at them. They are not
> related in any way.
>
yes, - I know

>
>
>>I hope too, that there is a way to query that "jiffie-counter" from
>>another kernel driver, so that I can write something like
>>
>>
>>mymouse_module.c
>>
>>...
>>void mouse_event(){
>>
>> // get the current time in jiffies
>> int now=jiffies;
>>
>> // get the jiffie value of the last kbd event
>> int last_kbd_event= ????; // ... but how to do that ...
>>
>> if ((now - last_kbd_event) > delay) {
>> do_some_very_smart_things();
>> }
>> }
>>...
>>
>
>
> Now this pseudo-code shows a "last_kbd_event", not a mouse-
> event as shown in:
>
yes, - I know =8))

It is because I want do some things with the mouse in relation to
keyboard events.

>
> [... a quite detailed explanation on mouse interrupts, mouse data ...]
yes, I know. But my question was: how can I get the timestamp of the
last keyboard interrupt.

> When your module is un-installed, it needs to restore the
> previous (saved) value of that pointer.
>
yes, - I know

> Whatever code you make that pointer point-to, must be
> interrupt-safe. It can get the jiffie-count and put it
> into a buffer, then return.
>
yes, - I know

Hey Richard, - what is so difficult to understand ?

Anyway, - have you read the email reply from Gabriel Paubert regarding
this topic? Sounds very good for a 2.6.x kernel. It seems that I can use
the /dev/input/event? device files. I have just modprobed the "evdev"
module. It seems that I can get my timestamps by reading one of this
files. Have to investigate still which one of them I have to use.
-Hans


-
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/

\
 
 \ /
  Last update: 2005-03-22 13:49    [from the cache]
©2003-2011 Jasper Spaans