Files
oldlinux-files/bin-src/ps-0.98.diff
2024-02-19 00:21:55 -05:00

508 lines
12 KiB
Diff

diff -c +recursive orig/ps-0.98/ps.c ps-0.98/ps.c
*** orig/ps-0.98/ps.c Tue Oct 20 13:38:26 1992
--- ps-0.98/ps.c Wed Nov 4 20:44:49 1992
***************
*** 178,184 ****
show_procs()
{
struct task_struct *taskp;
! union task_union task_buf;
int tty, i, uid;
off_t _task = k_addr("_task");
--- 178,185 ----
show_procs()
{
struct task_struct *taskp;
! struct task_struct task_buf;
! char stack_buf[PAGE_SIZE];
int tty, i, uid;
off_t _task = k_addr("_task");
***************
*** 192,218 ****
if (taskp) {
kmemread(&task_buf, taskp, sizeof(task_buf));
/* check if valid, proc may have exited */
! if ((unsigned) task_buf.task.state > 4 ||
! task_buf.task.pid <= 0 && i != 0)
continue;
if (pid >= 0) {
! if (task_buf.task.pid != pid)
continue;
} else if (ctty) {
! if (task_buf.task.tty != tty)
continue;
} else
! if (!all && task_buf.task.uid != uid ||
! !no_ctty && task_buf.task.tty == -1 ||
! run_only && task_buf.task.state != TASK_RUNNING &&
! task_buf.task.state != TASK_UNINTERRUPTIBLE)
continue;
! (fmt_fnc[fmt])(&task_buf);
if (fmt != PS_V && fmt != PS_M)
! show_time(&task_buf);
! printf("%s\n", cmd_args(&task_buf));
}
}
}
--- 193,221 ----
if (taskp) {
kmemread(&task_buf, taskp, sizeof(task_buf));
/* check if valid, proc may have exited */
! if ((unsigned) task_buf.state > 4 ||
! (task_buf.pid <= 0 && i != 0) ||
! !task_buf.kernel_stack_page)
continue;
if (pid >= 0) {
! if (task_buf.pid != pid)
continue;
} else if (ctty) {
! if (task_buf.tty != tty)
continue;
} else
! if (!all && task_buf.uid != uid ||
! !no_ctty && task_buf.tty == -1 ||
! run_only && task_buf.state != TASK_RUNNING &&
! task_buf.state != TASK_UNINTERRUPTIBLE)
continue;
! kmemread(&stack_buf, task_buf.kernel_stack_page, PAGE_SIZE);
! (fmt_fnc[fmt])(&task_buf,&stack_buf);
if (fmt != PS_V && fmt != PS_M)
! show_time(&task_buf, &stack_buf);
! printf("%s\n", cmd_args(&task_buf, &stack_buf));
}
}
}
***************
*** 219,226 ****
! show_short(task)
struct task_struct *task;
{
printf("%5d %s %s",
task->pid,
--- 222,230 ----
! show_short(task, stack)
struct task_struct *task;
+ reg_t * stack;
{
printf("%5d %s %s",
task->pid,
***************
*** 228,235 ****
status(task));
}
! show_long(task)
struct task_struct *task;
{
long ppid;
--- 232,240 ----
status(task));
}
! show_long(task, stack)
struct task_struct *task;
+ reg_t * stack;
{
long ppid;
***************
*** 242,259 ****
ppid,
2 * PZERO - task->counter, /* sort of priority */
PZERO - task->priority, /* nice value */
! VSIZE(task),
task->rss * 4,
(task->state == TASK_INTERRUPTIBLE ||
task->state == TASK_UNINTERRUPTIBLE ||
Debug > 1 && task->state == TASK_STOPPED ?
! wchan(task->tss.ebp, task) : ""),
status(task),
dev_to_tty(task->tty));
}
! show_jobs(task)
struct task_struct *task;
{
long ppid, tpgid;
struct tty_struct *tt;
--- 247,265 ----
ppid,
2 * PZERO - task->counter, /* sort of priority */
PZERO - task->priority, /* nice value */
! VSIZE(task,stack),
task->rss * 4,
(task->state == TASK_INTERRUPTIBLE ||
task->state == TASK_UNINTERRUPTIBLE ||
Debug > 1 && task->state == TASK_STOPPED ?
! wchan(task->tss.ebp, stack) : ""),
status(task),
dev_to_tty(task->tty));
}
! show_jobs(task, stack)
struct task_struct *task;
+ reg_t * stack;
{
long ppid, tpgid;
struct tty_struct *tt;
***************
*** 284,291 ****
task->euid);
}
! show_user(task)
struct task_struct *task;
{
time_t start;
int pcpu, pmem;
--- 290,298 ----
task->euid);
}
! show_user(task, stack)
struct task_struct *task;
+ reg_t * stack;
{
time_t start;
int pcpu, pmem;
***************
*** 309,315 ****
task->pid,
pcpu / 10, pcpu % 10,
pmem / 10, pmem % 10,
! VSIZE(task),
task->rss * 4,
dev_to_tty(task->tty),
status(task),
--- 316,322 ----
task->pid,
pcpu / 10, pcpu % 10,
pmem / 10, pmem % 10,
! VSIZE(task,stack),
task->rss * 4,
dev_to_tty(task->tty),
status(task),
***************
*** 316,323 ****
ctime(&start) + (time_now - start > 3600*24 ? 4 : 10));
}
! show_sig(task)
struct task_struct *task;
{
unsigned long sigignore=0, sigcatch=0, bit=1;
int i;
--- 323,331 ----
ctime(&start) + (time_now - start > 3600*24 ? 4 : 10));
}
! show_sig(task, stack)
struct task_struct *task;
+ reg_t * stack;
{
unsigned long sigignore=0, sigcatch=0, bit=1;
int i;
***************
*** 341,348 ****
dev_to_tty(task->tty));
}
! show_vm(task)
struct task_struct *task;
{
int pmem;
--- 349,357 ----
dev_to_tty(task->tty));
}
! show_vm(task, stack)
struct task_struct *task;
+ reg_t * stack;
{
int pmem;
***************
*** 354,360 ****
printf(" %6d %4d %4d %4d ",
task->maj_flt + (Sum ? task->cmaj_flt : 0),
task->end_code / 1024,
! SIZE(task), task->rss*4);
if (task->rlim[RLIMIT_RSS].rlim_cur == RLIM_INFINITY)
printf(" xx ");
else
--- 363,369 ----
printf(" %6d %4d %4d %4d ",
task->maj_flt + (Sum ? task->cmaj_flt : 0),
task->end_code / 1024,
! SIZE(task, stack), task->rss*4);
if (task->rlim[RLIMIT_RSS].rlim_cur == RLIM_INFINITY)
printf(" xx ");
else
***************
*** 364,371 ****
}
! show_m(task)
struct task_struct *task;
{
int i;
unsigned long pagedir[0x300];
--- 373,381 ----
}
! show_m(task, stack)
struct task_struct *task;
+ reg_t * stack;
{
int i;
unsigned long pagedir[0x300];
***************
*** 431,438 ****
dt << pg_shift);
}
! show_regs(task)
struct task_struct *task;
{
printf("%2d %5d %8x %8x %8x ",
task->start_code >> 26,
--- 441,449 ----
dt << pg_shift);
}
! show_regs(task, stack)
struct task_struct *task;
+ reg_t * stack;
{
printf("%2d %5d %8x %8x %8x ",
task->start_code >> 26,
***************
*** 441,448 ****
task->start_code >> 16,
**/
task->start_stack,
! KSTK_ESP(task),
! KSTK_EIP(task));
prtime(task->timeout, jiffies);
prtime(task->it_real_value, 0);
--- 452,459 ----
task->start_code >> 16,
**/
task->start_stack,
! KSTK_ESP(stack),
! KSTK_EIP(stack));
prtime(task->timeout, jiffies);
prtime(task->it_real_value, 0);
***************
*** 487,494 ****
};
! show_time(task)
struct task_struct *task;
{
unsigned t;
--- 498,506 ----
};
! show_time(task, stack)
struct task_struct *task;
+ reg_t * stack;
{
unsigned t;
***************
*** 500,507 ****
}
char *
! status(task)
struct task_struct *task;
{
static char buf[5] = " ";
--- 512,520 ----
}
char *
! status(task, stack)
struct task_struct *task;
+ reg_t * stack;
{
static char buf[5] = " ";
diff -c +recursive orig/ps-0.98/ps.h ps-0.98/ps.h
*** orig/ps-0.98/ps.h Tue Sep 22 22:06:56 1992
--- ps-0.98/ps.h Wed Nov 4 20:44:49 1992
***************
*** 21,42 ****
#define PAGE_MASK 0xfff
! #define KSTK_EIP(task) (*((unsigned long *)(task)+1019))
! #define KSTK_ESP(task) (*((unsigned long *)(task)+1022))
! #define _SSIZE(task) (TASK_SIZE - KSTK_ESP(task))
! #define SSIZE(task) (KSTK_ESP(task) ? _SSIZE(task) : 0)
! #define VSIZE(task) (((task)->brk + 1023 + SSIZE(task)) / 1024)
! #define SIZE(task) (((task)->brk - (task)->end_code + 1023 + \
! SSIZE(task)) / 1024)
! typedef unsigned reg_t;
!
! union task_union {
! struct task_struct task;
! reg_t stack[PAGE_SIZE/4];
! };
char *find_func();
unsigned long k_addr();
--- 21,37 ----
#define PAGE_MASK 0xfff
! #define KSTK_EIP(stack) ((stack)[1019])
! #define KSTK_ESP(stack) ((stack)[1022])
! #define _SSIZE(stack) (TASK_SIZE - KSTK_ESP(stack))
! #define SSIZE(stack) (KSTK_ESP(stack) ? _SSIZE(stack) : 0)
! #define VSIZE(task,stack) (((task)->brk + 1023 + SSIZE(stack)) / 1024)
! #define SIZE(task,stack) (((task)->brk - (task)->end_code + 1023 + \
! SSIZE(stack)) / 1024)
+ typedef unsigned reg_t;
char *find_func();
unsigned long k_addr();
diff -c +recursive orig/ps-0.98/top.c ps-0.98/top.c
*** orig/ps-0.98/top.c Fri Oct 16 19:55:57 1992
--- ps-0.98/top.c Thu Nov 5 22:04:24 1992
***************
*** 54,60 ****
char hdr[200];
char *title="TOP by Roger Binns Ps (c) 1992 Branko Lankester";
! void do_it(struct task_struct *task, int num);
void do_key(char c);
char *cm, *clrtobot, *cl, *so, *se, *clrtoeol, *mb, *md, *us, *ue;
char *outp;
--- 54,60 ----
char hdr[200];
char *title="TOP by Roger Binns Ps (c) 1992 Branko Lankester";
! void do_it(struct task_struct *task, reg_t *stack, int num);
void do_key(char c);
char *cm, *clrtobot, *cl, *so, *se, *clrtoeol, *mb, *md, *us, *ue;
char *outp;
***************
*** 424,430 ****
show_procs()
{
struct task_struct *taskp;
! union task_union task_buf;
int tty, i, uid;
off_t _task = k_addr("_task");
--- 424,431 ----
show_procs()
{
struct task_struct *taskp;
! struct task_struct task_buf;
! char stack_buf[PAGE_SIZE];
int tty, i, uid;
off_t _task = k_addr("_task");
***************
*** 436,450 ****
if (taskp) {
kmemread(&task_buf, taskp, sizeof(task_buf));
/* check if valid, proc may have exited */
! if ((unsigned) task_buf.task.state > 4 ||
! task_buf.task.pid <= 0 && i != 0)
continue;
! do_it((struct task_struct *)&task_buf, i);
}
}
}
! void do_it(struct task_struct *task, int num)
{
unsigned t, i;
time_t now, start;
--- 437,453 ----
if (taskp) {
kmemread(&task_buf, taskp, sizeof(task_buf));
/* check if valid, proc may have exited */
! if ((unsigned) task_buf.state > 4 ||
! task_buf.pid <= 0 && i != 0 ||
! !task_buf.kernel_stack_page)
continue;
! kmemread(&stack_buf, task_buf.kernel_stack_page, PAGE_SIZE);
! do_it(&task_buf, (reg_t *) &stack_buf, i);
}
}
}
! void do_it(struct task_struct *task, reg_t *stack, int num)
{
unsigned t, i;
time_t now, start;
***************
*** 495,502 ****
case P_NICE: sprintf(tmp, "%3d ", PZERO-task->priority); break;
case P_PAGEIN: sprintf(tmp, "%6d ", task->maj_flt+(Sum ? task->cmaj_flt : 0)); break;
case P_TSIZ: sprintf(tmp, "%5d ", task->end_code/1024); break;
! case P_DSIZ: sprintf(tmp, "%5d ", SIZE(task)); break;
! case P_SIZE: sprintf(tmp, "%5d ", VSIZE(task)); break;
case P_TRS: sprintf(tmp, "%4d ", TRS); break;
case P_SWAP: sprintf(tmp, "%4d ", SWAP); break;
case P_SHARE: sprintf(tmp, "%5d ", SHARE); break;
--- 498,505 ----
case P_NICE: sprintf(tmp, "%3d ", PZERO-task->priority); break;
case P_PAGEIN: sprintf(tmp, "%6d ", task->maj_flt+(Sum ? task->cmaj_flt : 0)); break;
case P_TSIZ: sprintf(tmp, "%5d ", task->end_code/1024); break;
! case P_DSIZ: sprintf(tmp, "%5d ", SIZE(task,stack)); break;
! case P_SIZE: sprintf(tmp, "%5d ", VSIZE(task,stack)); break;
case P_TRS: sprintf(tmp, "%4d ", TRS); break;
case P_SWAP: sprintf(tmp, "%4d ", SWAP); break;
case P_SHARE: sprintf(tmp, "%5d ", SHARE); break;
***************
*** 507,513 ****
case P_WCHAN: sprintf(tmp, "%-9.9s ",
(task->state == TASK_INTERRUPTIBLE ||
task->state == TASK_UNINTERRUPTIBLE ?
! wchan(task->tss.ebp, task) : "")); break;
case P_STAT: sprintf(tmp, "%-4.4s ", status(task)); break;
case P_TIME: sprintf(tmp, "%3d:%02d ", t/60, t%60); break;
case P_COMMAND: strcpy(tmp, cmd_args(task)); break;
--- 510,516 ----
case P_WCHAN: sprintf(tmp, "%-9.9s ",
(task->state == TASK_INTERRUPTIBLE ||
task->state == TASK_UNINTERRUPTIBLE ?
! wchan(task->tss.ebp, stack) : "")); break;
case P_STAT: sprintf(tmp, "%-4.4s ", status(task)); break;
case P_TIME: sprintf(tmp, "%3d:%02d ", t/60, t%60); break;
case P_COMMAND: strcpy(tmp, cmd_args(task)); break;