From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S262449AbTJFSdZ (ORCPT ); Mon, 6 Oct 2003 14:33:25 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S262450AbTJFSdY (ORCPT ); Mon, 6 Oct 2003 14:33:24 -0400 Received: from chaos.analogic.com ([204.178.40.224]:8579 "EHLO chaos.analogic.com") by vger.kernel.org with ESMTP id S262449AbTJFScH (ORCPT ); Mon, 6 Oct 2003 14:32:07 -0400 Date: Mon, 6 Oct 2003 14:34:57 -0400 (EDT) From: "Richard B. Johnson" X-X-Sender: root@chaos Reply-To: root@chaos.analogic.com To: Hans-Georg Thien <1682-600@onlinehome.de> cc: Kernel Mailing List Subject: Re: getting timestamp of last interrupt? In-Reply-To: <3F81B2A3.4040001@onlinehome.de> Message-ID: References: <3F7E46AB.3030709@onlinehome.de> <3F81B2A3.4040001@onlinehome.de> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org On Mon, 6 Oct 2003, Hans-Georg Thien wrote: > Richard B. Johnson wrote: > > On Sat, 4 Oct 2003, Hans-Georg Thien wrote: > > > > > >>> [...] > >>>>I am looking for a possibility to read out the last timestamp when an > >>>>interrupt has occured. > >>>> > >>>>e.g.: the user presses a key on the keyboard. Where can I read out the > >>>>timestamp of this event? > >>> > >>> > >>>You can get A SIGIO signal for every keyboard, (or other input) event. > >>>What you do with it is entirely up to you. Linux/Unix doesn't have > >>>"callbacks", instead it has signals. It also has select() and poll(), > >>>all useful for handling such events. If you want a time-stamp, you > >>>call gettimeofday() in your signal handler. > >>> > >> > >>Thanks a lot Richard, > >> > >>... but ... can I use signals in kernel mode? > > > > > > Well you talked about the user pressing a key and getting > > a time-stamp as a result. If you need time-stamps > > inside the kernel, i.e, a module, then you can call > > the kernel's do_gettimeofday() function. > > > Hello Richard, - It seems, that I should be more precise about what I > exactly mean... > > > 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 wrap that will occur every (2^32 -1)/HZ seconds ~= 497 days with HZ = 100. If not, call sys_gettimeofday(). Also, if your events are closer in time than a HZ, then you must get time from sys_gettimeofday(). Cheers, Dick Johnson Penguin : Linux version 2.4.22 on an i686 machine (797.90 BogoMips). Note 96.31% of all statistics are fiction.