head 1.2; access; symbols pkgsrc-2026Q1:1.2.0.174 pkgsrc-2026Q1-base:1.2 pkgsrc-2025Q4:1.2.0.172 pkgsrc-2025Q4-base:1.2 pkgsrc-2025Q3:1.2.0.170 pkgsrc-2025Q3-base:1.2 pkgsrc-2025Q2:1.2.0.168 pkgsrc-2025Q2-base:1.2 pkgsrc-2025Q1:1.2.0.166 pkgsrc-2025Q1-base:1.2 pkgsrc-2024Q4:1.2.0.164 pkgsrc-2024Q4-base:1.2 pkgsrc-2024Q3:1.2.0.162 pkgsrc-2024Q3-base:1.2 pkgsrc-2024Q2:1.2.0.160 pkgsrc-2024Q2-base:1.2 pkgsrc-2024Q1:1.2.0.158 pkgsrc-2024Q1-base:1.2 pkgsrc-2023Q4:1.2.0.156 pkgsrc-2023Q4-base:1.2 pkgsrc-2023Q3:1.2.0.154 pkgsrc-2023Q3-base:1.2 pkgsrc-2023Q2:1.2.0.152 pkgsrc-2023Q2-base:1.2 pkgsrc-2023Q1:1.2.0.150 pkgsrc-2023Q1-base:1.2 pkgsrc-2022Q4:1.2.0.148 pkgsrc-2022Q4-base:1.2 pkgsrc-2022Q3:1.2.0.146 pkgsrc-2022Q3-base:1.2 pkgsrc-2022Q2:1.2.0.144 pkgsrc-2022Q2-base:1.2 pkgsrc-2022Q1:1.2.0.142 pkgsrc-2022Q1-base:1.2 pkgsrc-2021Q4:1.2.0.140 pkgsrc-2021Q4-base:1.2 pkgsrc-2021Q3:1.2.0.138 pkgsrc-2021Q3-base:1.2 pkgsrc-2021Q2:1.2.0.136 pkgsrc-2021Q2-base:1.2 pkgsrc-2021Q1:1.2.0.134 pkgsrc-2021Q1-base:1.2 pkgsrc-2020Q4:1.2.0.132 pkgsrc-2020Q4-base:1.2 pkgsrc-2020Q3:1.2.0.130 pkgsrc-2020Q3-base:1.2 pkgsrc-2020Q2:1.2.0.126 pkgsrc-2020Q2-base:1.2 pkgsrc-2020Q1:1.2.0.106 pkgsrc-2020Q1-base:1.2 pkgsrc-2019Q4:1.2.0.128 pkgsrc-2019Q4-base:1.2 pkgsrc-2019Q3:1.2.0.124 pkgsrc-2019Q3-base:1.2 pkgsrc-2019Q2:1.2.0.122 pkgsrc-2019Q2-base:1.2 pkgsrc-2019Q1:1.2.0.120 pkgsrc-2019Q1-base:1.2 pkgsrc-2018Q4:1.2.0.118 pkgsrc-2018Q4-base:1.2 pkgsrc-2018Q3:1.2.0.116 pkgsrc-2018Q3-base:1.2 pkgsrc-2018Q2:1.2.0.114 pkgsrc-2018Q2-base:1.2 pkgsrc-2018Q1:1.2.0.112 pkgsrc-2018Q1-base:1.2 pkgsrc-2017Q4:1.2.0.110 pkgsrc-2017Q4-base:1.2 pkgsrc-2017Q3:1.2.0.108 pkgsrc-2017Q3-base:1.2 pkgsrc-2017Q2:1.2.0.104 pkgsrc-2017Q2-base:1.2 pkgsrc-2017Q1:1.2.0.102 pkgsrc-2017Q1-base:1.2 pkgsrc-2016Q4:1.2.0.100 pkgsrc-2016Q4-base:1.2 pkgsrc-2016Q3:1.2.0.98 pkgsrc-2016Q3-base:1.2 pkgsrc-2016Q2:1.2.0.96 pkgsrc-2016Q2-base:1.2 pkgsrc-2016Q1:1.2.0.94 pkgsrc-2016Q1-base:1.2 pkgsrc-2015Q4:1.2.0.92 pkgsrc-2015Q4-base:1.2 pkgsrc-2015Q3:1.2.0.90 pkgsrc-2015Q3-base:1.2 pkgsrc-2015Q2:1.2.0.88 pkgsrc-2015Q2-base:1.2 pkgsrc-2015Q1:1.2.0.86 pkgsrc-2015Q1-base:1.2 pkgsrc-2014Q4:1.2.0.84 pkgsrc-2014Q4-base:1.2 pkgsrc-2014Q3:1.2.0.82 pkgsrc-2014Q3-base:1.2 pkgsrc-2014Q2:1.2.0.80 pkgsrc-2014Q2-base:1.2 pkgsrc-2014Q1:1.2.0.78 pkgsrc-2014Q1-base:1.2 pkgsrc-2013Q4:1.2.0.76 pkgsrc-2013Q4-base:1.2 pkgsrc-2013Q3:1.2.0.74 pkgsrc-2013Q3-base:1.2 pkgsrc-2013Q2:1.2.0.72 pkgsrc-2013Q2-base:1.2 pkgsrc-2013Q1:1.2.0.70 pkgsrc-2013Q1-base:1.2 pkgsrc-2012Q4:1.2.0.68 pkgsrc-2012Q4-base:1.2 pkgsrc-2012Q3:1.2.0.66 pkgsrc-2012Q3-base:1.2 pkgsrc-2012Q2:1.2.0.64 pkgsrc-2012Q2-base:1.2 pkgsrc-2012Q1:1.2.0.62 pkgsrc-2012Q1-base:1.2 pkgsrc-2011Q4:1.2.0.60 pkgsrc-2011Q4-base:1.2 pkgsrc-2011Q3:1.2.0.58 pkgsrc-2011Q3-base:1.2 pkgsrc-2011Q2:1.2.0.56 pkgsrc-2011Q2-base:1.2 pkgsrc-2011Q1:1.2.0.54 pkgsrc-2011Q1-base:1.2 pkgsrc-2010Q4:1.2.0.52 pkgsrc-2010Q4-base:1.2 pkgsrc-2010Q3:1.2.0.50 pkgsrc-2010Q3-base:1.2 pkgsrc-2010Q2:1.2.0.48 pkgsrc-2010Q2-base:1.2 pkgsrc-2010Q1:1.2.0.46 pkgsrc-2010Q1-base:1.2 pkgsrc-2009Q4:1.2.0.44 pkgsrc-2009Q4-base:1.2 pkgsrc-2009Q3:1.2.0.42 pkgsrc-2009Q3-base:1.2 pkgsrc-2009Q2:1.2.0.40 pkgsrc-2009Q2-base:1.2 pkgsrc-2009Q1:1.2.0.38 pkgsrc-2009Q1-base:1.2 pkgsrc-2008Q4:1.2.0.36 pkgsrc-2008Q4-base:1.2 pkgsrc-2008Q3:1.2.0.34 pkgsrc-2008Q3-base:1.2 cube-native-xorg:1.2.0.32 cube-native-xorg-base:1.2 pkgsrc-2008Q2:1.2.0.30 pkgsrc-2008Q2-base:1.2 cwrapper:1.2.0.28 pkgsrc-2008Q1:1.2.0.26 pkgsrc-2008Q1-base:1.2 pkgsrc-2007Q4:1.2.0.24 pkgsrc-2007Q4-base:1.2 pkgsrc-2007Q3:1.2.0.22 pkgsrc-2007Q3-base:1.2 pkgsrc-2007Q2:1.2.0.20 pkgsrc-2007Q2-base:1.2 pkgsrc-2007Q1:1.2.0.18 pkgsrc-2007Q1-base:1.2 pkgsrc-2006Q4:1.2.0.16 pkgsrc-2006Q4-base:1.2 pkgsrc-2006Q3:1.2.0.14 pkgsrc-2006Q3-base:1.2 pkgsrc-2006Q2:1.2.0.12 pkgsrc-2006Q2-base:1.2 pkgsrc-2006Q1:1.2.0.10 pkgsrc-2006Q1-base:1.2 pkgsrc-2005Q4:1.2.0.8 pkgsrc-2005Q4-base:1.2 pkgsrc-2005Q3:1.2.0.6 pkgsrc-2005Q3-base:1.2 pkgsrc-2005Q2:1.2.0.4 pkgsrc-2005Q2-base:1.2 pkgsrc-2005Q1:1.2.0.2 pkgsrc-2005Q1-base:1.2 pkgsrc-2004Q4:1.1.0.12 pkgsrc-2004Q4-base:1.1 pkgsrc-2004Q3:1.1.0.10 pkgsrc-2004Q3-base:1.1 pkgsrc-2004Q2:1.1.0.8 pkgsrc-2004Q2-base:1.1 pkgsrc-2004Q1:1.1.0.6 pkgsrc-2004Q1-base:1.1 pkgsrc-2003Q4:1.1.0.4 pkgsrc-2003Q4-base:1.1 netbsd-1-6-1:1.1.0.2 netbsd-1-6-1-base:1.1; locks; strict; comment @# @; 1.2 date 2005.01.10.15.48.07; author hamajima; state Exp; branches; next 1.1; 1.1 date 2003.01.31.11.02.29; author abs; state Exp; branches; next ; desc @@ 1.2 log @amd64 uses d partition, same as i386. @ text @$NetBSD: patch-ab,v 1.1 2003/01/31 11:02:29 abs Exp $ --- libscg/scsi-bsd.c.orig Tue Jan 29 17:23:22 2002 +++ libscg/scsi-bsd.c @@@@ -48,7 +48,7 @@@@ static char __sccsid[] = * Choose your name instead of "schily" and make clear that the version * string is related to a modified source. */ -LOCAL char _scg_trans_version[] = "scsi-bsd.c-1.40"; /* The version for this transport*/ +LOCAL char _scg_trans_version[] = "scsi-bsd.c-1.40nb1"; /* The version for this transport*/ #define MAX_SCG 16 /* Max # of SCSI controllers */ #define MAX_TGT 16 @@@@ -108,7 +108,7 @@@@ scgo_version(scgp, what) * return "schily" for the SCG_AUTHOR request. */ case SCG_AUTHOR: - return (_scg_auth_schily); + return ("frueauf"); case SCG_SCCS_ID: return (__sccsid); } @@@@ -130,6 +130,15 @@@@ scgo_open(scgp, device) register int l; register int nopen = 0; char devname[64]; +#if defined(__NetBSD__) + struct scsi_addr mysaddr; +#if defined(__i386__) || defined(__amd64__) + char slicename[] = "d"; /* i386 is special */ +#else + char slicename[] = "c"; /* this is what the rest uses */ +#endif + char *myslicename = slicename; +#endif if (busno >= MAX_SCG || tgt >= MAX_TGT || tlun >= MAX_LUN) { errno = EINVAL; @@@@ -156,6 +165,60 @@@@ scgo_open(scgp, device) if ((device != NULL && *device != '\0') || (busno == -2 && tgt == -2)) goto openbydev; + +/* + * I know of no method in NetBSD to probe the scsibus and get the mapping + * busnumber,target,lun --> devicename. + * + * Because of this implement a true bruteforce hack to find + * out what cdroms there are. + * + * Note that this method only finds cd0-cd7. Anything higher + * than this needs additional tweaks. + * + * Feel free to implement this cleanly if you have better knowledge. + * Until then this helps to get -scanbus und thus xcdroast working :-) + * + */ +#if defined(__NetBSD__) + if (busno >= 0 && tgt >= 0 && tlun >= 0) { + for (l=0; l < MAX_LUN ; l++) { + sprintf(devname, "/dev/rcd%d%s", l, myslicename); + f = open(devname, O_RDWR); + if (f >= 0) { + if (ioctl(f, SCIOCIDENTIFY, &mysaddr) < 0) { + close(f); + errno = EINVAL; + return (0); + } + if (busno == SADDR_BUS(mysaddr) && tgt == SADDR_TARGET(mysaddr) && tlun == SADDR_LUN(mysaddr)) { + scglocal(scgp)->scgfiles[busno][tgt][tlun] = f; + return(1); + } + } else goto openbydev; + } + } else for (l=0; l < MAX_LUN ; l++) { + sprintf(devname, "/dev/rcd%d%s", l, myslicename); + f = open(devname, O_RDWR); + if (f >= 0) { + if (ioctl(f, SCIOCIDENTIFY, &mysaddr) < 0) { + close(f); + errno = EINVAL; + return (0); + } + scg_scsibus(scgp) = busno = SADDR_BUS(mysaddr); + scg_target(scgp) = tgt = SADDR_TARGET(mysaddr); + if ((tlun >= 0) && (tlun != SADDR_LUN(mysaddr))) { + close(f); + errno = EINVAL; + return (0); + } + scg_lun(scgp) = tlun = SADDR_LUN(mysaddr); + if (scg_setup(scgp, f, busno, tgt, tlun)) + nopen++; + } + } +#else /* not __NetBSD__ */ if (busno >= 0 && tgt >= 0 && tlun >= 0) { js_snprintf(devname, sizeof(devname), @@@@ -192,6 +255,7 @@@@ scgo_open(scgp, device) } } } +#endif /* end of not __NetBSD__ */ /* * Could not open /dev/su-* or got dev=devname:b,l,l / dev=devname:@@,l * We do the apropriate tests and try our best. @ 1.1 log @Update dvdrecord to 0.1.3nb1 Pull across scanbus patch from cdrecord @ text @d1 1 a1 1 $NetBSD$ d29 1 a29 1 +#if defined(__i386__) @