*** cdrecord/scsi-bsd.c.orig Wed Nov 12 23:41:37 1997 --- cdrecord/scsi-bsd.c Wed Nov 12 23:46:55 1997 *************** *** 42,47 **** --- 42,62 ---- /*#define MAX_DMA_BSD (32*1024)*/ #define MAX_DMA_BSD (64*1024) /* Check if this is not too big */ + #if defined(__NetBSD__) && defined(TYPE_ATAPI) + /* + * NetBSD 1.3 has a merged SCSI/ATAPI system, so this structure + * is slightly different. + */ + #define ADDR_ISSCSI(a) ((a).type == TYPE_SCSI) + #define ADDR_SCBUS(a) (a).addr.scsi.scbus + #define ADDR_TARGET(a) (a).addr.scsi.target + #define ADDR_LUN(a) (a).addr.scsi.lun + #else + #define ADDR_ISSCSI(a) (1) + #define ADDR_SCBUS(a) (a).addr.scbus + #define ADDR_TARGET(a) (a).addr.target + #define ADDR_LUN(a) (a).addr.lun + #endif /* __NetBSD__ && TYPE_ATAPI */ LOCAL int scsi_send __PR((int f, struct scg_cmd *sp)); LOCAL int scsi_setup __PR((int f)); *************** *** 127,139 **** errmsg("Cannot get SCSI addr.\n"); return (-1); } - if (debug) - printf("Bus: %d Target: %d Lun: %d\n", - saddr.scbus, saddr.target, saddr.lun); ! Bus = saddr.scbus; ! Target = saddr.target; ! Lun = saddr.lun; if (Bus >= MAX_SCG || Target >= 8 || Lun >= 8) return (-1); --- 142,157 ---- errmsg("Cannot get SCSI addr.\n"); return (-1); } ! if (ADDR_ISSCSI(saddr) == 0) ! return (-1); ! ! Bus = ADDR_SCBUS(saddr); ! Target = ADDR_TARGET(saddr); ! Lun = ADDR_LUN(saddr); ! ! if (debug) ! printf("Bus: %d Target: %d Lun: %d\n", Bus, Target, Lun); if (Bus >= MAX_SCG || Target >= 8 || Lun >= 8) return (-1);