diff options
author | dfr <dfr@FreeBSD.org> | 2000-05-28 15:49:55 +0000 |
---|---|---|
committer | dfr <dfr@FreeBSD.org> | 2000-05-28 15:49:55 +0000 |
commit | 3d3263476ea3c9efbc1896de413e89bb3ca6ac2c (patch) | |
tree | d5c2ad0fe38d67d689415b5cd18c8352133ddc8b /sys/dev/ata/ata-disk.c | |
parent | 2858982d35973c53f73d984305943bce4dfbcbf7 (diff) | |
download | FreeBSD-src-3d3263476ea3c9efbc1896de413e89bb3ca6ac2c.zip FreeBSD-src-3d3263476ea3c9efbc1896de413e89bb3ca6ac2c.tar.gz |
Add a new pmap entry point, pmap_enter_temporary() to be used during
dumps to create temporary page mappings. This replaces the use of CADDR1
which is fairly x86 specific.
Reviewed by: dillon
Diffstat (limited to 'sys/dev/ata/ata-disk.c')
-rw-r--r-- | sys/dev/ata/ata-disk.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/dev/ata/ata-disk.c b/sys/dev/ata/ata-disk.c index a1cb3aa..8a74e83 100644 --- a/sys/dev/ata/ata-disk.c +++ b/sys/dev/ata/ata-disk.c @@ -272,17 +272,18 @@ addump(dev_t dev) ata_reinit(adp->controller); while (count > 0) { + vm_offset_t va; DELAY(1000); if (is_physical_memory(addr)) - pmap_kenter((vm_offset_t)CADDR1, trunc_page(addr)); + va = pmap_enter_temporary(trunc_page(addr), VM_PROT_READ); else - pmap_kenter((vm_offset_t)CADDR1, trunc_page(0)); + va = pmap_enter_temporary(trunc_page(0), VM_PROT_READ); bzero(&request, sizeof(struct ad_request)); request.device = adp; request.blockaddr = blkno; request.bytecount = PAGE_SIZE; - request.data = CADDR1; + request.data = (int8_t *) va; while (request.bytecount > 0) { ad_transfer(&request); |