DragonFly BSD

CVS log for src/sys/dev/acpica5/acpi.c

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

Request diff between arbitrary revisions


Keyword substitution: kv
Default branch: MAIN


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

Obtained-from: FreeBSD

Revision 1.36: download - view: text, markup, annotated - select for diffs
Fri Sep 5 10:28:35 2008 UTC (5 years, 10 months ago) by hasso
Branches: MAIN
Diff to: previous 1.35: preferred, unified
Changes since revision 1.35: +3 -2 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.35: download - view: text, markup, annotated - select for diffs
Wed Aug 27 16:35:19 2008 UTC (5 years, 10 months ago) by hasso
Branches: MAIN
Diff to: previous 1.34: preferred, unified
Changes since revision 1.34: +22 -0 lines
Add some methods to ACPI to handle embedded controllers and device matching.

Obtained-from: FreeBSD

Revision 1.34: download - view: text, markup, annotated - select for diffs
Thu Jun 5 18:06:31 2008 UTC (6 years, 1 month ago) by swildner
Branches: MAIN
CVS tags: DragonFly_RELEASE_2_0_Slip, DragonFly_RELEASE_2_0, DragonFly_Preview
Diff to: previous 1.33: preferred, unified
Changes since revision 1.33: +1 -1 lines
* Fix some cases where NULL was used but 0 was meant (and vice versa).

* Remove some bogus casts of NULL to (void *).

Revision 1.33: download - view: text, markup, annotated - select for diffs
Sun Nov 25 00:13:28 2007 UTC (6 years, 7 months ago) by swildner
Branches: MAIN
CVS tags: DragonFly_RELEASE_1_12_Slip, DragonFly_RELEASE_1_12
Diff to: previous 1.32: preferred, unified
Changes since revision 1.32: +18 -18 lines
Adjust acpi.c and bios.c to use kfreeenv()/ktestenv() and remove the
freeenv/testenv compatibility defines.

Revision 1.32: download - view: text, markup, annotated - select for diffs
Tue Oct 23 03:04:48 2007 UTC (6 years, 9 months ago) by y0netan1
Branches: MAIN
Diff to: previous 1.31: preferred, unified
Changes since revision 1.31: +156 -60 lines
Merge ACPI resource manager changes From FreeBSD:

acpi.c,v 1.158, acpivar.h,v 1.70
  Associate a device_t with an ACPI_HANDLE.  This make AcpiWalkNamespace more
  useful.  If ACPI-CA allowed null object handlers, we wouldn't need the
  placeholder function.

acpi.c,v 1.159-1.160 and others:
  Add support to ACPI to manage its own resources.  Previously, resource
  allocation was passed up to nexus.  Now, we probe sysresource objects and
  manage the resources they describe in a local rman pool.  This helps
  devices which attach/detach varying resources (like the _CST object) and
  module loads/unloads.  The allocation/release routines now check to see if
  the resource is described in a child sysresource object and if so,
  allocate from the local rman.  Sysresource objects add their resources to
  the pool and reserve them upon boot.  This means sysresources need to be
  probed before other ACPI devices.

  Changes include:
  * Add ordering to the child device probe.  The current order is:  system
  resource objects, embedded controllers, then everything else.
  * Make acpi_MatchHid take a handle instead of a device_t arg.
  * Replace acpi_{get,set}_resource with the generic equivalents.

acpi.c,v 1.175:
  Call device_identify routines after doing the namespace walk.  This is
  needed so that sysresource objects are created first to reserve all regions,
  then other devices can allocate from them.  Otherwise, acpi_timer (the only
  ACPI device with an identify routine), would allocate its resources from
  the nexus, causing the later sysresource reserve to fail.

  Debugging by:   Taku YAMAMOTO, Andrea Campi

And add ACPI attachment to some devices trying to obtain resources
from the ISA bus.

