Radix cross Linux

The main Radix cross Linux repository contains the build scripts of packages, which have the most complete and common functionality for desktop machines

452 Commits   2 Branches   1 Tag
Index: defs.h
===================================================================
--- defs.h	(nonexistent)
+++ defs.h	(revision 5)
@@ -0,0 +1,165 @@
+
+/*
+ * DEFS.H
+ *
+ * Copyright 1994-1998 Matthew Dillon (dillon@backplane.com)
+ * Copyright 2009-2011 James Pryor <profjim@jimpryor.net>
+ * May be distributed under the GNU General Public License
+ */
+
+/*
+ * portability issues
+ * 0. gcc defaults to _BSD_SOURCE and _POSIX_SOURCE
+ * 1. need _POSIX_SOURCE or _XOPEN_SOURCE for getopt, fileno, sigaction
+ * 2. need _XOPEN_SOURCE for strptime
+ * 3. need _BSD_SOURCE for setenv, mk{d,s}temp, [v]snprintf, initgroups, strsep, strdup, setre{u,g}id, gethostname, perror
+ * 4. use concat.c instead of requiring asprintf / _GNU_SOURCE
+ */
+
+#define _XOPEN_SOURCE 1
+#define _DEFAULT_SOURCE 1
+
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <sys/ioctl.h>
+#include <sys/wait.h>
+#include <sys/resource.h>
+#include <stdlib.h>
+#include <stdarg.h>
+#include <errno.h>
+#include <dirent.h>
+#include <fcntl.h>
+#include <pwd.h>
+#ifndef S_SPLINT_S
+#include <unistd.h>
+#endif
+#include <grp.h>
+#include <syslog.h>
+#include <signal.h>
+#include <getopt.h>
+#include <err.h>
+#include <limits.h>
+
+#include <time.h>
+#include <string.h>
+#include <stdio.h>
+
+#define Prototype extern
+#define arysize(ary)	(sizeof(ary)/sizeof((ary)[0]))
+
+#ifndef SCRONTABS
+#define SCRONTABS	"/etc/cron.d"
+#endif
+#ifndef CRONTABS
+#define CRONTABS	"/var/spool/cron/crontabs"
+#endif
+#ifndef CRONSTAMPS
+#define CRONSTAMPS	"/var/spool/cron/cronstamps"
+#endif
+#ifndef LOG_IDENT
+#define LOG_IDENT	"crond"
+#endif
+#ifndef TIMESTAMP_FMT
+#define TIMESTAMP_FMT	"%b %e %H:%M:%S"
+#endif
+
+#ifndef LOG_LEVEL
+#define LOG_LEVEL LOG_NOTICE
+#endif
+#ifndef CRONSTAMP_FMT
+#define CRONSTAMP_FMT	"%Y-%m-%d %H:%M"
+#endif
+#ifndef CRONUPDATE
+#define CRONUPDATE	"cron.update"
+#endif
+#ifndef TMPDIR
+#define TMPDIR		"/var/spool/cron"
+#endif
+
+#ifndef SENDMAIL
+#define SENDMAIL	"/usr/sbin/sendmail"
+#endif
+#ifndef SENDMAIL_ARGS
+#define SENDMAIL_ARGS	"-t", "-oem", "-i"
+#endif
+#ifndef PATH_VI
+#define PATH_VI		"/usr/bin/vi"	/* location of vi	*/
+#endif
+
+#ifndef ID_TAG
+#define ID_TAG			"ID="
+#endif
+#ifndef WAIT_TAG
+#define WAIT_TAG		"AFTER="
+#endif
+#ifndef FREQ_TAG
+#define FREQ_TAG		"FREQ="
+#endif
+
+#define HOURLY_FREQ		60 * 60
+#define DAILY_FREQ		24 * HOURLY_FREQ
+#define	WEEKLY_FREQ		7 * DAILY_FREQ
+#define MONTHLY_FREQ	30 * DAILY_FREQ
+#define YEARLY_FREQ		365 * DAILY_FREQ
+
+#define LOGHEADER TIMESTAMP_FMT " %%s " LOG_IDENT ": "
+#define LOCALE_LOGHEADER "%c %%s " LOG_IDENT ": "
+
+/* Limits */
+#define MAXOPEN			256		/* close fds < this limit */ 
+#define MAXLINES		256		/* max lines in non-root crontabs */
+#define SMALL_BUFFER	256
+#define RW_BUFFER		1024
+#define LOG_BUFFER		2048 	/* max size of log line */
+
+
+
+
+typedef struct CronFile {
+    struct CronFile *cf_Next;
+    struct CronLine *cf_LineBase;
+    char	*cf_DPath;	/* Directory path to cronfile */
+    char	*cf_FileName;	/* Name of cronfile */
+    char	*cf_UserName;	/* username to execute jobs as */
+    int		cf_Ready;	/* bool: one or more jobs ready	*/
+    int		cf_Running;	/* bool: one or more jobs running */
+    int		cf_Deleted;	/* marked for deletion, ignore	*/
+} CronFile;
+
+typedef struct CronLine {
+    struct CronLine *cl_Next;
+    char	*cl_Shell;	/* shell command			*/
+	char	*cl_Description;	/* either "<cl_Shell>" or "job <cl_JobName>" */
+	char	*cl_JobName;	/* job name, if any			*/
+	char	*cl_Timestamp;	/* path to timestamp file, if cl_Freq defined */
+	struct	CronWaiter *cl_Waiters;
+	struct	CronNotifier *cl_Notifs;
+	int		cl_Freq;		/* 0 (use arrays),  minutes, -1 (noauto), -2 (startup)	*/
+	int		cl_Delay;		/* defaults to cl_Freq or hourly	*/
+	time_t	cl_LastRan;
+	time_t	cl_NotUntil;
+	int		cl_Pid;			/* running pid, 0, or armed (-1), or waiting (-2) */
+    int		cl_MailFlag;	/* running pid is for mail		*/
+    int		cl_MailPos;	/* 'empty file' size			*/
+    char	cl_Mins[60];	/* 0-59				*/
+    char	cl_Hrs[24];	/* 0-23					*/
+    char	cl_Days[32];	/* 1-31					*/
+    char	cl_Mons[12];	/* 0-11				*/
+    char	cl_Dow[7];	/* 0-6, beginning sunday		*/
+} CronLine;
+
+typedef struct CronWaiter {
+	struct	CronWaiter *cw_Next;
+	struct	CronNotifier *cw_Notifier;
+	struct	CronLine *cw_NotifLine;
+	short	cw_Flag;
+	int		cw_MaxWait;
+} CronWaiter;
+
+typedef struct CronNotifier {
+	struct	CronNotifier *cn_Next;
+	struct	CronWaiter *cn_Waiter;
+} CronNotifier;
+
+#include "protos.h"
+