DragonFly BSD

CVS log for src/sys/sys/bus.h

[BACK] Up to [DragonFly] / src / sys / sys

Request diff between arbitrary revisions


Keyword substitution: kv
Default branch: MAIN


Revision 1.31: download - view: text, markup, annotated - select for diffs
Fri Oct 3 00:26:21 2008 UTC (6 years, 1 month ago) by hasso
Branches: MAIN
CVS tags: HEAD
Diff to: previous 1.30: preferred, unified
Changes since revision 1.30: +10 -0 lines
Welcome devctl(4) and devd(8).

Obtained-from: FreeBSD

Revision 1.30: download - view: text, markup, annotated - select for diffs
Tue Sep 30 12:20:29 2008 UTC (6 years, 1 month ago) by hasso
Branches: MAIN
Diff to: previous 1.29: preferred, unified
Changes since revision 1.29: +45 -8 lines
The devinfo(3) library provides userspace access to the internal device
hierarchy. The devinfo(8) utility can be used to view that information.
Ported by Sascha Wildner.

Obtained-from: FreeBSD

Revision 1.29: download - view: text, markup, annotated - select for diffs
Mon Sep 29 06:59:45 2008 UTC (6 years, 1 month ago) by hasso
Branches: MAIN
Diff to: previous 1.28: preferred, unified
Changes since revision 1.28: +1 -0 lines
Update acpi_battery(4) related code to the latest one from FreeBSD HEAD.

Obtained-from: FreeBSD

Revision 1.28: download - view: text, markup, annotated - select for diffs
Fri Sep 5 10:28:35 2008 UTC (6 years, 2 months ago) by hasso
Branches: MAIN
Diff to: previous 1.27: preferred, unified
Changes since revision 1.27: +1 -0 lines
acpi_cpu(4) update. It's now possible to use higher (lower power usage) C
states than C1 in modern (multicore) CPUs.

Obtained-from: FreeBSD

Revision 1.27: download - view: text, markup, annotated - select for diffs
Sun Aug 17 04:32:32 2008 UTC (6 years, 3 months ago) by sephe
Branches: MAIN
Diff to: previous 1.26: preferred, unified
Changes since revision 1.26: +0 -2 lines
Nuke INTR_NETSAFE

Revision 1.26: download - view: text, markup, annotated - select for diffs
Wed Sep 12 07:59:31 2007 UTC (7 years, 2 months ago) by hasso
Branches: MAIN
CVS tags: DragonFly_RELEASE_2_0_Slip, DragonFly_RELEASE_2_0, DragonFly_RELEASE_1_12_Slip, DragonFly_RELEASE_1_12, DragonFly_Preview
Diff to: previous 1.25: preferred, unified
Changes since revision 1.25: +11 -0 lines
Add bus_alloc_resources() and bus_release_resources() functions to allow to
simplify the code and to make it easier to port drivers (initially the
agp(4)) from FreeBSD.

Obtained-from: FreeBSD

Revision 1.25: download - view: text, markup, annotated - select for diffs
Tue May 1 00:05:18 2007 UTC (7 years, 6 months ago) by dillon
Branches: MAIN
CVS tags: DragonFly_RELEASE_1_10_Slip, DragonFly_RELEASE_1_10
Diff to: previous 1.24: preferred, unified
Changes since revision 1.24: +2 -0 lines
Implement kern.do_async_attach. default disabled.  To enable add
kern.do_async_attach="1" to your /boot/loader.conf.  This feature allows
conforming drivers to attach in their own thread, allowing multiple
drivers to attach in parallel.

Implement a new device state, DS_INPROGRESS.  Seems to work properly.
Implement device_set_async_attach(), which allows a device's probe
function to indicate that it is ok for its attach function to be run in
its own thread.

Split tsleep's enable out from the 'cold' variable. tsleep works earlier
then when cold is cleared.  Add a 'tsleep_now_works' variable to take
over the functionality.

Implement DRIVERSLEEP()... similar to DELAY(), this function works in
any context and will call lwkt_switch() in its spin loop.  It isn't perfect
yet.

ATA/NATA:
    * Uses the new async attach feature
    * Uses DRIVERSLEEP
    * No longer uses a configuration interrupt hook.  Interrupts are now
      available during device config.

    NOTE: atapicam does not seem to be scanning the 'bus' (from cam's point
    of view), so 'cd0' is not found until CAM scans the bus itself in the
    interrupt config hook code.

