version 1.1.2.1, 2014/02/05 12:37:31
|
version 1.1.2.2, 2014/02/05 12:59:55
|
Line 26 EmptyStore(int img)
|
Line 26 EmptyStore(int img)
|
u_char buf[IMGBLOCK_SIZE]; |
u_char buf[IMGBLOCK_SIZE]; |
ssize_t wlen; |
ssize_t wlen; |
|
|
|
VERB(1) printf("Erase store %s\n", imgName); |
|
|
memset(buf, 0, sizeof buf); |
memset(buf, 0, sizeof buf); |
for (i = 0; i < howmany(imgSize, IMGBLOCK_SIZE); i++) |
for (i = 0; i < howmany(imgSize, IMGBLOCK_SIZE); i++) |
if ((wlen = write(img, buf, sizeof buf)) == -1 || |
if ((wlen = write(img, buf, sizeof buf)) == -1 || |
wlen != sizeof buf) { |
wlen != sizeof buf) { |
printf("Error:: at chunk %d init %d bytes, should be %u", | EERROR(EIO, "Error at chunk %d init %d bytes, should be %u\n", |
i, wlen, sizeof buf); |
i, wlen, sizeof buf); |
return -1; |
return -1; |
} else |
} else |
Line 40 EmptyStore(int img)
|
Line 42 EmptyStore(int img)
|
return iSize; |
return iSize; |
} |
} |
|
|
|
static int |
|
FillStore(int img, int fd) |
|
{ |
|
register int i; |
|
u_char buf[IMGBLOCK_SIZE]; |
|
ssize_t rlen, wlen; |
|
|
|
VERB(1) printf("Fill store %s from image file %s\n", imgName, imgFile); |
|
|
|
for (i = 0; i < howmany(imgSize, IMGBLOCK_SIZE); i++) { |
|
memset(buf, 0, sizeof buf); |
|
rlen = read(fd, buf, sizeof buf); |
|
if (rlen == -1) { |
|
ESYSERR(0); |
|
return -1; |
|
} else if (!rlen) |
|
break; |
|
else |
|
VERB(1) printf("+Readed %d bytes for chunk #%d\n", rlen, i); |
|
|
|
wlen = write(img, buf, rlen); |
|
if (wlen == -1) { |
|
ESYSERR(0); |
|
return -1; |
|
} else if (!wlen || wlen != rlen) { |
|
EERROR(EIO, "Readed %d bytes are not equal to written %d bytes\n", |
|
rlen, wlen); |
|
} else |
|
VERB(1) printf("+Written %d bytes at chunk #%d\n", wlen, i); |
|
} |
|
|
|
return 0; |
|
} |
|
|
int |
int |
main(int argc, char **argv) |
main(int argc, char **argv) |
{ |
{ |
Line 107 main(int argc, char **argv)
|
Line 143 main(int argc, char **argv)
|
return 3; |
return 3; |
} else |
} else |
lseek(img, 0, SEEK_SET); |
lseek(img, 0, SEEK_SET); |
|
|
|
if (FillStore(img, fd) == -1) { |
|
close(fd); |
|
close(img); |
|
unlink(imgName); |
|
return 4; |
|
} |
|
|
close(img); |
close(img); |
close(fd); |
close(fd); |