Revision 1.31: download - view: text, markup, annotated - select for diffs
Mon Apr 30 07:18:47 2007 UTC (7 years, 2 months ago) by dillon
Branches: MAIN
CVS tags: DragonFly_RELEASE_1_10_Slip, DragonFly_RELEASE_1_10
Diff to: previous 1.30: preferred, unified
Changes since revision 1.30: +8 -4 lines
Revamp SYSINIT ordering.  Relabel sysinit IDs (SI_* in sys/kernel.h) to
make them less confusing, particularly with regard to the relative order
init routines are called in.

Reorder many sysinits.  Reorder the SMP and CLOCK code to bring all the
cpus up far earlier in the boot sequence and to make the full threading and
clocking subsystems available for device config.

Revision 1.29.2.1: download - view: text, markup, annotated - select for diffs
Mon Jan 29 14:09:15 2007 UTC (7 years, 5 months ago) by y0netan1
Branches: DragonFly_RELEASE_1_8
CVS tags: DragonFly_RELEASE_1_8_Slip
Diff to: previous 1.29: preferred, unified; next MAIN 1.30: preferred, unified
Changes since revision 1.29: +1 -1 lines
MFC kern/kern_environment.c,1.5 dev/acpica5/acpi.c,rev1.30

Make debug.acpi.{layer,level} actually usable after boot.
acpi.ko must be compiled with ACPI_DEBUG set.

Revision 1.30: download - view: text, markup, annotated - select for diffs
Sun Jan 28 06:33:49 2007 UTC (7 years, 5 months ago) by y0netan1
Branches: MAIN
Diff to: previous 1.29: preferred, unified
Changes since revision 1.29: +1 -1 lines
Enable setting debug.acpi.{layer,level} via sysctl command.

Revision 1.29: download - view: text, markup, annotated - select for diffs
Thu Jan 25 02:43:35 2007 UTC (7 years, 5 months ago) by y0netan1
Branches: MAIN
Branch point for: DragonFly_RELEASE_1_8
Diff to: previous 1.28: preferred, unified
Changes since revision 1.28: +5 -3 lines
Initialize ACPI task thread before AcpiEnableSubsystem() installs
interrupt handlers.

Revision 1.28: download - view: text, markup, annotated - select for diffs
Wed Jan 17 17:31:19 2007 UTC (7 years, 6 months ago) by y0netan1
Branches: MAIN
Diff to: previous 1.27: preferred, unified
Changes since revision 1.27: +108 -70 lines
Update ACPI build wrappers to use new ACPI-CA code.
* many fixes in ACPI-CA code (see changes.txt for detail)

* enable interpreter slack code
  relaxed checking on AML code to get fewer warnings

* use OS implementation of spinlock and cache object:
  OSL cache code by:
	  Jeffrey Hsu <hsu@dragonflybsd.org>
  Fix to semaphore and locking code:
	  Simon 'corecode' Schubert <corecode@fs.ei.tum.de>

* added a few debugging knobs(on make command line):
  ACPI_DEBUG_LOCKS=yes to activate debugging code for AcpiOs*Lock()
  ACPI_DEBUG_MEMMAP=yes to activate debugging code for AcpiOs*MapMemory()

Revision 1.27: download - view: text, markup, annotated - select for diffs
Sat Jan 13 21:58:11 2007 UTC (7 years, 6 months ago) by tgen
Branches: MAIN
Diff to: previous 1.26: preferred, unified
Changes since revision 1.26: +16 -6 lines
Enable the ACPI quirks kernel environment variable setting, and add a
quirks candidate: the VMware ACPI-fast24 timer. The latter quirk setting is
guarded by a kernel config file option, options ACPI_QUIRK_VMWARE. It's
commented out in the GENERIC config file by default.

TODO:
	- port FreeBSD's more extensive ACPI quirks table support, which
	  allows for more specifics to discern between ACPI
	  implementations.

Revision 1.26: download - view: text, markup, annotated - select for diffs
Fri Dec 22 23:26:14 2006 UTC (7 years, 7 months ago) by swildner
Branches: MAIN
Diff to: previous 1.25: preferred, unified
Changes since revision 1.25: +14 -14 lines
Rename printf -> kprintf in sys/ and add some defines where necessary
(files which are used in userland, too).

