SCCS-vsn: sys/vm/vm_mmap.c 7.2
*
* from: Utah $Hdr: vm_mmap.c 1.3 90/01/21$
*
*
* from: Utah $Hdr: vm_mmap.c 1.3 90/01/21$
*
- * @(#)vm_mmap.c 7.1 (Berkeley) %G%
+ * @(#)vm_mmap.c 7.2 (Berkeley) %G%
#include "param.h"
#include "systm.h"
#include "user.h"
#include "param.h"
#include "systm.h"
#include "user.h"
#include "proc.h"
#include "vnode.h"
#include "specdev.h"
#include "proc.h"
#include "vnode.h"
#include "specdev.h"
- register struct proc *p;
register struct args {
caddr_t addr;
int len;
register struct args {
caddr_t addr;
int len;
+ register struct filedesc *fdp = p->p_fd;
+ register struct file *fp;
struct vnode *vp;
vm_offset_t addr;
vm_size_t size;
struct vnode *vp;
vm_offset_t addr;
vm_size_t size;
* Mapping file or named anonymous, get fp for validation
*/
if (mtype == MAP_FILE || uap->fd != -1) {
* Mapping file or named anonymous, get fp for validation
*/
if (mtype == MAP_FILE || uap->fd != -1) {
- if ((unsigned)uap->fd >= NOFILE ||
- (fp = u.u_ofile[uap->fd]) == NULL)
+ if (((unsigned)uap->fd) >= fdp->fd_maxfiles ||
+ (fp = OFILE(fdp, uap->fd)) == NULL)
/*
* XXX -- should vm_deallocate any regions mapped to this file
*/
/*
* XXX -- should vm_deallocate any regions mapped to this file
*/
- u.u_pofile[fd] &= ~UF_MAPPED;
+ OFILEFLAGS(u.u_procp->p_fd, fd) &= ~UF_MAPPED;
}
mprotect(p, uap, retval)
}
mprotect(p, uap, retval)