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