USB:
    * Uses the new async attach feature
    * Uses tsleep instead of DELAY

MISC:
    * IF_EM, IF_NFE also use the async attach feature as a test, but it
      doesn't seem to have a huge effect.

Revision 1.24: download - view: text, markup, annotated - select for diffs
Thu Jan 4 21:47:03 2007 UTC (7 years, 10 months ago) by corecode
Branches: MAIN
CVS tags: DragonFly_RELEASE_1_8_Slip, DragonFly_RELEASE_1_8
Diff to: previous 1.23: preferred, unified
Changes since revision 1.23: +35 -0 lines
Say hello to a sound system update from FreeBSD.  This includes the long
awaited Intel High Definition Audio (HDA) a.k.a. Azalia support.

The generic sound support module has been renamed to sound.ko and the
"everything included" module is called snd_driver.ko now.  Apart from
that, everything should continue working as normal, just better.

Revision 1.23: download - view: text, markup, annotated - select for diffs
Wed Oct 25 20:56:03 2006 UTC (8 years, 1 month ago) by dillon
Branches: MAIN
Diff to: previous 1.22: preferred, unified
Changes since revision 1.22: +6 -0 lines
Do a major clean-up of the BUSDMA architecture.  A large number of
essentially machine-independant drivers use the structures and definitions
in machine-dependant directories that are really machine-independant in
nature.

Split <machine/bus_dma.h> into machine-depdendant and machine-independant parts
and make the primary access run through <sys/bus_dma.h>.

Remove <machine/bus.h>, <machine/bus_memio.h> and <machine/bus_pio.h>.  The
optimizations related to bus_memio.h and bus_pio.h made a huge mess,
introduced machine-specific knowledge into essentially machine-independant
drivers, and required specific #include file orderings to do their job.
They may be reintroduced in some other form later on.

Move <machine/resource.h> to <sys/bus_resource.h>.  The contents of the file
is machine-independant or can be made a superset across many platforms.

Make <sys/bus.h> include <sys/bus_dma.h> and <sys/bus_resource.h> and
include <sys/bus.h> where necessary. Remove all #include's of
<machine/resource.h> and <machine/bus.h>.  That is, make the BUSDMA
infrastructure integral to I/O-mapped and memory-mapped accesses to devices
and remove a large chunk of machine-specific dependancies from drivers.
bus_if.h and device_if.h are now required to be present when using <sys/bus.h>.

Revision 1.22: download - view: text, markup, annotated - select for diffs
Sat May 20 02:42:13 2006 UTC (8 years, 6 months ago) by dillon
Branches: MAIN
CVS tags: DragonFly_RELEASE_1_6_Slip, DragonFly_RELEASE_1_6
Diff to: previous 1.21: preferred, unified
Changes since revision 1.21: +7 -0 lines
I'm growing tired of having to add #include lines for header files that
the include file(s) I really want depend on.

Go through nearly all major system include files and add appropriately
#ifndef'd #include lines to include all dependant header files.  Kernel
source files now only need to #include the header files they directly
depend on.

So, for example, if I wanted to add a SYSCTL to a kernel source file,
I would only have to #include <sys/sysctl.h> to bring in the support for
it, rather then four or five header files in addition to <sys/sysctl.h>.

Revision 1.19.2.1: download - view: text, markup, annotated - select for diffs
Tue Feb 28 21:47:58 2006 UTC (8 years, 8 months ago) by dillon
Branches: DragonFly_RELEASE_1_4
CVS tags: DragonFly_RELEASE_1_4_Slip
Diff to: previous 1.19: preferred, unified; next MAIN 1.20: preferred, unified
Changes since revision 1.19: +1 -1 lines
MFC the new random number generator entropy code from the commit on
"2006/01/25 11:56:31 PST".

Revision 1.21: download - view: text, markup, annotated - select for diffs
Wed Jan 25 19:56:23 2006 UTC (8 years, 10 months ago) by dillon
Branches: MAIN
Diff to: previous 1.20: preferred, unified
Changes since revision 1.20: +1 -1 lines
The random number generator was not generating sufficient entropy by
default, resulting in weak random numbers for a short period of time after
a machine is first booted.

* Change the entropy default for all interrupts except the clock interrupt
  from off to on.

* Greatly reduce the overhead of the interrupt entropy code so even high
  performance interrupts can call it.

