1100966Siwasaki/*	$NetBSD$	*/
2100966Siwasaki
3100966Siwasaki/*
4100966Siwasaki * Id: structs.h,v 1.7 2004/01/23 18:56:43 vixie Exp
5100966Siwasaki */
6100966Siwasaki
7100966Siwasaki/*
8100966Siwasaki * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
9100966Siwasaki * Copyright (c) 1997,2000 by Internet Software Consortium, Inc.
10100966Siwasaki *
11100966Siwasaki * Permission to use, copy, modify, and distribute this software for any
12193267Sjkim * purpose with or without fee is hereby granted, provided that the above
13100966Siwasaki * copyright notice and this permission notice appear in all copies.
14100966Siwasaki *
15100966Siwasaki * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
16100966Siwasaki * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
17100966Siwasaki * MERCHANTABILITY AND FITNESS.  IN NO EVENT SHALL ISC BE LIABLE FOR
18100966Siwasaki * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
19100966Siwasaki * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
20100966Siwasaki * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
21100966Siwasaki * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
22100966Siwasaki */
23100966Siwasaki
24100966Siwasakitypedef	struct _entry {
25100966Siwasaki	struct _entry	*next;
26100966Siwasaki	struct passwd	*pwd;
27100966Siwasaki	char		**envp;
28100966Siwasaki	char		*cmd;
29100966Siwasaki	bitstr_t	bit_decl(minute, MINUTE_COUNT);
30100966Siwasaki	bitstr_t	bit_decl(hour,   HOUR_COUNT);
31100966Siwasaki	bitstr_t	bit_decl(dom,    DOM_COUNT);
32100966Siwasaki	bitstr_t	bit_decl(month,  MONTH_COUNT);
33100966Siwasaki	bitstr_t	bit_decl(dow,    DOW_COUNT);
34100966Siwasaki	int		flags;
35100966Siwasaki#define	MIN_STAR	0x01
36100966Siwasaki#define	HR_STAR		0x02
37100966Siwasaki#define	DOM_STAR	0x04
38100966Siwasaki#define	DOW_STAR	0x08
39100966Siwasaki#define	WHEN_REBOOT	0x10
40100966Siwasaki#define	DONT_LOG	0x20
41100966Siwasaki} entry;
42100966Siwasaki
43100966Siwasaki			/* the crontab database will be a list of the
44100966Siwasaki			 * following structure, one element per user
45100966Siwasaki			 * plus one for the system.
46100966Siwasaki			 *
47100966Siwasaki			 * These are the crontabs.
48100966Siwasaki			 */
49100966Siwasaki
50100966Siwasakitypedef	struct _user {
51100966Siwasaki	struct _user	*next, *prev;	/* links */
52100966Siwasaki	char		*name;
53100966Siwasaki	time_t		mtime;		/* last modtime of crontab */
54100966Siwasaki	entry		*crontab;	/* this person's crontab */
55100966Siwasaki} user;
56100966Siwasaki
57100966Siwasakitypedef	struct _cron_db {
58100966Siwasaki	user		*head, *tail;	/* links */
59100966Siwasaki	time_t		mtime;		/* last modtime on spooldir */
60100966Siwasaki} cron_db;
61100966Siwasaki				/* in the C tradition, we only create
62100966Siwasaki				 * variables for the main program, just
63100966Siwasaki				 * extern them elsewhere.
64100966Siwasaki				 */
65100966Siwasaki