Revision 1.25: download - view: text, markup, annotated - select for diffs
Wed Dec 20 18:14:38 2006 UTC (7 years, 7 months ago) by dillon
Branches: MAIN
Diff to: previous 1.24: preferred, unified
Changes since revision 1.24: +8 -8 lines
Rename sprintf  -> ksprintf
Rename snprintf -> knsprintf

Make allowances for source files that are compiled for both userland and
the kernel.

Revision 1.24: download - view: text, markup, annotated - select for diffs
Wed Oct 25 20:55:52 2006 UTC (7 years, 8 months ago) by dillon
Branches: MAIN
Diff to: previous 1.23: preferred, unified
Changes since revision 1.23: +2 -3 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.19.2.1: download - view: text, markup, annotated - select for diffs
Mon Sep 11 04:25:59 2006 UTC (7 years, 10 months ago) by y0netan1
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: +4 -2 lines
MFC acpi.c revision 1.23:
acpiioctl() can be left without ACPI_UNLOCK(), leading to
critical section count mismatch panic.

Revision 1.19.4.1: download - view: text, markup, annotated - select for diffs
Mon Sep 11 04:22:07 2006 UTC (7 years, 10 months ago) by y0netan1
Branches: DragonFly_RELEASE_1_6
CVS tags: DragonFly_RELEASE_1_6_Slip
Diff to: previous 1.19: preferred, unified; next MAIN 1.20: preferred, unified
Changes since revision 1.19: +4 -2 lines
MFC acpi.c revision 1.23:
acpiioctl() can be left without ACPI_UNLOCK(), leading to
critical section count mismatch panic.

Revision 1.23: download - view: text, markup, annotated - select for diffs
Sun Sep 10 06:05:35 2006 UTC (7 years, 10 months ago) by y0netan1
Branches: MAIN
Diff to: previous 1.22: preferred, unified
Changes since revision 1.22: +4 -2 lines
acpiioctl() can be left without ACPI_UNLOCK(), leading to
critical section count mismatch panic.

Revision 1.22: download - view: text, markup, annotated - select for diffs
Tue Sep 5 00:55:36 2006 UTC (7 years, 10 months ago) by dillon
Branches: MAIN
Diff to: previous 1.21: preferred, unified
Changes since revision 1.21: +7 -7 lines
Rename malloc->kmalloc, free->kfree, and realloc->krealloc.  Pass 1

Revision 1.21: download - view: text, markup, annotated - select for diffs
Sun Sep 3 17:43:55 2006 UTC (7 years, 10 months ago) by dillon
Branches: MAIN
Diff to: previous 1.20: preferred, unified
Changes since revision 1.20: +15 -15 lines
Rename functions to avoid conflicts with libc.

Revision 1.20: download - view: text, markup, annotated - select for diffs
Fri Jul 28 02:17:35 2006 UTC (7 years, 11 months ago) by dillon
Branches: MAIN
Diff to: previous 1.19: preferred, unified
Changes since revision 1.19: +17 -20 lines
MASSIVE reorganization of the device operations vector.  Change cdevsw
to dev_ops.  dev_ops is a syslink-compatible operations vector structure
similar to the vop_ops structure used by vnodes.

Remove a huge number of instances where a thread pointer is still being
passed as an argument to various device ops and other related routines.
The device OPEN and IOCTL calls now take a ucred instead of a thread pointer,
and the CLOSE call no longer takes a thread pointer.

Revision 1.19: download - view: text, markup, annotated - select for diffs
Sun Dec 11 01:54:07 2005 UTC (8 years, 7 months ago) by swildner
Branches: MAIN
Branch point for: DragonFly_RELEASE_1_6, DragonFly_RELEASE_1_4
Diff to: previous 1.18: preferred, unified
Changes since revision 1.18: +1 -1 lines
* Ansify function definitions.

* Minor style cleanup.

Submitted-by: Alexey Slynko <slynko@tronet.ru>