* Instead of calculating the entropy at the time of the interrupt,
  introduce a new rate-limited kernel thread which the interrupt code can
  simply schedule.  The new thread will be responsible for adding the
  entropy.

  This thread will rate-limit based on the amount of entropy that has been
  built up.  The more entropy we have, the lower the thread's frequency of
  operation.  Currently the limit is set to 25 hz.

* Use the TSC in addition to the normal time calculation when introducing
  entropy.

Note that during tests it was found that a new ssh connection tends to
'eat' all available entropy.  This isn't actually true, it's really the
entropy calculation itself which is not quite correct, but I am duely noting
the issue here.

Reported-by: "Simon 'corecode' Schubert" <corecode@fs.ei.tum.de>

Revision 1.20: download - view: text, markup, annotated - select for diffs
Wed Jan 11 02:38:02 2006 UTC (8 years, 10 months ago) by corecode
Branches: MAIN
Diff to: previous 1.19: preferred, unified
Changes since revision 1.19: +6 -1 lines
Use _KERNEL_STRUCTURES where appropriate

Revision 1.19: download - view: text, markup, annotated - select for diffs
Mon Nov 28 17:13:47 2005 UTC (8 years, 11 months ago) by dillon
Branches: MAIN
Branch point for: DragonFly_RELEASE_1_4
Diff to: previous 1.18: preferred, unified
Changes since revision 1.18: +2 -0 lines
Make all network interrupt service routines MPSAFE part 1/3.

Replace the critical section that was previously used to serialize access
with the LWKT serializer.  Integrate the serializer into the IFNET structure.
Note that kern.intr_mpsafe must be set to 1 for network interrupts to actually
run MPSAFE.  Also note that any interrupts shared with othre non-MP drivers
will cause all drivers on that interrupt to run with the Big Giant Lock.

Network interrupt - Each network driver then simply passes that serializer
to bus_setup_intr() so only a single serializer is required to process the
entire interrupt path.  LWKT serialization support is already 100% integrated
into the interrupt subsystem so it will already be held as of when the
registered interrupt procedure is called.

Ioctl and if_* functions - All callers of if_* functions (such as if_start,
if_ioctl, etc) now obtain the IFNET serializer before making the call.  Thus
all of these entry points into the driver will now be serialized.

if_input - All code that calls if_input now ensures that the serializer
is held.  It will either already be held (when called from a driver), or
the serializer will be wrapped around the call.  When packets are forwarded
or bridged between interfaces, the target interface serializer will be
dropped temporarily to avoid a deadlock.

Device Driver access - dev_* entry points into certain pseudo-network
devices now obtain and release the serializer.  This had to be done on
a device-by-device basis (but there are only a few such devices).

Thanks to several people for helping test the patch, in particular
Sepherosa Ziehau.

Revision 1.18: download - view: text, markup, annotated - select for diffs
Sun Oct 30 04:41:15 2005 UTC (9 years ago) by dillon
Branches: MAIN
Diff to: previous 1.17: preferred, unified
Changes since revision 1.17: +8 -0 lines
Add another parameter to BUS_ADD_CHILD to allow children to inherit
code from grandparents.

Formalize and document the IDENTIFY mechanism and actually use it properly
to add PCI busses rather then the severe hacks that existed before.

Instead of attaching PCI busses (pcib) directly to nexus, create a pass-through
bus layer under nexus called 'legacypci' and attach the PCI busses to that.
Use the new BUS_ADD_CHILD and IVARS recursion capability to still allow
the pcib's under legacypci to get nexus generated IVARS.

NOTE ON IVARS:  These can be utterly confusing because a BUS device may
manage and control the IVARS attached to its children.  In addition, if the
BUS method for the device accessing the IVARs does not properly match up
with or recurse to the device that actually created the ivars, mass
confusion can result.  I have attempted to document the issue but XXX it
needs some sanity check code.

Add a 'pcib_owner' global that is used to determine which of the several
possible PCI mainbus subsystems actually own the PCI mainbus.  This is not
yet tied into ACPI but will be soon.  No longer add legacy "pcib" busses
if it is detected that another subsystem controls the mainbus.  Before
the busses were added but then simply not scanned later on, creating
confusing pcibX designations.  Now the busses aren't added... legacypci
stops cold if it doesn't own the PCI mainbus.  Get rid of the twisted
checks for "pci" devices that used to handle this job.

