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    [W:0.032 / U:0.628 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site