2 * FCRON - periodic command scheduler
4 * Copyright 2000 Thibault Godouet <fcron@free.fr>
6 * This program is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; either version 2 of the License, or
9 * (at your option) any later version.
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
16 * You should have received a copy of the GNU General Public License
17 * along with this program; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20 * The GNU General Public License can also be found in the file
21 * `LICENSE' that comes with the fcron source distribution.
24 /* $Id: global.h,v 1.17 2000-08-28 17:59:40 thib Exp $ */
28 WARNING : this file should not be modified.
29 Compilation's options are in config.h
48 #include <sys/types.h>
56 #include "bitstring.h"
60 #define FILEVERSION "012" /* syntax's version of fcrontabs :
61 * must have a length of 3 characters */
63 /* you should not change this (nor need to do it) */
69 #define Alloc(ptr, type) \
70 if( (ptr = calloc(1, sizeof(type))) == NULL ) \
71 die_e("Could not calloc.");
73 #define debug if(debug_opt) Debug
75 typedef struct env_t {
76 char *e_val; /* env value */
82 struct CL *cf_line_base;
83 char *cf_user; /* user-name */
84 struct env_t *cf_env_base; /* list of all env variables to set */
85 int cf_running; /* number of jobs running */
88 /* warning : do not change the order of the members of this structure
89 * because some tests made are dependent to that order */
92 struct CF *cl_file; /* the file in which the line is */
93 unsigned short cl_option; /* options for that line (see option.h) */
94 char *cl_shell; /* shell command */
95 char cl_lavg[3]; /* load averages needed (1, 5, 15 mins) */
96 time_t cl_until; /* timeout of the wait for a lavg value */
97 char cl_nice; /* nice value to control priority */
98 uid_t cl_runas; /* determine permissions of the job */
99 uid_t cl_mailto; /* mail output to cl_mailto */
100 pid_t cl_pid; /* running pid, 0, or armed (-1) */
101 time_t cl_nextexe; /* time and date of the next execution */
102 short int cl_remain; /* remaining until next execution */
103 time_t cl_timefreq; /* Run every n seconds */
104 short int cl_runfreq; /* Run once every n matches */
105 /* see bitstring(3) man page for more details */
106 bitstr_t bit_decl(cl_mins, 60); /* 0-59 */
107 bitstr_t bit_decl(cl_hrs, 24); /* 0-23 */
108 bitstr_t bit_decl(cl_days, 32); /* 1-31 */
109 bitstr_t bit_decl(cl_mons, 12); /* 0-11 */
110 bitstr_t bit_decl(cl_dow, 8); /* 0-7, 0 and 7 are both Sunday */
118 typedef struct lavg {
120 time_t l_since; /* the time of the line admission in the queue */
123 #endif /* __GLOBALH__ */