aboutsummaryrefslogtreecommitdiff
path: root/src/job.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/job.cc')
-rw-r--r--src/job.cc76
1 files changed, 38 insertions, 38 deletions
diff --git a/src/job.cc b/src/job.cc
index a22f327..e4f9617 100644
--- a/src/job.cc
+++ b/src/job.cc
@@ -3,7 +3,7 @@
namespace ov4
{
-struct job_t jobs[MAXJOBS];
+struct job_t _jobs[MAXJOBS];
int nextjid = 1;
void clearjob(struct job_t *job) {
@@ -14,26 +14,26 @@ void clearjob(struct job_t *job) {
}
/* initjobs - Initialize the job list */
-void initjobs(struct job_t *jobs) {
+void initjobs(struct job_t *job) {
int i;
for (i = 0; i < MAXJOBS; i++)
- clearjob(&jobs[i]);
+ clearjob(&job[i]);
}
/* maxjid - Returns largest allocated job ID */
-int maxjid(struct job_t *jobs)
+int maxjid(struct job_t *job)
{
int i, max=0;
for (i = 0; i < MAXJOBS; i++)
- if (jobs[i].jid > max)
- max = jobs[i].jid;
+ if (job[i].jid > max)
+ max = job[i].jid;
return max;
}
/* addjob - Add a job to the job list */
-int addjob(struct job_t *jobs, pid_t pid, int state, char *cmdline)
+int addjob(pid_t pid, int state, char *cmdline, struct job_t *job)
{
int i;
@@ -41,15 +41,15 @@ int addjob(struct job_t *jobs, pid_t pid, int state, char *cmdline)
return 0;
for (i = 0; i < MAXJOBS; i++) {
- if (jobs[i].pid == 0) {
- jobs[i].pid = pid;
- jobs[i].state = state;
- jobs[i].jid = nextjid++;
+ if (job[i].pid == 0) {
+ job[i].pid = pid;
+ job[i].state = state;
+ job[i].jid = nextjid++;
if (nextjid > MAXJOBS)
nextjid = 1;
- strcpy(jobs[i].cmdline, cmdline);
+ strcpy(job[i].cmdline, cmdline);
if(verbose){
- printf("Added job [%d] %d %s\n", jobs[i].jid, jobs[i].pid, jobs[i].cmdline);
+ printf("Added job [%d] %d %s\n", job[i].jid, job[i].pid, job[i].cmdline);
}
return 1;
}
@@ -59,7 +59,7 @@ int addjob(struct job_t *jobs, pid_t pid, int state, char *cmdline)
}
/* deletejob - Delete a job whose PID=pid from the job list */
-int deletejob(struct job_t *jobs, pid_t pid)
+int deletejob(pid_t pid, struct job_t *job)
{
int i;
@@ -67,9 +67,9 @@ int deletejob(struct job_t *jobs, pid_t pid)
return 0;
for (i = 0; i < MAXJOBS; i++) {
- if (jobs[i].pid == pid) {
- clearjob(&jobs[i]);
- nextjid = maxjid(jobs)+1;
+ if (job[i].pid == pid) {
+ clearjob(&job[i]);
+ nextjid = maxjid(job)+1;
return 1;
}
}
@@ -77,63 +77,63 @@ int deletejob(struct job_t *jobs, pid_t pid)
}
/* fgpid - Return PID of current foreground job, 0 if no such job */
-pid_t fgpid(struct job_t *jobs) {
+pid_t fgpid(struct job_t *job) {
int i;
for (i = 0; i < MAXJOBS; i++)
- if (jobs[i].state == FG)
- return jobs[i].pid;
+ if (job[i].state == FG)
+ return job[i].pid;
return 0;
}
/* getjobpid - Find a job (by PID) on the job list */
-struct job_t *getjobpid(struct job_t *jobs, pid_t pid) {
+struct job_t *getjobpid(pid_t pid, struct job_t *job) {
int i;
if (pid < 1)
return NULL;
for (i = 0; i < MAXJOBS; i++)
- if (jobs[i].pid == pid)
- return &jobs[i];
+ if (job[i].pid == pid)
+ return &job[i];
return NULL;
}
/* getjobjid - Find a job (by JID) on the job list */
-struct job_t *getjobjid(struct job_t *jobs, int jid)
+struct job_t *getjobjid(int jid, struct job_t *job)
{
int i;
if (jid < 1)
return NULL;
for (i = 0; i < MAXJOBS; i++)
- if (jobs[i].jid == jid)
- return &jobs[i];
+ if (job[i].jid == jid)
+ return &job[i];
return NULL;
}
/* pid2jid - Map process ID to job ID */
-int pid2jid(pid_t pid)
+int pid2jid(pid_t pid, struct job_t *job)
{
int i;
if (pid < 1)
return 0;
for (i = 0; i < MAXJOBS; i++)
- if (jobs[i].pid == pid) {
- return jobs[i].jid;
+ if (job[i].pid == pid) {
+ return job[i].jid;
}
return 0;
}
/* listjobs - Print the job list */
-void listjobs(struct job_t *jobs)
+void listjobs(struct job_t *job)
{
int i;
for (i = 0; i < MAXJOBS; i++) {
- if (jobs[i].pid != 0) {
- printf("[%d] (%d) ", jobs[i].jid, jobs[i].pid);
- switch (jobs[i].state) {
+ if (job[i].pid != 0) {
+ printf("[%d] (%d) ", job[i].jid, job[i].pid);
+ switch (job[i].state) {
case BG:
printf("Running ");
break;
@@ -145,20 +145,20 @@ void listjobs(struct job_t *jobs)
break;
default:
printf("listjobs: Internal error: job[%d].state=%d ",
- i, jobs[i].state);
+ i, job[i].state);
}
- printf("%s", jobs[i].cmdline);
+ printf("%s", job[i].cmdline);
}
}
}
-bool job_suspend(struct job_t *jobs, pid_t pid) {
+bool job_suspend(pid_t pid, struct job_t *job) {
int i;
for (i = 0; i < MAXJOBS; i++)
- if (jobs[i].pid == pid)
+ if (job[i].pid == pid)
{
- jobs[i].state = ST;
+ job[i].state = ST;
return true;
}
return false;