8322 nl: misleading-indentation
[unleashed/tickless.git] / usr / src / cmd / sendmail / include / sm / clock.h
blob5996e216bfc8b031e512925cbeb7fbe4a54af3c4
1 /*
2 * Copyright (c) 1998-2001, 2004 Sendmail, Inc. and its suppliers.
3 * All rights reserved.
4 * Copyright (c) 1983, 1995-1997 Eric P. Allman. All rights reserved.
5 * Copyright (c) 1988, 1993
6 * The Regents of the University of California. All rights reserved.
8 * By using this file, you agree to the terms and conditions set
9 * forth in the LICENSE file which can be found at the top level of
10 * the sendmail distribution.
12 * $Id: clock.h,v 1.12 2004/08/03 19:57:21 ca Exp $
15 #pragma ident "%Z%%M% %I% %E% SMI"
18 ** CLOCK.H -- for co-ordinating timed events
21 #ifndef _SM_CLOCK_H
22 # define _SM_CLOCK_H 1
24 # include <sm/signal.h>
25 # if SM_CONF_SETITIMER
26 # include <sys/time.h>
27 # endif /* SM_CONF_SETITIMER */
30 ** STRUCT SM_EVENT -- event queue.
32 ** Maintained in sorted order.
34 ** We store the pid of the process that set this event to insure
35 ** that when we fork we will not take events intended for the parent.
38 struct sm_event
40 # if SM_CONF_SETITIMER
41 struct timeval ev_time; /* time of the call (microseconds) */
42 # else /* SM_CONF_SETITIMER */
43 time_t ev_time; /* time of the call (seconds) */
44 # endif /* SM_CONF_SETITIMER */
45 void (*ev_func)__P((int));
46 /* function to call */
47 int ev_arg; /* argument to ev_func */
48 pid_t ev_pid; /* pid that set this event */
49 struct sm_event *ev_link; /* link to next item */
52 typedef struct sm_event SM_EVENT;
54 /* functions */
55 extern void sm_clrevent __P((SM_EVENT *));
56 extern void sm_clear_events __P((void));
57 extern SM_EVENT *sm_seteventm __P((int, void(*)__P((int)), int));
58 extern SM_EVENT *sm_sigsafe_seteventm __P((int, void(*)__P((int)), int));
59 extern SIGFUNC_DECL sm_tick __P((int));
62 ** SM_SETEVENT -- set an event to happen at a specific time in seconds.
64 ** Translates the seconds into millseconds and calls sm_seteventm()
65 ** to get a specific event to happen in the future at a specific time.
67 ** Parameters:
68 ** t -- intvl until next event occurs (seconds).
69 ** f -- function to call on event.
70 ** a -- argument to func on event.
72 ** Returns:
73 ** result of sm_seteventm().
75 ** Side Effects:
76 ** Any that sm_seteventm() have.
79 #define sm_setevent(t, f, a) sm_seteventm((int)((t) * 1000), (f), (a))
80 #define sm_sigsafe_setevent(t, f, a) sm_sigsafe_seteventm((int)((t) * 1000), (f), (a))
82 #endif /* _SM_CLOCK_H */