Home | History | Annotate | Download | only in podulebus
History log of /src/sys/dev/podulebus/hcsc.c
RevisionDateAuthorComments
 1.23  19-May-2025  andvar spelling and grammar fixes in comments.
 1.22  03-Sep-2018  riastradh Rename min/max -> uimin/uimax for better honesty.

These functions are defined on unsigned int. The generic name
min/max should not silently truncate to 32 bits on 64-bit systems.
This is purely a name change -- no functional change intended.

HOWEVER! Some subsystems have

#define min(a, b) ((a) < (b) ? (a) : (b))
#define max(a, b) ((a) > (b) ? (a) : (b))

even though our standard name for that is MIN/MAX. Although these
may invite multiple evaluation bugs, these do _not_ cause integer
truncation.

To avoid `fixing' these cases, I first changed the name in libkern,
and then compile-tested every file where min/max occurred in order to
confirm that it failed -- and thus confirm that nothing shadowed
min/max -- before changing it.

I have left a handful of bootloaders that are too annoying to
compile-test, and some dead code:

cobalt ews4800mips hp300 hppa ia64 luna68k vax
acorn32/if_ie.c (not included in any kernels)
macppc/if_gm.c (superseded by gem(4))

It should be easy to fix the fallout once identified -- this way of
doing things fails safe, and the goal here, after all, is to _avoid_
silent integer truncations, not introduce them.

Maybe one day we can reintroduce min/max as type-generic things that
never silently truncate. But we should avoid doing that for a while,
so that existing code has a chance to be detected by the compiler for
conversion to uimin/uimax without changing the semantics until we can
properly audit it all. (Who knows, maybe in some cases integer
truncation is actually intended!)
 1.21  27-Oct-2012  chs branches: 1.21.36; 1.21.38;
split device_t/softc for all remaining drivers.
replace "struct device *" with "device_t".
use device_xname(), device_unit(), etc.
 1.20  18-Oct-2009  snj branches: 1.20.12; 1.20.22;
Move Matthias Pfaller's files to 2-clause license. OK matthias@.
 1.19  28-Apr-2008  martin Remove clause 3 and 4 from TNF licenses
 1.18  04-Apr-2008  tsutsui branches: 1.18.2; 1.18.4;
Split devict_t/softc for ncr5380sbc SCSI, and misc cosmetic changes.
 1.17  29-Mar-2006  thorpej branches: 1.17.58;
Use device_private().
 1.16  24-Dec-2005  perry branches: 1.16.4; 1.16.6; 1.16.8; 1.16.10; 1.16.12;
Remove leading __ from __(const|inline|signed|volatile) -- it is obsolete.
 1.15  11-Dec-2005  christos merge ktrace-lwp.
 1.14  27-Feb-2005  perry branches: 1.14.4;
nuke trailing whitespace
 1.13  22-Apr-2004  itojun branches: 1.13.4; 1.13.6;
sprintf -> snprintf
 1.12  02-Oct-2002  thorpej branches: 1.12.6;
Add trailing ; to CFATTACH_DECL.
 1.11  30-Sep-2002  thorpej Use CFATTACH_DECL().
 1.10  27-Sep-2002  thorpej Declare all cfattach structures const.
 1.9  24-Mar-2002  bjh21 Avoid "unused variable" warnings in the NCR5380_USE_BUS_SPACE case.
 1.8  13-Nov-2001  lukem branches: 1.8.2;
cleanup RCSID (to be consistent with use in rest of kernel)
 1.7  04-Jul-2001  bjh21 branches: 1.7.2;
Add support for Oak and HCCS SCSI cards fitted with PowerROMs. Since this
depends on podloader support, it won't work on arm32 yet.
 1.6  12-Jun-2001  bjh21 Mention where I got the information for writing the driver.
 1.5  02-Jun-2001  bjh21 Create hcscreg.h, and put a couple of magic numbers in there.
 1.4  02-Jun-2001  bjh21 Clean up hcsc_match: Don't check the manufacturer ID, since podule IDs are
unique anyway. Do check whether the description starts with "SCSI", since
HCCS used the same ID for their IDE podule.
 1.3  02-Jun-2001  bjh21 Enable disconnect/reselect (now that it works) and parity checking.
 1.2  28-May-2001  bjh21 Use the pseudo-DMA facilities of the HCCS SCSI podule. Code largely derived
from the pc532 "ncr" driver.

This gets me up to 300 KB/s from /dev/rsd0a on my A310. I think
bus_space_{read,write}_multi_1 and copy{in,out} are the bottlenecks now.
 1.1  26-May-2001  bjh21 Quick hack of a driver for the HCCS 8-bit SCSI podule, based on the Oak driver.
Tested to the extent that it finds my disc.
 1.7.2.3  10-Oct-2002  jdolecek sync kqueue with -current; this includes merge of gehenna-devsw branch,
merge of i386 MP branch, and part of autoconf rototil work
 1.7.2.2  23-Jun-2002  jdolecek catch up with -current on kqueue branch
 1.7.2.1  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.8.2.3  18-Oct-2002  nathanw Catch up to -current.
 1.8.2.2  01-Apr-2002  nathanw Catch up to -current.
(CVS: It's not just a program. It's an adventure!)
 1.8.2.1  13-Nov-2001  nathanw file hcsc.c was added on branch nathanw_sa on 2002-04-01 07:46:59 +0000
 1.12.6.4  04-Mar-2005  skrll Sync with HEAD.

Hi Perry!
 1.12.6.3  21-Sep-2004  skrll Fix the sync with head I botched.
 1.12.6.2  18-Sep-2004  skrll Sync with HEAD.
 1.12.6.1  03-Aug-2004  skrll Sync with HEAD
 1.13.6.1  19-Mar-2005  yamt sync with head. xen and whitespace. xen part is not finished.
 1.13.4.1  29-Apr-2005  kent sync with -current
 1.14.4.1  21-Jun-2006  yamt sync with head.
 1.16.12.1  31-Mar-2006  tron Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
 1.16.10.1  19-Apr-2006  elad sync with head.
 1.16.8.1  01-Apr-2006  yamt sync with head.
 1.16.6.1  22-Apr-2006  simonb Sync with head.
 1.16.4.1  09-Sep-2006  rpaulo sync with head
 1.17.58.1  02-Jun-2008  mjf Sync with HEAD.
 1.18.4.2  11-Mar-2010  yamt sync with head
 1.18.4.1  16-May-2008  yamt sync with head.
 1.18.2.1  18-May-2008  yamt sync with head.
 1.20.22.1  20-Nov-2012  tls Resync to 2012-11-19 00:00:00 UTC
 1.20.12.1  30-Oct-2012  yamt sync with head
 1.21.38.1  10-Jun-2019  christos Sync with HEAD
 1.21.36.1  06-Sep-2018  pgoyette Sync with HEAD

Resolve a couple of conflicts (result of the uimin/uimax changes)

RSS XML Feed