Home | History | Annotate | Download | only in tc
History log of /src/sys/dev/tc/asc_tcds.c
RevisionDateAuthorComments
 1.26  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.25  13-Nov-2010  uebayasi branches: 1.25.58; 1.25.60;
Don't pull in the whole uvm(9) API to access only PAGE_SIZE and
some other constants. These are provided by sys/param.h now.
 1.24  28-Apr-2008  martin branches: 1.24.22;
Remove clause 3 and 4 from TNF licenses
 1.23  13-Apr-2008  tsutsui branches: 1.23.2; 1.23.4;
Split device_t/softc for MI ncr53c9x and some related devices,
with various cleanup.
 1.22  20-Feb-2008  matt branches: 1.22.6;
Use the VAX_PHYS_TO_S0 macro from vax/tc_machdep.h
 1.21  19-Feb-2008  matt Fix TC on VAX. (missed committing these earlier)
 1.20  19-Oct-2007  ad machine/{bus,cpu,intr}.h -> sys/{bus,cpu,intr}.h
 1.19  04-Mar-2007  yamt branches: 1.19.2; 1.19.14; 1.19.16; 1.19.20;
fix fallout from caddr_t changes.

XXX what "volatile caddr_t" in if_le_ioasic.c was for?
 1.18  04-Mar-2007  christos Kill caddr_t; there will be some MI fallout, but it will be fixed shortly.
 1.17  14-May-2006  elad branches: 1.17.14;
integrate kauth.
 1.16  31-Mar-2006  thorpej Use ANSI function decls, apply static.
 1.15  30-Mar-2006  thorpej Use device_private().
 1.14  11-Dec-2005  christos branches: 1.14.4; 1.14.6; 1.14.8; 1.14.10; 1.14.12;
merge ktrace-lwp.
 1.13  22-May-2005  christos branches: 1.13.2;
No 0x in front of %p...
 1.12  04-Feb-2005  perry de-__P
 1.11  03-May-2003  wiz branches: 1.11.2; 1.11.10; 1.11.12;
DMA, not dma nor Dma.
 1.10  01-Apr-2003  thorpej Use PAGE_SIZE rather than NBPG.
 1.9  22-Feb-2003  tsutsui hz -> Hz
 1.8  02-Oct-2002  thorpej Add trailing ; to CFATTACH_DECL.
 1.7  01-Oct-2002  thorpej Use CFATTACH_DECL().
 1.6  27-Sep-2002  thorpej Declare all cfattach structures const.
 1.5  15-Nov-2001  lukem don't need <sys/types.h> when including <sys/param.h>
 1.4  13-Nov-2001  lukem add/cleanup RCSIDs
 1.3  19-Jul-2001  thorpej Use BUS_DMA_READ and BUS_DMA_WRITE in some obvious places.
 1.2  25-Apr-2001  bouyer branches: 1.2.2;
Pull up the thorpej_scsipi branch to main branch.
This is a completely rewritten scsipi_xfer execution engine, and the
associated changes to HBA drivers. Overview of changes & features:
- All xfers are queued in the mid-layer, rather than doing so in an
ad-hoc fashion in individual adapter drivers.
- Adapter/channel resource management in the mid-layer, avoids even trying
to start running an xfer if the adapter/channel doesn't have the resources.
- Better communication between the mid-layer and the adapters.
- Asynchronous event notification mechanism from adapter to mid-layer and
peripherals.
- Better peripheral queue management: freeze/thaw, sorted requeueing during
recovery, etc.
- Clean separation of peripherals, adapters, and adapter channels (no more
scsipi_link).
- Kernel thread for each scsipi_channel makes error recovery much easier
(no more dealing with interrupt context when recovering from an error).
- Mid-layer support for tagged queueing: commands can have the tag type
set explicitly, tag IDs are allocated in the mid-layer (thus eliminating
the need to use buggy tag ID allocation schemes in many adapter drivers).
- support for QUEUE FULL and CHECK CONDITION status in mid-layer; the command
will be requeued, or a REQUEST SENSE will be sent as appropriate.

