Changeset View
Changeset View
Standalone View
Standalone View
head/sys/powerpc/powerpc/mem.c
Show First 20 Lines • Show All 119 Lines • ▼ Show 20 Lines | kmem_direct_mapped: v = uio->uio_offset; | ||||
cnt = min(cnt, PAGE_SIZE - off); | cnt = min(cnt, PAGE_SIZE - off); | ||||
cnt = min(cnt, iov->iov_len); | cnt = min(cnt, iov->iov_len); | ||||
if (mem_valid(v, cnt)) { | if (mem_valid(v, cnt)) { | ||||
error = EFAULT; | error = EFAULT; | ||||
break; | break; | ||||
} | } | ||||
if (!pmap_dev_direct_mapped(v, cnt)) { | if (hw_direct_map && !pmap_dev_direct_mapped(v, cnt)) { | ||||
error = uiomove((void *)v, cnt, uio); | error = uiomove((void *)PHYS_TO_DMAP(v), cnt, | ||||
uio); | |||||
} else { | } else { | ||||
m.phys_addr = trunc_page(v); | m.phys_addr = trunc_page(v); | ||||
marr = &m; | marr = &m; | ||||
error = uiomove_fromphys(&marr, off, cnt, uio); | error = uiomove_fromphys(&marr, off, cnt, uio); | ||||
} | } | ||||
} | } | ||||
else if (dev2unit(dev) == CDEV_MINOR_KMEM) { | else if (dev2unit(dev) == CDEV_MINOR_KMEM) { | ||||
va = uio->uio_offset; | va = uio->uio_offset; | ||||
▲ Show 20 Lines • Show All 181 Lines • Show Last 20 Lines |