Document many aspects of the PCI code and redo some of the APIs slightly
to make them more obvious.  In particular, document the odd fact that
pci_*() accessor function actually operate on a pci function code based
sub-device of the "pci" driver and call device_get_parent() to get to the
pci" driver layer.  This sub layer really needs its own formal designation.

Change "pciX" attachments to "pcibY" busses.  Use the secondary bus id
for 'X' and require it to be unique.  Also reorder "pcibY" attachments
so the physical bus number tends to (but is not guarenteed to be) the
same 'Y' in pcibY.

Change IVARS access for bridges.  Require that the device representing the
"pcib" device be passed to pcib_get/set_*() routines instead of children
of said device.

Add a function devclass_find_unit() to shortcut the more complex operation
of locating the devclass by name and then getting the device relative to
the devclass.

Add numerous bus_generic_*() BUS methods which now recurse through the
parent instead of terminate with an error.

Revision 1.17: download - view: text, markup, annotated - select for diffs
Fri Oct 28 03:25:57 2005 UTC (9 years, 1 month ago) by dillon
Branches: MAIN
Diff to: previous 1.16: preferred, unified
Changes since revision 1.16: +3 -1 lines
Cleanup some of the newbus infrastructure.

* Change the device_identify API to return success/failure, like
  most of the other newbus methods.  This may be used for conflict
  resolution in the future.

* Clearly document the device_identify method and formalize its use
  by adding discrimination between initial bus probes and bus rescans.
  Do not re-execute static identification code that has already been run
  every time a new driver is added at run-time.

* Clearly document the do-ISA-last hack.

* Provide generic routines for the most common device_identify operations
  (psueo or synthesized devices that operate under other devices, such as
  lpt operating under ppbus, which are not 'scanned' by the parent bus).

* Remove the hacks that install and initialize the nexus device.  Instead,
  use the existing DRIVER_MODULE infrastructure to install nexus under
  root_bus.

* Document the boot-time initialization path so it doesn't take the next
  guy 8 hours to figure out what code is actually being run when.

Revision 1.16: download - view: text, markup, annotated - select for diffs
Thu Oct 13 00:02:23 2005 UTC (9 years, 1 month ago) by dillon
Branches: MAIN
Diff to: previous 1.15: preferred, unified
Changes since revision 1.15: +1 -0 lines
Major cleanup of the interrupt registration subsystem.

* Collapse the separate registrations in the kernel interrupt thread and
  i386 layers into a single machine-independant kernel interrupt thread layer
  in kern/kern_intr.c.  Get rid of the i386 layer's 'MUX' code entirely.

* Have the interrupt vector assembly code (icu_vector.s and apic_vector.s)
  call a machine-independant function in the kernel interrupt thread
  layer to figure out how to process an interrupt.

* Move a lot of assembly into the new C interrupt processing function.

* Add support for INTR_MPSAFE.  If a device driver registers an interrupt
  as being MPSAFE, the Big Giant Lock will not be obtained or required.

* Temporarily just schedule the ithread if a FAST interrupt cannot be executed
  due to its serializer being locked.

* Add LWKT serialization support for a non-blocking 'try' function.

* Get rid of ointhand2_t and adjust all old ISA code to use inthand2_t.

* Supply a frame pointer as a pointer rather then embedding it on th stack.

* Allow FAST and SLOW interrupts to be mixed on the same IRQ, though this
  will not necessarily result in optimal operation.

* Remove direct APIC/ICU vector calls from the apic/icu vector assembly code.
  Everything goes through the new routine in kern/kern_intr.c now.

* Add a new flag, INTR_NOPOLL.  Interrupts registered with the flag will
  not be polled by the upcoming emergency general interrupt polling
  sysctl (e.g. ATA cannot be safely polled due to the way ATA register
  access interferes with ATA DMA).

* Remove most of the distinction in the i386 assembly layers between FAST
  and SLOW interrupts (part 1/2).

* Revamp the interrupt name array returned to userland to list multiple
  drivers associated with the same IRQ.

Revision 1.15: download - view: text, markup, annotated - select for diffs
Wed Oct 12 17:35:44 2005 UTC (9 years, 1 month ago) by dillon
Branches: MAIN
Diff to: previous 1.14: preferred, unified
Changes since revision 1.14: +7 -23 lines
Remove the INTR_TYPE_* flags.  The interrupt type is no longer used to
figure out which spl*() set an interrupt belongs to, because, well, spl's
no longer exist.

