1 /* @(#)job.h	1.4 21/03/22 Copyright 2009-2021 J. Schilling */
2 
3 #include <schily/types.h>
4 
5 typedef struct job	job;
6 
7 struct job {
8 	job	*j_next;	/* Next active job in list	    */
9 	pid_t	j_pid;		/* Pid for this job, 0 if unused    */
10 	int	j_flags;	/* Flags for this job, see below    */
11 	int	j_excode;	/* Exit code for non awaited jobs   */
12 	char	*j_cmd;		/* Expanded single command line	    */
13 	obj_t	*j_obj;		/* obj for this command		    */
14 	date_t	j_date;		/* Current date for this target	    */
15 };
16 
17 /*
18  * Definitions for j_flags
19  */
20 #define	J_SILENT	0x001	/* '@' or -s forwarded to cmd_wait()	*/
21 #define	J_NOERROR	0x002	/* '-' or -i forwarded to cmd_wait()	*/
22 #define	J_MYECHO	0x004	/* "echo ..." at cmd start handled in make  */
23 #define	J_NOWAIT	0x100	/* Exit code known, no wait() in cmd_wait() */
24 
25 #define	MAXJOBS_MAX	1	/* Current maximum supported value	*/
26 
27 /*
28  * job.c
29  */
30 extern	job	*newjob		__PR((void));
31 extern	void	setup_xvars	__PR((void));
32 extern	void	setup_SHELL	__PR((void));
33 extern	BOOL	cmd_prefix	__PR((char *cmd, int pfx));
34 extern	BOOL	cmdlist_prefix	__PR((cmd_t *cmd, int pfx));
35 extern	int	docmd		__PR((char * cmd, obj_t * obj));
36 
37 extern	int	curjobs;	/* # of currently active jobs		*/
38 extern	int	maxjobs;	/* # of max. possible jobs		*/
39 extern	job	jobs[];		/* The list of job			*/
40