TODO: first version which just compiles - no compatibility checked yet

This commit is contained in:
Oliver Lehmann 2008-05-18 17:42:00 +00:00
parent e599208e5e
commit c3ca921034
1 changed files with 37 additions and 15 deletions

View File

@ -1,10 +1,32 @@
#include "sys/param.h" /******************************************************************************
#include "sys/systm.h" *******************************************************************************
#include "sys/dir.h"
#include "sys/user.h" W E G A - Quelle
#include "sys/file.h"
#include "sys/inode.h" KERN 3.2 Modul: sys2.c
#include "sys/sysinfo.h"
Bearbeiter: O. Lehmann
Datum: 18.05.08
Version: 1.0
*******************************************************************************
******************************************************************************/
char sys2wstr[] = "@[$]sys2.c Rev : 4.1 08/27/83 11:59:09";
#include <sys/param.h>
#include <sys/sysinfo.h>
#include <sys/systm.h>
#include <sys/file.h>
#include <sys/inode.h>
#include <sys/dir.h>
#include <sys/mmu.h>
#include <sys/buf.h>
#include <sys/conf.h>
#include <sys/proc.h>
#include <sys/s.out.h>
#include <sys/user.h>
/* /*
* read system call * read system call
@ -47,7 +69,7 @@ register mode;
u.u_error = EBADF; u.u_error = EBADF;
return; return;
} }
u.u_base = (caddr_t)uap->cbuf; u.u_base.l = (caddr_t)uap->cbuf;
u.u_count = uap->count; u.u_count = uap->count;
u.u_segflg = 0; u.u_segflg = 0;
u.u_fmode = fp->f_flag; u.u_fmode = fp->f_flag;
@ -69,12 +91,12 @@ register mode;
if (type==IFREG || type==IFDIR || type==IFIFO) if (type==IFREG || type==IFDIR || type==IFIFO)
prele(ip); prele(ip);
fp->f_offset += uap->count-u.u_count; fp->f_offset += uap->count-u.u_count;
u.u_rval1 = uap->count-u.u_count; u.u_r.r_val1 = uap->count-u.u_count;
u.u_ioch += u.u_rval1; u.u_ioch += u.u_r.r_val1;
if (mode == FREAD) if (mode == FREAD)
sysinfo.readch += u.u_rval1; sysinfo.readch += u.u_r.r_val1;
else else
sysinfo.writech += u.u_rval1; sysinfo.writech += u.u_r.r_val1;
} }
/* /*
@ -162,7 +184,7 @@ register mode;
prele(ip); prele(ip);
fp->f_flag = mode&FMASK; fp->f_flag = mode&FMASK;
fp->f_inode = ip; fp->f_inode = ip;
i = u.u_rval1; i = u.u_r.r_val1;
if (setjmp(u.u_qsav)) { /* catch half-opens */ if (setjmp(u.u_qsav)) { /* catch half-opens */
if (u.u_error == 0) if (u.u_error == 0)
u.u_error = EINTR; u.u_error = EINTR;
@ -232,7 +254,7 @@ seek()
return; return;
} }
fp->f_offset = uap->off; fp->f_offset = uap->off;
u.u_roff = uap->off; u.u_r.r_off = uap->off;
} }
/* /*
@ -265,7 +287,7 @@ link()
* embraces. * embraces.
*/ */
prele(ip); prele(ip);
u.u_dirp = (caddr_t)uap->linkname; u.u_dirp.l = (caddr_t)uap->linkname;
xp = namei(uchar, 1); xp = namei(uchar, 1);
if (xp != NULL) { if (xp != NULL) {
u.u_error = EEXIST; u.u_error = EEXIST;