Revision 1.18: download - view: text, markup, annotated - select for diffs
Tue Nov 1 23:36:32 2005 UTC (8 years, 8 months ago) by dillon
Branches: MAIN
Diff to: previous 1.17: preferred, unified
Changes since revision 1.17: +42 -1 lines
add an acpi_enabled() function, invert the "pci" logic and require that
debug.acpi.enabled contain "pci" to enable ACPI based PCI routing.  Interlock
against pcib_owner.  Continue to leave the pci code commented out in the
Makefile.

Revision 1.17: download - view: text, markup, annotated - select for diffs
Sun Oct 30 04:41:15 2005 UTC (8 years, 8 months ago) by dillon
Branches: MAIN
Diff to: previous 1.16: preferred, unified
Changes since revision 1.16: +7 -6 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.16: download - view: text, markup, annotated - select for diffs
Sun Oct 30 04:20:49 2005 UTC (8 years, 8 months ago) by y0netan1
Branches: MAIN
Diff to: previous 1.15: preferred, unified
Changes since revision 1.15: +4 -0 lines
- kill `unused variable' warning pointed out by sephe@
- kill `defined but not used' warning by #ifdef'ing out
  acpi_wake_set_sysctl() definition

Revision 1.15: download - view: text, markup, annotated - select for diffs
Fri Oct 28 03:25:37 2005 UTC (8 years, 8 months ago) by dillon
Branches: MAIN
Diff to: previous 1.14: preferred, unified
Changes since revision 1.14: +14 -7 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.14: download - view: text, markup, annotated - select for diffs
Fri Sep 23 02:28:50 2005 UTC (8 years, 10 months ago) by y0netan1
Branches: MAIN
Diff to: previous 1.13: preferred, unified
Changes since revision 1.13: +3 -4 lines
- Catch up with rev 1.157 of sys/dev/acpica/acpi.c in FreeBSD:
    Don't forget to pass shutdown events down to children first now that we
    handle them at the bus level too.
  This should prevent acpi_cpu_idle() from doing something nasty
  in the middle of shutdown procedure(by turning of cpu_cx_count).

- Move prototype for cpu_idle_hook into <machine/md_var.h>.

- In acpi_cpu_shutdown(), use lwkt_cpusync_simple() to synchronize
  CPUs instead of dropping into DDB.

Reported-by: Rumko <rumcic at gmail.com>

Revision 1.13: download - view: text, markup, annotated - select for diffs
Sat Sep 17 23:53:47 2005 UTC (8 years, 10 months ago) by dillon
Branches: MAIN
Diff to: previous 1.12: preferred, unified
Changes since revision 1.12: +3 -0 lines
Using the ACPI idle hook while shutting down ACPI during a halt or reboot
can panic the system.  Restore the original idle hook before initiating the
ACPI shutdown.

Reported-by: =?ISO-8859-2?Q?Toma=BE_Bor=B9tnar?= <tomaz.borstnar@amis.net>

Revision 1.12: download - view: text, markup, annotated - select for diffs
Mon Aug 29 21:07:59 2005 UTC (8 years, 10 months ago) by dillon
Branches: MAIN
Diff to: previous 1.11: preferred, unified
Changes since revision 1.11: +0 -4 lines
Get rid of smp_rendezvous() and all associated support circuitry.  Move
the two mechanisms still using it (User LDT and MTRR propogation) over
to the lwkt_cpusync*() API.

Revision 1.11: download - view: text, markup, annotated - select for diffs
Sat Jun 4 14:25:45 2005 UTC (9 years, 1 month ago) by corecode
Branches: MAIN
Diff to: previous 1.10: preferred, unified
Changes since revision 1.10: +1 -0 lines
convert spl*() to critical sections.

Revision 1.10: download - view: text, markup, annotated - select for diffs
Sat Apr 16 08:17:02 2005 UTC (9 years, 3 months ago) by y0netan1
Branches: MAIN
CVS tags: DragonFly_Stable
Diff to: previous 1.9: preferred, unified
Changes since revision 1.9: +8 -2 lines
Add a debug knob debug.acpi.avoid.paths, a variant of debug.acpi.avoid
but without totally disabling execution of _INI and _STA.  Maybe useful
to narrow down the portion of namespace causing problems without messing
with editing and compiling ASL.  Disablement of _INI and _STA when
debug.acpi.avoid is specified has been added years before to workaround
interpreter crash on some systems, and I'm not sure whether the recent
ACPI-CA code still crashes on those systems, but I'll leave it as is
anyway for compatibility with FreeBSD.

