Skip to content
Newer
Older
100644 94 lines (67 sloc) 2.47 KB
5142caf *** empty log message ***
Gerd Moellmann authored Jan 25, 2000
1 /* Asynchronous timers.
6da7885 @rgmorris Update copyright for years from Emacs 21 to present (mainly adding
rgmorris authored Jan 14, 2007
2 Copyright (C) 2000, 2001, 2002, 2003, 2004, 2005,
72fadaa @rgmorris Add 2012 to FSF copyright years for Emacs files (do not merge to trunk)
rgmorris authored Jan 10, 2012
3 2006, 2007, 2008, 2009, 2010, 2011, 2012 Free Software Foundation, Inc.
5142caf *** empty log message ***
Gerd Moellmann authored Jan 25, 2000
4
5 This file is part of GNU Emacs.
6
d7db995 @rgmorris Switch to recommended form of GPLv3 permissions notice.
rgmorris authored May 15, 2008
7 GNU Emacs is free software: you can redistribute it and/or modify
5142caf *** empty log message ***
Gerd Moellmann authored Jan 25, 2000
8 it under the terms of the GNU General Public License as published by
d7db995 @rgmorris Switch to recommended form of GPLv3 permissions notice.
rgmorris authored May 15, 2008
9 the Free Software Foundation, either version 3 of the License, or
10 (at your option) any later version.
5142caf *** empty log message ***
Gerd Moellmann authored Jan 25, 2000
11
12 GNU Emacs is distributed in the hope that it will be useful,
13 but WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 GNU General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
d7db995 @rgmorris Switch to recommended form of GPLv3 permissions notice.
rgmorris authored May 15, 2008
18 along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
5142caf *** empty log message ***
Gerd Moellmann authored Jan 25, 2000
19
63d4d2f @loveshack Protect against multiple inclusion. Include
loveshack authored Jun 25, 2000
20 #ifndef EMACS_ATIMER_H
21 #define EMACS_ATIMER_H
22
adb85a5 Don't include lisp.h.
Richard M. Stallman authored Sep 19, 2003
23 /* Declare the prototype for a general external function. */
24 #if defined (PROTOTYPES) || defined (WINDOWSNT)
25 #define P_(proto) proto
26 #else
27 #define P_(proto) ()
28 #endif
29
63d4d2f @loveshack Protect against multiple inclusion. Include
loveshack authored Jun 25, 2000
30 #include "systime.h" /* for EMACS_TIME */
31
5142caf *** empty log message ***
Gerd Moellmann authored Jan 25, 2000
32 /* Forward declaration. */
33
34 struct atimer;
35
36 /* Types of timers. */
37
38 enum atimer_type
39 {
40 /* Timer is ripe at some absolute time. */
41 ATIMER_ABSOLUTE,
42
43 /* Timer is ripe at now plus an offset. */
44 ATIMER_RELATIVE,
45
512f4f5 @lektu Fix typos in comments.
lektu authored Jan 17, 2010
46 /* Timer runs continuously. */
5142caf *** empty log message ***
Gerd Moellmann authored Jan 25, 2000
47 ATIMER_CONTINUOUS
48 };
49
50 /* Type of timer callback functions. */
51
52 typedef void (* atimer_callback) P_ ((struct atimer *timer));
53
54 /* Structure describing an asynchronous timer. */
55
56 struct atimer
57 {
58 /* The type of this timer. */
59 enum atimer_type type;
ef393e7 @lektu Trailing whitespace deleted.
lektu authored Feb 4, 2003
60
5142caf *** empty log message ***
Gerd Moellmann authored Jan 25, 2000
61 /* Time when this timer is ripe. */
62 EMACS_TIME expiration;
63
64 /* Interval of this timer. */
65 EMACS_TIME interval;
66
ab7f852 @paveljanik *** empty log message ***
paveljanik authored Oct 8, 2001
67 /* Function to call when timer is ripe. Interrupt input is
68 guaranteed to not be blocked when this function is called. */
5142caf *** empty log message ***
Gerd Moellmann authored Jan 25, 2000
69 atimer_callback fn;
70
71 /* Additional user-specified data to pass to FN. */
72 void *client_data;
73
74 /* Next in list of active or free atimers. */
75 struct atimer *next;
76 };
77
78 /* Function prototypes. */
79
80 struct atimer *start_atimer P_ ((enum atimer_type, EMACS_TIME,
81 atimer_callback, void *));
82 void cancel_atimer P_ ((struct atimer *));
83 void do_pending_atimers P_ ((void));
84 void init_atimer P_ ((void));
85 void turn_on_atimers P_ ((int));
9293a67 (stop_other_atimers, run_all_atimers)
Gerd Moellmann authored Feb 12, 2000
86 void stop_other_atimers P_ ((struct atimer *));
87 void run_all_atimers P_ ((void));
88 Lisp_Object unwind_stop_other_atimers P_ ((Lisp_Object));
5142caf *** empty log message ***
Gerd Moellmann authored Jan 25, 2000
89
63d4d2f @loveshack Protect against multiple inclusion. Include
loveshack authored Jun 25, 2000
90 #endif /* EMACS_ATIMER_H */
f51da7d @snogglethorpe Add arch taglines
snogglethorpe authored Sep 1, 2003
91
92 /* arch-tag: 02c7c1c8-45bd-4222-b874-4ca44662f60b
93 (do not change this comment) */
Something went wrong with that request. Please try again.