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