Reacted on error condition during write operation

trunk@386
Thomas Schmitt 16 years ago
parent bf20758906
commit 5a0b597e3f
  1. 2
      cdrskin/cdrskin_timestamp.h
  2. 1
      libburn/libdax_msgs.h
  3. 21
      libburn/mmc.c

@ -1 +1 @@
#define Cdrskin_timestamP "2006.11.12.113629"
#define Cdrskin_timestamP "2006.11.12.152723"

@ -334,6 +334,7 @@ Range "scdbackup" : 0x00020000 to 0x0002ffff
0x0002011a (NOTE,HIGH) = Padding up track to minimum size
0x0002011b (FATAL,HIGH) = Attempt to read track info from ungrabbed drive
0x0002011c (FATAL,HIGH) = Attempt to read track info from busy drive
0x0002011d (FATAL,HIGH) = SCSI error condition on write
libdax_audioxtr:
0x00020200 (SORRY,HIGH) = Cannot open audio source file

@ -301,6 +301,27 @@ int mmc_write(struct burn_drive *d, int start, struct buffer *buf)
#endif /* Libburn_log_in_and_out_streaM */
d->issue_command(d, &c);
/* ts A61112 : react on eventual error condition */
if (c.error && c.sense[2]!=0) {
/* >>> make this scsi_notify_error() when liberated */
if (c.sense[2]!=0) {
char msg[80];
sprintf(msg,
"SCSI error condition on write : key=%X asc=%2.2Xh ascq=%2.2Xh",
c.sense[2],c.sense[12],c.sense[13]);
libdax_msgs_submit(libdax_messenger, d->global_index,
0x0002011d,
LIBDAX_MSGS_SEV_FATAL, LIBDAX_MSGS_PRIO_HIGH,
msg, 0, 0);
}
pthread_mutex_lock(&d->access_lock);
d->cancel = 1;
pthread_mutex_unlock(&d->access_lock);
return BE_CANCELLED;
}
return 0;
}

Loading…
Cancel
Save