From e96c26476310404fe61aad5d8eb4c21d79c28178 Mon Sep 17 00:00:00 2001 From: _ov4 Date: Wed, 2 Sep 2026 12:27:37 +0000 Subject: job refactor --- src/job.cc | 76 +++++++++++++++++++++++++++++++------------------------------- 1 file changed, 38 insertions(+), 38 deletions(-) (limited to 'src/job.cc') 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; -- cgit v1.3.1-4-g156e