STATUS: 94% done
0000 T _gtime compatible
000e T _ftime compatible
00a4 T _stime compatible
00d2 T _setuid compatible
012e T _getuid compatible
0148 T _setgid compatible
019a T _getgid compatible
01b4 T _getpid compatible
01d0 T _setpgrp compatible
0206 T _sync compatible
020e T _nice compatible
027c T _unlink compatible
038e T _chdir compatible
0398 T _chroot compatible
03ac T _chdirec compatible
042a T _chmod compatible
04a0 T _chown compatible
04fa T _ssig compatible
0612 T _kill compatible
0722 T _times compatible
077a T _profil compatible
07ac T _sprofil not existent
0872 T _alarm compatible
08aa T _pause compatible
08bc T _umask compatible
08e0 T _utime compatible
09ee T _nosys compatible
09f8 T _nullsys compatible
09fa T _bpt compatible
0a0a T _utssys not compatible
0b0a T _ulimit compatible
This commit is contained in:
parent
aae7e621be
commit
94d5eb023f
|
|
@ -33,6 +33,7 @@ char sys4wstr[] = "@[$]sys4.c Rev : 4.2 09/26/83 22:15:02";
|
||||||
#include <sys/filsys.h>
|
#include <sys/filsys.h>
|
||||||
#include <sys/mount.h>
|
#include <sys/mount.h>
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Everything in this file is a routine implementing a system call.
|
* Everything in this file is a routine implementing a system call.
|
||||||
*/
|
*/
|
||||||
|
|
@ -329,21 +330,28 @@ ssig()
|
||||||
register struct proc *p;
|
register struct proc *p;
|
||||||
struct a {
|
struct a {
|
||||||
int signo;
|
int signo;
|
||||||
int fun;
|
long fun;
|
||||||
} *uap;
|
} *uap;
|
||||||
|
extern int Nproc;
|
||||||
|
|
||||||
uap = (struct a *)u.u_ap;
|
uap = (struct a *)u.u_ap;
|
||||||
a = uap->signo;
|
a = uap->signo;
|
||||||
if (a <= 0 || a > NSIG || a == SIGKILL) {
|
if (a <= 0 || a >= NSIG || a == SIGKILL) {
|
||||||
u.u_error = EINVAL;
|
u.u_error = EINVAL;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if(!u.u_segmented) {
|
||||||
u.u_r.r_val1 = u.u_signal[a-1];
|
u.u_r.r_val1 = u.u_signal[a-1];
|
||||||
|
} else {
|
||||||
|
u.u_r.r_val1 = u.u_signal[a-1]>> 16;
|
||||||
|
u.u_r.r_val2 = u.u_signal[a-1];
|
||||||
|
}
|
||||||
u.u_signal[a-1] = uap->fun;
|
u.u_signal[a-1] = uap->fun;
|
||||||
u.u_procp->p_sig &= ~(1L<<(a-1));
|
u.u_procp->p_sig &= ~(1L<<(a-1));
|
||||||
|
|
||||||
if (a == SIGCLD) {
|
if (a == SIGCLD) {
|
||||||
a = u.u_procp->p_pid;
|
a = u.u_procp->p_pid;
|
||||||
for (p = &proc[1]; p < &proc[NPROC] ; p++) {
|
for (p = &proc[1]; p < &proc[Nproc] ; p++) {
|
||||||
if (a == p->p_ppid && p->p_stat == SZOMB)
|
if (a == p->p_ppid && p->p_stat == SZOMB)
|
||||||
psignal(u.u_procp, SIGCLD);
|
psignal(u.u_procp, SIGCLD);
|
||||||
}
|
}
|
||||||
|
|
@ -358,7 +366,8 @@ kill()
|
||||||
int pid;
|
int pid;
|
||||||
int signo;
|
int signo;
|
||||||
} *uap;
|
} *uap;
|
||||||
int f;
|
register int f;
|
||||||
|
extern int Nproc;
|
||||||
|
|
||||||
uap = (struct a *)u.u_ap;
|
uap = (struct a *)u.u_ap;
|
||||||
if (uap->signo < 0 || uap->signo > NSIG) {
|
if (uap->signo < 0 || uap->signo > NSIG) {
|
||||||
|
|
@ -376,7 +385,7 @@ kill()
|
||||||
u.u_error = ESRCH;
|
u.u_error = ESRCH;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
for(; p < &proc[NPROC]; p++) {
|
for(; p < &proc[Nproc]; p++) {
|
||||||
if (p->p_stat == NULL)
|
if (p->p_stat == NULL)
|
||||||
continue;
|
continue;
|
||||||
if (arg > 0 && p->p_pid != arg)
|
if (arg > 0 && p->p_pid != arg)
|
||||||
|
|
@ -406,12 +415,14 @@ times()
|
||||||
register struct a {
|
register struct a {
|
||||||
time_t (*times)[4];
|
time_t (*times)[4];
|
||||||
} *uap;
|
} *uap;
|
||||||
|
register fcw;
|
||||||
|
|
||||||
uap = (struct a *)u.u_ap;
|
uap = (struct a *)u.u_ap;
|
||||||
if (copyout((caddr_t)&u.u_utime, (caddr_t)uap->times, sizeof(*uap->times)))
|
if (copyout((caddr_t)&u.u_utime, (caddr_t)uap->times, sizeof(*uap->times))<0)
|
||||||
u.u_error = EFAULT;
|
u.u_error = EFAULT;
|
||||||
dvi();
|
fcw = dvi();
|
||||||
u.u_r.r_time = lbolt;
|
u.u_r.r_time = lifetime;
|
||||||
|
evi(fcw);
|
||||||
}
|
}
|
||||||
|
|
||||||
profil()
|
profil()
|
||||||
|
|
@ -531,6 +542,11 @@ nullsys()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bpt()
|
||||||
|
{
|
||||||
|
psignal(u.u_procp, SIGTRAP);
|
||||||
|
}
|
||||||
|
|
||||||
utssys()
|
utssys()
|
||||||
{
|
{
|
||||||
register i;
|
register i;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue