Got rid of a cumbersome open-close cycle with burn_read_data() on stdio:
This commit is contained in:
parent
83931e0442
commit
bcd939aefd
@ -1 +1 @@
|
|||||||
#define Cdrskin_timestamP "2008.02.28.132325"
|
#define Cdrskin_timestamP "2008.03.03.202930"
|
||||||
|
@ -439,6 +439,9 @@ int burn_drive_mark_unready(struct burn_drive *d)
|
|||||||
burn_disc_free(d->disc);
|
burn_disc_free(d->disc);
|
||||||
d->disc = NULL;
|
d->disc = NULL;
|
||||||
}
|
}
|
||||||
|
if (d->stdio_fd >= 0)
|
||||||
|
close (d->stdio_fd);
|
||||||
|
d->stdio_fd = -1;
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -642,7 +642,7 @@ struct burn_speed_descriptor {
|
|||||||
This must be called before using any other functions in the library. It
|
This must be called before using any other functions in the library. It
|
||||||
may be called more than once with no effect.
|
may be called more than once with no effect.
|
||||||
It is possible to 'restart' the library by shutting it down and
|
It is possible to 'restart' the library by shutting it down and
|
||||||
re-initializing it. This is necessary if you follow the older and
|
re-initializing it. Once this was necessary if you follow the older and
|
||||||
more general way of accessing a drive via burn_drive_scan() and
|
more general way of accessing a drive via burn_drive_scan() and
|
||||||
burn_drive_grab(). See burn_drive_scan_and_grab() with its strong
|
burn_drive_grab(). See burn_drive_scan_and_grab() with its strong
|
||||||
urges and its explanations.
|
urges and its explanations.
|
||||||
|
@ -388,7 +388,10 @@ int burn_read_data(struct burn_drive *d, off_t byte_address,
|
|||||||
#define O_LARGEFILE 0
|
#define O_LARGEFILE 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
fd = open(d->devname, O_RDONLY | O_LARGEFILE);
|
fd = d->stdio_fd;
|
||||||
|
if (fd < 0)
|
||||||
|
d->stdio_fd = fd =
|
||||||
|
open(d->devname, O_RDONLY | O_LARGEFILE);
|
||||||
if (fd == -1) {
|
if (fd == -1) {
|
||||||
if (errno != ENOENT || !(flag & 2))
|
if (errno != ENOENT || !(flag & 2))
|
||||||
libdax_msgs_submit(libdax_messenger,
|
libdax_msgs_submit(libdax_messenger,
|
||||||
@ -478,8 +481,10 @@ int burn_read_data(struct burn_drive *d, off_t byte_address,
|
|||||||
|
|
||||||
ret = 1;
|
ret = 1;
|
||||||
ex:;
|
ex:;
|
||||||
|
/* <<< let it open until drive is given up or writing shall happen
|
||||||
if (fd != -1)
|
if (fd != -1)
|
||||||
close(fd);
|
close(fd);
|
||||||
|
*/
|
||||||
d->buffer = NULL;
|
d->buffer = NULL;
|
||||||
d->busy = BURN_DRIVE_IDLE;
|
d->busy = BURN_DRIVE_IDLE;
|
||||||
return ret;
|
return ret;
|
||||||
|
Loading…
Reference in New Issue
Block a user