Make image_copyout_zeroes() an interface function.

This commit is contained in:
Marcel Moolenaar 2015-08-03 01:24:48 +00:00
parent 7b25d1d63b
commit ddaceed224
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=286215
2 changed files with 7 additions and 6 deletions

View File

@ -517,14 +517,14 @@ image_copyout_memory(int fd, size_t size, void *ptr)
return (0);
}
static int
image_copyout_zeroes(int fd, size_t size)
int
image_copyout_zeroes(int fd, size_t count)
{
static uint8_t *zeroes = NULL;
size_t sz;
int error;
if (lseek(fd, (off_t)size, SEEK_CUR) != -1)
if (lseek(fd, (off_t)count, SEEK_CUR) != -1)
return (0);
/*
@ -537,12 +537,12 @@ image_copyout_zeroes(int fd, size_t size)
return (ENOMEM);
}
while (size > 0) {
sz = (size > secsz) ? secsz : size;
while (count > 0) {
sz = (count > secsz) ? secsz : count;
error = image_copyout_memory(fd, sz, zeroes);
if (error)
return (error);
size -= sz;
count -= sz;
}
return (0);
}

View File

@ -35,6 +35,7 @@ int image_copyin(lba_t blk, int fd, uint64_t *sizep);
int image_copyout(int fd);
int image_copyout_done(int fd);
int image_copyout_region(int fd, lba_t blk, lba_t size);
int image_copyout_zeroes(int fd, size_t count);
int image_data(lba_t blk, lba_t size);
lba_t image_get_size(void);
int image_init(void);