Just before the merge syssrc has been tagged with thorpej_scsipi_beforemerge
 1.1  04-Jul-2000  nisimura branches: 1.1.2; 1.1.4;
Repopulate TCDS dual channel SCSI adapter to MI dev/tc, squashing
internals for better layering between TCDS DMA ASIC and ASC SCSI
controller.
 1.1.4.5  18-Oct-2002  nathanw Catch up to -current.
 1.1.4.4  08-Jan-2002  nathanw Catch up to -current.
 1.1.4.3  14-Nov-2001  nathanw Catch up to -current.
 1.1.4.2  24-Aug-2001  nathanw Catch up with -current.
 1.1.4.1  21-Jun-2001  nathanw Catch up to -current.
 1.1.2.3  28-Mar-2001  bouyer Make this compile.
 1.1.2.2  20-Nov-2000  bouyer Update thorpej_scsipi to -current as of a month ago
A i386 GENERIC kernel compiles without the siop, ahc and bha drivers
(will be updated later). i386 IDE/ATAPI and ncr work, as well as
sparc/esp_sbus. alpha should work as well (untested yet).
siop, ahc and bha will be updated once I've updated the branch to current
-current, as well as machine-dependant code.
 1.1.2.1  04-Jul-2000  bouyer file asc_tcds.c was added on branch thorpej_scsipi on 2000-11-20 11:43:13 +0000
 1.2.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.2.2.2  10-Jan-2002  thorpej Sync kqueue branch with -current.
 1.2.2.1  03-Aug-2001  lukem update to -current
 1.11.12.1  12-Feb-2005  yamt sync with head.
 1.11.10.1  29-Apr-2005  kent sync with -current
 1.11.2.2  10-Nov-2005  skrll Sync with HEAD. Here we go again...
 1.11.2.1  04-Feb-2005  skrll Sync with HEAD.
 1.13.2.4  27-Feb-2008  yamt sync with head.
 1.13.2.3  27-Oct-2007  yamt sync with head.
 1.13.2.2  03-Sep-2007  yamt sync with head.
 1.13.2.1  21-Jun-2006  yamt sync with head.
 1.14.12.2  24-May-2006  tron Merge 2006-05-24 NetBSD-current into the "peter-altq" branch.
 1.14.12.1  31-Mar-2006  tron Merge 2006-03-31 NetBSD-current into the "peter-altq" branch.
 1.14.10.1  19-Apr-2006  elad sync with head.
 1.14.8.1  01-Apr-2006  yamt sync with head.
 1.14.6.1  22-Apr-2006  simonb Sync with head.
 1.14.4.1  09-Sep-2006  rpaulo sync with head
 1.17.14.1  12-Mar-2007  rmind Sync with HEAD.
 1.19.20.1  25-Oct-2007  bouyer Sync with HEAD.
 1.19.16.2  23-Mar-2008  matt sync with HEAD
 1.19.16.1  06-Nov-2007  matt sync with HEAD
 1.19.14.1  26-Oct-2007  joerg Sync with HEAD.

Follow the merge of pmap.c on i386 and amd64 and move
pmap_init_tmp_pgtbl into arch/x86/x86/pmap.c. Modify the ACPI wakeup
code to restore CR4 before jumping back into kernel space as the large
page option might cover that.
 1.19.2.1  23-Oct-2007  ad Sync with head.
 1.22.6.1  02-Jun-2008  mjf Sync with HEAD.
 1.23.4.1  16-May-2008  yamt sync with head.
 1.23.2.1  18-May-2008  yamt sync with head.
 1.24.22.1  05-Mar-2011  rmind sync with head
 1.25.60.1  10-Jun-2019  christos Sync with HEAD
 1.25.58.1  06-Sep-2018  pgoyette Sync with HEAD

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

RSS XML Feed