sync with WEGA 3.2 kernel

This commit is contained in:
Oliver Lehmann 2008-05-22 09:53:41 +00:00
parent db4050bcb1
commit c0523622e5
1 changed files with 30 additions and 2 deletions

View File

@ -28,10 +28,10 @@ char sys4wstr[] = "@[$]sys4.c Rev : 4.2 09/26/83 22:15:02";
#include <sys/proc.h> #include <sys/proc.h>
#include <sys/s.out.h> #include <sys/s.out.h>
#include <sys/user.h> #include <sys/user.h>
#include <sys/utsname.h>
#include <sys/timeb.h> #include <sys/timeb.h>
#include <sys/filsys.h> #include <sys/filsys.h>
#include <sys/mount.h> #include <sys/mount.h>
#include <sys/utsname.h>
/* /*
* Everything in this file is a routine implementing a system call. * Everything in this file is a routine implementing a system call.
@ -440,6 +440,33 @@ profil()
u.u_prof[0].pr_scale = uap->pcscale; u.u_prof[0].pr_scale = uap->pcscale;
} }
sprofil()
{
register struct a {
int segno;
long bufbase;
unsigned bufsize;
unsigned pcoffset;
unsigned pcscale;
} *uap;
uap = (struct a *)u.u_ap;
if(!uap->segno) {
u.u_prof[0].pr_scale = 0;
} else {
if(u.u_nprof == 10) {
u.u_error = ENOPROF;
} else {
u.u_pr_segno[u.u_nprof] = uap->segno;
u.u_prof[u.u_nprof].pr_base = uap->bufbase;
u.u_prof[u.u_nprof].pr_size = uap->bufsize;
u.u_prof[u.u_nprof].pr_off = uap->pcoffset;
u.u_prof[u.u_nprof].pr_scale = uap->pcscale;
u.u_nprof++;
}
}
}
/* /*
* alarm clock signal * alarm clock signal
*/ */
@ -502,7 +529,7 @@ utime()
(u.u_segmented && uap->tptr != NULL)) { (u.u_segmented && uap->tptr != NULL)) {
if (copyin((caddr_t)uap->tptr, (caddr_t)tv, sizeof(tv))) { if (copyin((caddr_t)uap->tptr, (caddr_t)tv, sizeof(tv))) {
u.u_error = EFAULT; u.u_error = EFAULT;
return; goto out;
} }
} else { } else {
tv[0] = time; tv[0] = time;
@ -523,6 +550,7 @@ utime()
ip->i_flag |= IACC|IUPD|ICHG; ip->i_flag |= IACC|IUPD|ICHG;
iupdat(ip, &tv[0], &tv[1]); iupdat(ip, &tv[0], &tv[1]);
} }
out:
iput(ip); iput(ip);
} }