Suggested-by: Sepherosa Ziehau

Revision 1.9: download - view: text, markup, annotated - select for diffs
Wed Sep 15 16:46:19 2004 UTC (9 years, 10 months ago) by joerg
Branches: MAIN
CVS tags: DragonFly_Snap29Sep2004, DragonFly_RELEASE_1_2_Slip, DragonFly_RELEASE_1_2
Diff to: previous 1.8: preferred, unified
Changes since revision 1.8: +3 -1 lines
timeout/untimeout ==> callout_*

Revision 1.8: download - view: text, markup, annotated - select for diffs
Mon Aug 2 19:51:07 2004 UTC (9 years, 11 months ago) by dillon
Branches: MAIN
CVS tags: DragonFly_Snap13Sep2004
Diff to: previous 1.7: preferred, unified
Changes since revision 1.7: +0 -2 lines
Rip out the badly designed softint-based taskqueue used by ACPI for callbacks.
This was deadlocking tsleep() calls made from AcpiOsSleep() when early ACPI
interrupts occured, such as when a laptop is booted without AC connected.

Use a kernel thread and LWKT messaging to queue callbacks requests and add
code to use DELAY instead of tsleep() for calls made to AcpiOsSleep() in
early boot before the system timeout/ticks subsystem is initialized.

Fix two bugged AcpiOsSleep() calls that were sleeping for 10 seconds instead
of 10 milliseconds.

Revision 1.7: download - view: text, markup, annotated - select for diffs
Mon Aug 2 18:41:50 2004 UTC (9 years, 11 months ago) by dillon
Branches: MAIN
Diff to: previous 1.6: preferred, unified
Changes since revision 1.6: +1 -1 lines
Fix buggaboos that prevented ACPI_DEBUG from working.

Revision 1.6: download - view: text, markup, annotated - select for diffs
Mon Jul 5 00:07:35 2004 UTC (10 years ago) by dillon
Branches: MAIN
CVS tags: DragonFly_1_0_REL, DragonFly_1_0A_REL
Diff to: previous 1.5: preferred, unified
Changes since revision 1.5: +350 -130 lines
acpica5 update part 1/3:  Implement support for acpica-unix-20040527.

Submitted-by: YONETANI Tomokazu <qhwt+dragonfly-submit@les.ath.cx>

Revision 1.5: download - view: text, markup, annotated - select for diffs
Sun Jun 27 08:52:39 2004 UTC (10 years ago) by dillon
Branches: MAIN
CVS tags: DragonFly_1_0_RC1
Diff to: previous 1.4: preferred, unified
Changes since revision 1.4: +324 -184 lines
Bring in YONETANI Tomokazu's acpi-update-2.patch (27-May-2004), a major
update to acpica5 support in the system that fixes more issues that can
be counted on 12, er, 10 fingers.

Submitted-by: YONETANI Tomokazu <qhwt+dragonfly-bugs@les.ath.cx>

Revision 1.4: download - view: text, markup, annotated - select for diffs
Wed May 19 22:52:40 2004 UTC (10 years, 2 months ago) by dillon
Branches: MAIN
Diff to: previous 1.3: preferred, unified
Changes since revision 1.3: +1 -0 lines
Device layer rollup commit.

* cdevsw_add() is now required.  cdevsw_add() and cdevsw_remove() may specify
  a mask/match indicating the range of supported minor numbers.  Multiple
  cdevsw_add()'s using the same major number, but distinctly different
  ranges, may be issued.  All devices that failed to call cdevsw_add() before
  now do.

* cdevsw_remove() now automatically marks all devices within its supported
  range as being destroyed.

* vnode->v_rdev is no longer resolved when the vnode is created.  Instead,
  only v_udev (a newly added field) is resolved.  v_rdev is resolved when
  the vnode is opened and cleared on the last close.

