* minor device 0 is physical memory
* minor device 1 is kernel memory
* minor device 2 is EOF/RATHOLE
* minor device 3 is unibus memory (addressed by shorts)
while (u
.u_count
!= 0 && u
.u_error
== 0) {
if (fubyte(u
.u_base
) == -1)
*(int *)mmap
= v
| (PG_V
| PG_KR
);
o
= (int)u
.u_offset
& PGOFSET
;
c
= min((unsigned)(NBPG
- o
), u
.u_count
);
c
= min(c
, (unsigned)(NBPG
- ((int)u
.u_base
&PGOFSET
)));
if (copyout((caddr_t
)&vmmap
[o
], u
.u_base
, c
))
if ((caddr_t
)u
.u_offset
< (caddr_t
)&umbabeg
&&
(caddr_t
)u
.u_offset
+ u
.u_count
>= (caddr_t
)&umbabeg
)
if ((caddr_t
)u
.u_offset
>= (caddr_t
)&umbabeg
&&
(caddr_t
)u
.u_offset
< (caddr_t
)&umbaend
)
if (!kernacc((caddr_t
)u
.u_offset
, u
.u_count
, B_READ
))
if (copyout((caddr_t
)u
.u_offset
, u
.u_base
, u
.u_count
))
if (!kernacc((caddr_t
)u
.u_offset
, u
.u_count
, B_READ
))
if (!useracc(u
.u_base
, u
.u_count
, B_WRITE
))
UNIcpy((caddr_t
)u
.u_offset
, u
.u_base
, u
.u_count
, B_READ
);
while (u
.u_count
!= 0 && u
.u_error
== 0) {
if (fubyte(u
.u_base
) == -1)
*(int *)mmap
= v
| (PG_V
| PG_KW
);
o
= (int)u
.u_offset
& PGOFSET
;
c
= min((unsigned)(NBPG
- o
), u
.u_count
);
c
= min(c
, (unsigned)(NBPG
- ((int)u
.u_base
&PGOFSET
)));
if (copyin(u
.u_base
, (caddr_t
)&vmmap
[o
], c
))
if (!kernacc((caddr_t
)u
.u_offset
, u
.u_count
, B_WRITE
))
if (copyin(u
.u_base
, (caddr_t
)u
.u_offset
, u
.u_count
))
if (!kernacc((caddr_t
)u
.u_offset
, u
.u_count
, B_WRITE
))
if (!useracc(u
.u_base
, u
.u_count
, B_READ
))
UNIcpy((caddr_t
)u
.u_offset
, u
.u_base
, u
.u_count
, B_WRITE
);
* UNIBUS Address Space <--> User Space transfer
UNIcpy(uniadd
, usradd
, bknt
, direct
)
register short *from
, *to
;
for (i
= (bknt
>>1); i
> 0; i
--)