STATUS: 50%

0000 T _signal		compatible
    0052 T _psignal		compatible
    00b6 T _issig		not compatible
    0186 T _stop		compatible
    0216 T _psig		compatible
    02d4 T _fsig		compatible
    031e T _core		not compatible
    0512 T _grow		not compatible
    0640 T _ptrace		not compatible
    075c T _procxmt		not compatible
This commit is contained in:
Oliver Lehmann 2008-05-22 20:58:10 +00:00
parent 656e78527c
commit f5db72bcb1
1 changed files with 25 additions and 8 deletions

View File

@ -67,7 +67,7 @@ register pgrp;
if(pgrp == 0) if(pgrp == 0)
return; return;
for(p = &proc[1]; p < &proc[Nproc]; p++) for(p = &proc[0]; p < &proc[Nproc]; p++)
if(p->p_pgrp == pgrp) if(p->p_pgrp == pgrp)
psignal(p, sig); psignal(p, sig);
} }
@ -228,7 +228,8 @@ struct proc *p;
core() core()
{ {
register struct inode *ip; register struct inode *ip;
register s; register i;
char s;
extern schar(); extern schar();
if (u.u_uid != u.u_ruid) if (u.u_uid != u.u_ruid)
@ -251,13 +252,29 @@ core()
u.u_segflg = 1; u.u_segflg = 1;
u.u_limit = (daddr_t)ctod(Maxmem); u.u_limit = (daddr_t)ctod(Maxmem);
writei(ip); writei(ip);
u.u_base.l = (char *)ctob(u.u_tsize);
u.u_count = ctob(u.u_dsize);
u.u_segflg = 0; u.u_segflg = 0;
if(!u.u_segmented) {
i = u.u_procp->p_size-USIZE;
estabur(0, i, 0, 1 );
u.u_base.left = USEGW;
u.u_base.right = 0;
u.u_count = ctob(i);
writei(ip); writei(ip);
u.u_base.l = (char *)(0x80000000 - ctob(u.u_ssize)); } else {
u.u_count = ctob(u.u_ssize); for(s=0;s<u.u_nsegs;s++) {
if(!(u.u_segno[s]&0x80)) {
u.u_base.left = ctob(u.u_segno[s] & 0x7f);
u.u_base.right = 0;
u.u_count = ctob((u.u_segmts[s].sg_limit)+1);
writei(ip); writei(ip);
}
}
u.u_base.left = ctob(u.u_stakseg);
u.u_base.right = ctob(u.u_segmts[127].sg_limit);
u.u_count = ctob(-u.u_segmts[127].sg_limit+0x100);
writei(ip);
}
} else } else
u.u_error = EACCES; u.u_error = EACCES;
iput(ip); iput(ip);