* A great deal of code was making rather dubious assumptions with regards
  to the validity of devices associated with vnodes, primarily due to
  the persistence of a device structure due to being indexed by (major, minor)
  instead of by (cdevsw, major, minor).  In particular, if you run a program
  which connects to a USB device and then you pull the USB device and plug
  it back in, the vnode subsystem will continue to believe that the device
  is open when, in fact, it isn't (because it was destroyed and recreated).

  In particular, note that all the VFS mount procedures now check devices
  via v_udev instead of v_rdev prior to calling VOP_OPEN(), since v_rdev
  is NULL prior to the first open.

* The disk layer's device interaction has been rewritten.  The disk layer
  (i.e. the slice and disklabel management layer) no longer overloads
  its data onto the device structure representing the underlying physical
  disk.  Instead, the disk layer uses the new cdevsw_add() functionality
  to register its own cdevsw using the underlying device's major number,
  and simply does NOT register the underlying device's cdevsw.  No
  confusion is created because the device hash is now based on
  (cdevsw,major,minor) rather then (major,minor).

  NOTE: This also means that underlying raw disk devices may use the entire
  device minor number instead of having to reserve the bits used by the disk
  layer, and also means that can we (theoretically) stack a fully
  disklabel-supported 'disk' on top of any block device.

* The new reference counting scheme prevents this by associating a device
  with a cdevsw and disconnecting the device from its cdevsw when the cdevsw
  is removed.  Additionally, all udev2dev() lookups run through the cdevsw
  mask/match and only successfully find devices still associated with an
  active cdevsw.

* Major work on MFS:  MFS no longer shortcuts vnode and device creation.  It
  now creates a real vnode and a real device and implements real open and
  close VOPs.  Additionally, due to the disk layer changes, MFS is no longer
  limited to 255 mounts.  The new limit is 16 million.  Since MFS creates a
  real device node, mount_mfs will now create a real /dev/mfs<PID> device
  that can be read from userland (e.g. so you can dump an MFS filesystem).

* BUF AND DEVICE STRATEGY changes.  The struct buf contains a b_dev field.
  In order to properly handle stacked devices we now require that the b_dev
  field be initialized before the device strategy routine is called.  This
  required some additional work in various VFS implementations.  To enforce
  this requirement, biodone() now sets b_dev to NODEV.  The new disk layer
  will adjust b_dev before forwarding a request to the actual physical
  device.

* A bug in the ISO CD boot sequence which resulted in a panic has been fixed.

Testing by: lots of people, but David Rhodus found the most aggregious bugs.

Revision 1.3: download - view: text, markup, annotated - select for diffs
Thu May 13 23:49:14 2004 UTC (10 years, 2 months ago) by dillon
Branches: MAIN
Diff to: previous 1.2: preferred, unified
Changes since revision 1.2: +1 -1 lines
device switch 1/many: Remove d_autoq, add d_clone (where d_autoq was).

d_autoq was used to allow the device port dispatch to mix old-style synchronous
calls with new style messaging calls within a particular device.  It was never
used for that purpose.

d_clone will be more fully implemented as work continues.  We are going to
install d_port in the dev_t (struct specinfo) structure itself and d_clone
will be needed to allow devices to 'revector' the port on a minor-number
by minor-number basis, in particular allowing minor numbers to be directly
dispatched to distinct threads.  This is something we will be needing later
on.

Revision 1.2: download - view: text, markup, annotated - select for diffs
Wed May 5 22:19:24 2004 UTC (10 years, 2 months ago) by dillon
Branches: MAIN
Diff to: previous 1.1: preferred, unified
Changes since revision 1.1: +3 -6 lines
Use M_INTWAIT instead of M_NOWAIT for the rest of the acpica support code.
Also remove (now unneeded) NULL checks.

Revision 1.1: download - view: text, markup, annotated - select for diffs
Sat Feb 21 06:48:08 2004 UTC (10 years, 5 months ago) by dillon
Branches: MAIN
Bring in the FreeBSD-5 ACPICA code as a module.  Note: not hooked up yet,
still under development.  Also note that the original ACPICA code is being
left intact.

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