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/zero.c | |
parent | 4e6a0ccbb531ca4bb6cdbd37152f20dbe622e389 (diff) |
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/zero.c')
-rw-r--r-- | libstore/zero.c | 19 |
1 files changed, 9 insertions, 10 deletions
diff --git a/libstore/zero.c b/libstore/zero.c index d94cbdcf..33e34142 100644 --- a/libstore/zero.c +++ b/libstore/zero.c @@ -1,6 +1,6 @@ /* Zero store backend - Copyright (C) 1995, 1996, 1997 Free Software Foundation, Inc. + Copyright (C) 1995, 1996, 1997, 1999 Free Software Foundation, Inc. Written by Miles Bader <miles@gnu.ai.mit.edu> This file is part of the GNU Hurd. @@ -32,18 +32,17 @@ zero_read (struct store *store, { if (*len < amount) { - error_t err = - vm_allocate (mach_task_self (), (vm_address_t *)buf, amount, 1); - if (! err) - *len = amount; - return err; - } - else - { - bzero (*buf, amount); + *buf = mmap (0, amount, PROT_READ|PROT_WRITE, MAP_ANON, 0, 0); + if (*buf == (void *) -1) + return errno; *len = amount; return 0; } + else + bzero (*buf, amount); + + *len = amount; + return 0; } static error_t |