Revision 1.14: download - view: text, markup, annotated - select for diffs
Tue May 24 20:58:44 2005 UTC (9 years, 6 months ago) by dillon
Branches: MAIN
Diff to: previous 1.13: preferred, unified
Changes since revision 1.13: +7 -4 lines
Get rid of bus_{disable,enable}_intr(), it wasn't generic enough for
our needs.

Implement some generic atomic.h functions to aid in the implementation of
a low level mutex.

Implement a generic low level sleep-mutex serializer, kern/lwkt_serialize.c.
The serializer is designed to be a replacement for SPL calls but may also
be used for other very low level work (e.g. lockmgr interlocks).

Add a serializer argument to BUS_SETUP_INTR().  When non-NULL, the interrupt
handler will no longer be protected by an SPL so e.g. spl*() will no
longer protect against that device's interrupts.

The IF queueing and dequeueing mechanisms may no longer depend on outside
SPL state because network driver interrupt handlers are no longer required to
enter splnet().  Use critical sections for the moment.  The IFQ and
IFF_OACTIVE interactions are not yet MP safe.

Revision 1.13: download - view: text, markup, annotated - select for diffs
Mon May 23 18:19:55 2005 UTC (9 years, 6 months ago) by dillon
Branches: MAIN
Diff to: previous 1.12: preferred, unified
Changes since revision 1.12: +4 -0 lines
Add NEWBUS infrastructure for interrupt enablement and disablement.  This
allows a device to indicate to the interrupt dispatch architecture that it
has enabled or disabled the device interrupt at the source.  The dispatch
will then decline to call the handler.   This is necessary because it is
possible for the interrupt handler to be called from the interrupt thread
AFTER the device has disabled the hard interrupt.   There are two cases:

    FIRST CASE:

	* hard interrupt occurs
	* interrupt thread is scheduled but cannot preempt
	* device disables interrupt
	* interrupt thread then runs handler while device believes interrupt to
	  be disabled.

    SECOND CASE:

	* multiple devices share the same interrupt (#1 and #2)
	* device #1 interrupts and schedules the thread
	* the handler for ALL devices is run, even if device #2 disabled
	  its hard interrupt.

Clean up and simplify the interrupt vector code.  Always install a MUX
function.  The MUX function will check the handler enablement/disablement
state.

Revision 1.12: download - view: text, markup, annotated - select for diffs
Wed May 5 16:57:11 2004 UTC (10 years, 6 months ago) by hmp
Branches: MAIN
CVS tags: DragonFly_Stable, DragonFly_Snap29Sep2004, DragonFly_Snap13Sep2004, DragonFly_RELEASE_1_2_Slip, DragonFly_RELEASE_1_2, DragonFly_1_0_REL, DragonFly_1_0_RC1, DragonFly_1_0A_REL
Diff to: previous 1.11: preferred, unified
Changes since revision 1.11: +7 -1 lines
Add bus_alloc_resource_any(9).

Obtained-from:	FreeBSD-4

Revision 1.11: download - view: text, markup, annotated - select for diffs
Thu Apr 15 13:31:41 2004 UTC (10 years, 7 months ago) by joerg
Branches: MAIN
Diff to: previous 1.10: preferred, unified
Changes since revision 1.10: +7 -29 lines
KObj extension stage IIIb/III

Merge inheritance support from FreeBSD:
  * Add a simpler form of 'inheritance' for devclasses. Each devclass can
    have a parent devclass. Searches for drivers continue up the chain of
    devclasses until either a matching driver is found or a devclass is
    reached which has no parent. This can allow, for instance, pci drivers
    to match cardbus devices (assuming that cardbus declares pci as its
    parent devclass).

Revision 1.10: download - view: text, markup, annotated - select for diffs
Thu Apr 1 07:33:18 2004 UTC (10 years, 7 months ago) by joerg
Branches: MAIN
Diff to: previous 1.9: preferred, unified
Changes since revision 1.9: +1 -6 lines
Remove struct driver and make driver_t directly defined as kobj_class.
The additional *priv field is only used by the ISA/PCI compat shims and
those can use a local struct instead.

Revision 1.9: download - view: text, markup, annotated - select for diffs
Sat Mar 13 14:38:22 2004 UTC (10 years, 8 months ago) by joerg
Branches: MAIN
Diff to: previous 1.8: preferred, unified
Changes since revision 1.8: +3 -0 lines
Add convient functions for the bus interface: child_present,
child_pnpinfo_str, child_location_str.

From FreeBSD.

Revision 1.8: download - view: text, markup, annotated - select for diffs
Mon Feb 23 21:23:41 2004 UTC (10 years, 9 months ago) by dillon
Branches: MAIN
Diff to: previous 1.7: preferred, unified
Changes since revision 1.7: +4 -0 lines
Make nexus understand the new INTR_ flags, mainly INTR_ENTROPY.
Fixes the: mpt, aac, amr, mlx, and twe drivers.

Reported-by: David Rhodus <drhodus@machdep.com>

Revision 1.7: download - view: text, markup, annotated - select for diffs
Sat Feb 21 06:37:01 2004 UTC (10 years, 9 months ago) by dillon
Branches: MAIN
Diff to: previous 1.6: preferred, unified
Changes since revision 1.6: +40 -6 lines
Synchronize a bunch of things from FreeBSD-5 in preparation for the new
ACPICA driver support.

* Bring in a lot of new bus and pci DEV_METHODs from FreeBSD-5
* split apic.h into apicreg.h and apicio.h
* rename INTR_TYPE_FAST -> INTR_FAST and move the #define
* rename INTR_TYPE_EXCL -> INTR_EXCL and move the #define
* rename some PCIR_ registers and add additional macros from FreeBSD-5
* note: new pcib bus call, host_pcib_get_busno() imported.
* kern/subr_power.c no longer optional.

Other changes:

* machine/smp.h machine smp/smptests.h can now be #included unconditionally,
  and some APIC_IO vs SMP separation has been done as well.
* gd_acpi_id and gd_apic_id added to machine/globaldata.h prep for new
  ACPI code.

Despite all the changes, the generated code should be virtually the same.
These were mostly additions which the pre-existing code does not (yet) use.

Revision 1.6: download - view: text, markup, annotated - select for diffs
Mon Feb 16 18:48:03 2004 UTC (10 years, 9 months ago) by joerg
Branches: MAIN
Diff to: previous 1.5: preferred, unified
Changes since revision 1.5: +1 -0 lines
Add device_is_attached to allow a driver to check wether a given device
was or was not succesfully attached to the device tree.

Revision 1.5: download - view: text, markup, annotated - select for diffs
Fri Feb 6 23:09:36 2004 UTC (10 years, 9 months ago) by joerg
Branches: MAIN
Diff to: previous 1.4: preferred, unified
Changes since revision 1.4: +1 -0 lines
Adjust infrastructure for NEWCARD

Revision 1.4: download - view: text, markup, annotated - select for diffs
Sat Nov 22 19:30:57 2003 UTC (11 years ago) by asmodai
Branches: MAIN
Diff to: previous 1.3: preferred, unified
Changes since revision 1.3: +1 -1 lines
Properly spell compatible and compatibility.

Revision 1.3: download - view: text, markup, annotated - select for diffs
Mon Nov 17 00:54:40 2003 UTC (11 years ago) by asmodai
Branches: MAIN
Diff to: previous 1.2: preferred, unified
Changes since revision 1.2: +5 -15 lines
Factor out the object system from new-bus so that it can be used by
non-device code.

Re-implement the method dispatch to improve efficiency. The new system
takes about 40ns for a method dispatch on a 300Mhz PII which is only 10ns
slower than a direct function call on the same hardware.

This is all based on Doug Rabson's work in April and May of 2000.

Revision 1.2: download - view: text, markup, annotated - select for diffs
Tue Jun 17 04:28:58 2003 UTC (11 years, 5 months ago) by dillon
Branches: MAIN
CVS tags: PRE_MP
Diff to: previous 1.1: preferred, unified
Changes since revision 1.1: +1 -0 lines
Add the DragonFly cvs id and perform general cleanups on cvs/rcs/sccs ids.  Most
ids have been removed from !lint sections and moved into comment sections.

Revision 1.1: download - view: text, markup, annotated - select for diffs
Tue Jun 17 02:55:50 2003 UTC (11 years, 5 months ago) by dillon
Branches: MAIN
CVS tags: FREEBSD_4_FORK
import from FreeBSD RELENG_4 1.30.2.4

Diff request

This form allows you to request diffs between any two revisions of a file. You may select a symbolic revision name using the selection box or you may type in a numeric name using the type-in text box.

Log view options