version 1.10, 2006/06/06 23:22:28 |
version 1.11, 2006/06/15 23:49:58 |
|
|
scsireq_t scr; |
scsireq_t scr; |
u_int end_lba, lba; |
u_int end_lba, lba; |
u_int tmp; |
u_int tmp; |
int r,rfd; |
int r; |
u_char nblk; |
u_char nblk; |
|
|
nblk = 65535/tr->blklen; |
nblk = 65535/tr->blklen; |
|
|
} else { |
} else { |
end_lba = tr->sz / tr->blklen + lba; |
end_lba = tr->sz / tr->blklen + lba; |
} |
} |
rfd = open(tr->file, O_RDONLY, 0640); |
|
if (tr->type == 'a') { |
if (tr->type == 'a') { |
if (lseek(rfd, WAVHDRLEN, SEEK_SET) == -1) |
if (lseek(tr->fd, WAVHDRLEN, SEEK_SET) == -1) |
err(1, "seek failed"); |
err(1, "seek failed for file %s", tr->file); |
} |
} |
while ((lba < end_lba) && (nblk != 0)) { |
while ((lba < end_lba) && (nblk != 0)) { |
while (lba + nblk <= end_lba) { |
while (lba + nblk <= end_lba) { |
read(rfd, databuf, nblk * tr->blklen); |
read(tr->fd, databuf, nblk * tr->blklen); |
scr.cmd[8] = nblk; |
scr.cmd[8] = nblk; |
scr.datalen = nblk * tr->blklen; |
scr.datalen = nblk * tr->blklen; |
r = ioctl(fd, SCIOCCOMMAND, &scr); |
r = ioctl(fd, SCIOCCOMMAND, &scr); |
|
|
} |
} |
nblk--; |
nblk--; |
} |
} |
close(rfd); |
close(tr->fd); |
return (0); |
return (0); |
} |
} |
|
|