diff options
author | Thomas Bushnell <thomas@gnu.org> | 1999-07-11 05:30:55 +0000 |
---|---|---|
committer | Thomas Bushnell <thomas@gnu.org> | 1999-07-11 05:30:55 +0000 |
commit | 344c50cb576d2c3922d90adb8baededc258dd599 (patch) | |
tree | 810dc69baf0457d9c69da9cea2017bf23819e656 /libstore/gunzip.c | |
parent | 4e6a0ccbb531ca4bb6cdbd37152f20dbe622e389 (diff) | |
download | hurd-344c50cb576d2c3922d90adb8baededc258dd599.tar.gz hurd-344c50cb576d2c3922d90adb8baededc258dd599.tar.bz2 hurd-344c50cb576d2c3922d90adb8baededc258dd599.zip |
1999-07-09 Thomas Bushnell, BSG <tb@mit.edu>
* bunzip2.c (bunzip2): Use mmap instead of vm_allocate.
* copy.c (copy_read): Likewise.
(copy_clone): Likewise.
* encode.c (store_encode): Likewise.
* gunzip.c (gunzip): Likewise.
* rdwr.c (store_read): Likewise.
* zero.c (zero_read): Likewise.
Diffstat (limited to 'libstore/gunzip.c')
-rw-r--r-- | libstore/gunzip.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/libstore/gunzip.c b/libstore/gunzip.c index eb2355e8..2e868219 100644 --- a/libstore/gunzip.c +++ b/libstore/gunzip.c @@ -142,10 +142,9 @@ gunzip (struct store *from, void **buf, size_t *buf_len) if (zerr) /* Can't do that, try to make a bigger buffer elsewhere. */ { - new_buf = old_buf; - zerr = - vm_allocate (mach_task_self (), - (vm_address_t *)&new_buf, new_buf_len, 1); + new_buf = mmap (0, new_buf_len, PROT_READ|PROT_WRITE, + MAP_ANON, 0, 0); + zerr = (new_buf == (void *) -1) ? errno : 0; if (zerr) longjmp (zerr_jmp_buf, 1); @@ -178,7 +177,8 @@ gunzip (struct store *from, void **buf, size_t *buf_len) /* Try to guess a reasonable output buffer size. */ *buf_len = round_page (from->size * 2); - zerr = vm_allocate (mach_task_self (), (vm_address_t *)buf, *buf_len, 1); + *buf = mmap (0, *buf_len, PROT_READ|PROT_WRITE, MAP_ANON, 0, 0); + zerr = (*buf == (void *) -1) ? errno : 0; if (zerr) return zerr; |