A pointer typedef entails trading too much flexibility to declare const trunk
authordyoung <dyoung@NetBSD.org>
Wed, 24 Feb 2010 22:37:54 +0000
branchtrunk
changeset 188354 df8e1696d397
parent 188353 338ba06b2373
child 188355 936bb38adb36
A pointer typedef entails trading too much flexibility to declare const and non-const types, and the kernel uses both const and non-const PMF qualifiers and device suspensors, so change the pmf_qual_t and device_suspensor_t typedefs from "pointers to const" to non-pointer, non-const types.
share/man/man9/pmf.9
sys/arch/i386/pci/elan520.c
sys/arch/i386/pci/piixpcib.c
sys/arch/mips/atheros/dev/if_ath_arbus.c
sys/arch/sparc/dev/fd.c
sys/arch/sparc64/dev/fdc.c
sys/arch/x86/pci/ichlpcib.c
sys/arch/x86/pci/pchb.c
sys/arch/x86/x86/cpu.c
sys/arch/x86/x86/x86_autoconf.c
sys/arch/xen/x86/cpu.c
sys/arch/zaurus/dev/zaudio.c
sys/arch/zaurus/dev/zkbd.c
sys/arch/zaurus/dev/zlcd.c
sys/arch/zaurus/dev/zssp.c
sys/arch/zaurus/dev/ztp.c
sys/dev/acpi/acpi.c
sys/dev/acpi/acpi_acad.c
sys/dev/acpi/acpi_bat.c
sys/dev/acpi/acpi_ec.c
sys/dev/acpi/acpi_lid.c
sys/dev/acpi/asus_acpi.c
sys/dev/acpi/dalb_acpi.c
sys/dev/acpi/hpqlb_acpi.c
sys/dev/acpi/sony_acpi.c
sys/dev/acpi/thinkpad_acpi.c
sys/dev/acpi/wmi_acpi.c
sys/dev/ata/ata.c
sys/dev/ata/wd.c
sys/dev/audio.c
sys/dev/cardbus/cardbus.c
sys/dev/cardbus/if_atw_cardbus.c
sys/dev/cardbus/if_rtw_cardbus.c
sys/dev/gpio/gpio.c
sys/dev/hpc/hpcfb.c
sys/dev/i2c/dbcool.c
sys/dev/i2c/dbcool_var.h
sys/dev/i2c/sdtemp.c
sys/dev/ic/aic79xx_osm.c
sys/dev/ic/aic7xxx_osm.c
sys/dev/ic/athvar.h
sys/dev/ic/atw.c
sys/dev/ic/atwvar.h
sys/dev/ic/bwi.c
sys/dev/ic/bwivar.h
sys/dev/ic/com.c
sys/dev/ic/comvar.h
sys/dev/ic/gem.c
sys/dev/ic/gemvar.h
sys/dev/ic/hpet.c
sys/dev/ic/ne2000.c
sys/dev/ic/ne2000var.h
sys/dev/ic/pckbc.c
sys/dev/ic/pckbcvar.h
sys/dev/ic/rtw.c
sys/dev/ic/rtwvar.h
sys/dev/ic/spic.c
sys/dev/ic/spicvar.h
sys/dev/isa/aps.c
sys/dev/isa/com_isa.c
sys/dev/isa/fd.c
sys/dev/isa/sbdsp.c
sys/dev/isa/ym.c
sys/dev/mii/mii_physubr.c
sys/dev/mii/miivar.h
sys/dev/mii/ukphy.c
sys/dev/pci/agp.c
sys/dev/pci/agp_i810.c
sys/dev/pci/agp_intel.c
sys/dev/pci/ahcisata_pci.c
sys/dev/pci/auacer.c
sys/dev/pci/auich.c
sys/dev/pci/auixp.c
sys/dev/pci/autri.c
sys/dev/pci/auvia.c
sys/dev/pci/azalia.c
sys/dev/pci/cs4280.c
sys/dev/pci/cs4281.c
sys/dev/pci/ehci_pci.c
sys/dev/pci/esa.c
sys/dev/pci/esm.c
sys/dev/pci/fwohci_pci.c
sys/dev/pci/gcscaudio.c
sys/dev/pci/hdaudio/hdaudio_afg.c
sys/dev/pci/hdaudio/hdaudio_pci.c
sys/dev/pci/if_age.c
sys/dev/pci/if_ath_pci.c
sys/dev/pci/if_atw_pci.c
sys/dev/pci/if_bce.c
sys/dev/pci/if_cas.c
sys/dev/pci/if_fxp_pci.c
sys/dev/pci/if_gem_pci.c
sys/dev/pci/if_iwn.c
sys/dev/pci/if_msk.c
sys/dev/pci/if_nfe.c
sys/dev/pci/if_rtw_pci.c
sys/dev/pci/if_sip.c
sys/dev/pci/if_sk.c
sys/dev/pci/if_vr.c
sys/dev/pci/if_wpi.c
sys/dev/pci/ixpide.c
sys/dev/pci/mvsata_pci.c
sys/dev/pci/neo.c
sys/dev/pci/pccbb.c
sys/dev/pci/pci.c
sys/dev/pci/piixide.c
sys/dev/pci/piixpm.c
sys/dev/pci/ppb.c
sys/dev/pci/siisata_pci.c
sys/dev/pci/uhci_pci.c
sys/dev/pci/vga_pci.c
sys/dev/pci/viaide.c
sys/dev/pci/yds.c
sys/dev/pckbport/pckbd.c
sys/dev/pckbport/pms.c
sys/dev/pcmcia/bt3c.c
sys/dev/pcmcia/btbc.c
sys/dev/sbus/dbri.c
sys/dev/sbus/p9100.c
sys/dev/scsipi/sd.c
sys/dev/sdmmc/sdhc.c
sys/dev/sdmmc/sdhcvar.h
sys/dev/usb/ehci.c
sys/dev/usb/ehcivar.h
sys/dev/usb/ohci.c
sys/dev/usb/ohcivar.h
sys/dev/usb/uhci.c
sys/dev/usb/uhcivar.h
sys/dev/wscons/wsdisplay.c
sys/dev/wscons/wskbd.c
sys/dev/wsfb/genfbvar.h
sys/external/bsd/drm/dist/bsd-core/i915_drv.c
sys/external/bsd/drm/dist/bsd-core/radeon_drv.c
sys/kern/kern_pmf.c
sys/kern/subr_autoconf.c
sys/sys/device.h
sys/sys/device_if.h
sys/sys/pmf.h
--- a/share/man/man9/pmf.9	Wed Feb 24 21:53:26 2010 +0000
+++ b/share/man/man9/pmf.9	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-.\" $NetBSD: pmf.9,v 1.16 2010/01/26 22:35:11 jruoho Exp $
+.\" $NetBSD: pmf.9,v 1.17 2010/02/24 22:37:54 dyoung Exp $
 .\"
 .\" Copyright (c) 2007 Jared D. McNeill <jmcneill@invisible.ca>
 .\" All rights reserved.
@@ -52,21 +52,21 @@
 .Sh SYNOPSIS
 .In sys/device.h
 .Ft bool
-.Fn pmf_device_register "device_t dev" "bool (*suspend)(device_t dev, pmf_qual_t qual)" "bool (*resume)(device_t dev, pmf_qual_t qual)"
+.Fn pmf_device_register "device_t dev" "bool (*suspend)(device_t dev, const pmf_qual_t *qual)" "bool (*resume)(device_t dev, const pmf_qual_t *qual)"
 .Ft bool
-.Fn pmf_device_register1 "device_t dev" "bool (*suspend)(device_t dev, pmf_qual_t qual)" "bool (*resume)(device_t dev, pmf_qual_t qual)" "bool (*shutdown)(device_t dev, int how)"
+.Fn pmf_device_register1 "device_t dev" "bool (*suspend)(device_t dev, const pmf_qual_t *qual)" "bool (*resume)(device_t dev, const pmf_qual_t *qual)" "bool (*shutdown)(device_t dev, int how)"
 .Ft void
 .Fn pmf_device_deregister "device_t dev"
 .Ft bool
-.Fn pmf_device_suspend "device_t dev" "pmf_qual_t qual"
+.Fn pmf_device_suspend "device_t dev" "const pmf_qual_t *qual"
 .Ft bool
-.Fn pmf_device_resume "device_t dev" "pmf_qual_t qual"
+.Fn pmf_device_resume "device_t dev" "const pmf_qual_t *qual"
 .Ft bool
-.Fn pmf_device_recursive_suspend "device_t dev" "pmf_qual_t qual"
+.Fn pmf_device_recursive_suspend "device_t dev" "const pmf_qual_t *qual"
 .Ft bool
-.Fn pmf_device_recursive_resume "device_t dev" "pmf_qual_t qual"
+.Fn pmf_device_recursive_resume "device_t dev" "const pmf_qual_t *qual"
 .Ft bool
-.Fn pmf_device_subtree_resume "device_t dev" "pmf_qual_t qual"
+.Fn pmf_device_subtree_resume "device_t dev" "const pmf_qual_t *qual"
 .Ft void
 .Fn pmf_class_network_register "device_t dev" "struct ifnet *ifp"
 .Ft bool
@@ -74,9 +74,9 @@
 .Ft bool
 .Fn pmf_class_display_register "device_t dev"
 .Ft bool
-.Fn pmf_system_suspend "pmf_qual_t qual"
+.Fn pmf_system_suspend "const pmf_qual_t *qual"
 .Ft bool
-.Fn pmf_system_resume "pmf_qual_t qual"
+.Fn pmf_system_resume "const pmf_qual_t *qual"
 .Ft void
 .Fn pmf_system_shutdown "int"
 .Ft bool
--- a/sys/arch/i386/pci/elan520.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/arch/i386/pci/elan520.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: elan520.c,v 1.46 2010/01/08 19:45:28 dyoung Exp $	*/
+/*	$NetBSD: elan520.c,v 1.47 2010/02/24 22:37:55 dyoung Exp $	*/
 
 /*-
  * Copyright (c) 2002 The NetBSD Foundation, Inc.
@@ -40,7 +40,7 @@
 
 #include <sys/cdefs.h>
 
-__KERNEL_RCSID(0, "$NetBSD: elan520.c,v 1.46 2010/01/08 19:45:28 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: elan520.c,v 1.47 2010/02/24 22:37:55 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -847,7 +847,7 @@
 }
 
 static bool
-elansc_suspend(device_t dev, pmf_qual_t qual)
+elansc_suspend(device_t dev, const pmf_qual_t *qual)
 {
 	bool rc;
 	struct elansc_softc *sc = device_private(dev);
@@ -861,7 +861,7 @@
 }
 
 static bool
-elansc_resume(device_t dev, pmf_qual_t qual)
+elansc_resume(device_t dev, const pmf_qual_t *qual)
 {
 	struct elansc_softc *sc = device_private(dev);
 
@@ -947,7 +947,7 @@
 }
 
 static bool
-elanpex_resume(device_t self, pmf_qual_t qual)
+elanpex_resume(device_t self, const pmf_qual_t *qual)
 {
 	struct elansc_softc *sc = device_private(device_parent(self));
 
@@ -956,7 +956,7 @@
 }
 
 static bool
-elanpex_suspend(device_t self, pmf_qual_t qual)
+elanpex_suspend(device_t self, const pmf_qual_t *qual)
 {
 	struct elansc_softc *sc = device_private(device_parent(self));
 
@@ -966,7 +966,7 @@
 }
 
 static bool
-elanpar_resume(device_t self, pmf_qual_t qual)
+elanpar_resume(device_t self, const pmf_qual_t *qual)
 {
 	struct elansc_softc *sc = device_private(device_parent(self));
 
@@ -975,7 +975,7 @@
 }
 
 static bool
-elanpar_suspend(device_t self, pmf_qual_t qual)
+elanpar_suspend(device_t self, const pmf_qual_t *qual)
 {
 	struct elansc_softc *sc = device_private(device_parent(self));
 
--- a/sys/arch/i386/pci/piixpcib.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/arch/i386/pci/piixpcib.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: piixpcib.c,v 1.17 2010/01/08 19:45:28 dyoung Exp $ */
+/* $NetBSD: piixpcib.c,v 1.18 2010/02/24 22:37:55 dyoung Exp $ */
 
 /*-
  * Copyright (c) 2004, 2006 The NetBSD Foundation, Inc.
@@ -36,7 +36,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: piixpcib.c,v 1.17 2010/01/08 19:45:28 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: piixpcib.c,v 1.18 2010/02/24 22:37:55 dyoung Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -79,8 +79,8 @@
 static int piixpcibmatch(device_t, cfdata_t, void *);
 static void piixpcibattach(device_t, device_t, void *);
 
-static bool piixpcib_suspend(device_t, pmf_qual_t);
-static bool piixpcib_resume(device_t, pmf_qual_t);
+static bool piixpcib_suspend(device_t, const pmf_qual_t *);
+static bool piixpcib_resume(device_t, const pmf_qual_t *);
 
 static void speedstep_configure(struct piixpcib_softc *,
 				struct pci_attach_args *);
@@ -144,7 +144,7 @@
 }
 
 static bool
-piixpcib_suspend(device_t dv, pmf_qual_t qual)
+piixpcib_suspend(device_t dv, const pmf_qual_t *qual)
 {
 	struct piixpcib_softc *sc = device_private(dv);
 
@@ -160,7 +160,7 @@
 }
 
 static bool
-piixpcib_resume(device_t dv, pmf_qual_t qual)
+piixpcib_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct piixpcib_softc *sc = device_private(dv);
 
--- a/sys/arch/mips/atheros/dev/if_ath_arbus.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/arch/mips/atheros/dev/if_ath_arbus.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: if_ath_arbus.c,v 1.17 2010/01/08 19:49:13 dyoung Exp $ */
+/* $NetBSD: if_ath_arbus.c,v 1.18 2010/02/24 22:37:55 dyoung Exp $ */
 
 /*-
  * Copyright (c) 2006 Jared D. McNeill <jmcneill@invisible.ca>
@@ -34,7 +34,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_ath_arbus.c,v 1.17 2010/01/08 19:49:13 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_ath_arbus.c,v 1.18 2010/02/24 22:37:55 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -96,7 +96,7 @@
 }
 
 static bool
-ath_arbus_resume(device_t dv, pmf_qual_t qual)
+ath_arbus_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct ath_arbus_softc *asc = device_private(dv);
 	ath_resume(&asc->sc_ath);
--- a/sys/arch/sparc/dev/fd.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/arch/sparc/dev/fd.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: fd.c,v 1.148 2010/01/08 19:49:13 dyoung Exp $	*/
+/*	$NetBSD: fd.c,v 1.149 2010/02/24 22:37:55 dyoung Exp $	*/
 
 /*-
  * Copyright (c) 2000 The NetBSD Foundation, Inc.
@@ -101,7 +101,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: fd.c,v 1.148 2010/01/08 19:49:13 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: fd.c,v 1.149 2010/02/24 22:37:55 dyoung Exp $");
 
 #include "opt_ddb.h"
 #include "opt_md.h"
@@ -292,7 +292,7 @@
 int	fdmatch(struct device *, struct cfdata *, void *);
 void	fdattach(struct device *, struct device *, void *);
 bool	fdshutdown(device_t, int);
-bool	fdsuspend(device_t, pmf_qual_t);
+bool	fdsuspend(device_t, const pmf_qual_t *);
 
 CFATTACH_DECL(fd, sizeof(struct fd_softc),
     fdmatch, fdattach, NULL, NULL);
@@ -809,7 +809,7 @@
 	return true;
 }
 
-bool fdsuspend(device_t self, pmf_qual_t qual)
+bool fdsuspend(device_t self, const pmf_qual_t *qual)
 {
 
 	return fdshutdown(self, boothowto);
--- a/sys/arch/sparc64/dev/fdc.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/arch/sparc64/dev/fdc.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: fdc.c,v 1.32 2010/01/08 19:49:14 dyoung Exp $	*/
+/*	$NetBSD: fdc.c,v 1.33 2010/02/24 22:37:55 dyoung Exp $	*/
 
 /*-
  * Copyright (c) 2000 The NetBSD Foundation, Inc.
@@ -101,7 +101,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: fdc.c,v 1.32 2010/01/08 19:49:14 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: fdc.c,v 1.33 2010/02/24 22:37:55 dyoung Exp $");
 
 #include "opt_ddb.h"
 #include "opt_md.h"
@@ -324,7 +324,7 @@
 int	fdmatch(struct device *, struct cfdata *, void *);
 void	fdattach(struct device *, struct device *, void *);
 bool	fdshutdown(device_t, int);
-bool	fdsuspend(device_t, pmf_qual_t);
+bool	fdsuspend(device_t, const pmf_qual_t *);
 
 CFATTACH_DECL(fd, sizeof(struct fd_softc),
     fdmatch, fdattach, NULL, NULL);
@@ -979,7 +979,7 @@
 	return true;
 }
 
-bool fdsuspend(device_t self, pmf_qual_t qual)
+bool fdsuspend(device_t self, const pmf_qual_t *qual)
 {
 
 	return fdshutdown(self, boothowto);
--- a/sys/arch/x86/pci/ichlpcib.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/arch/x86/pci/ichlpcib.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: ichlpcib.c,v 1.23 2010/01/08 19:43:26 dyoung Exp $	*/
+/*	$NetBSD: ichlpcib.c,v 1.24 2010/02/24 22:37:55 dyoung Exp $	*/
 
 /*-
  * Copyright (c) 2004 The NetBSD Foundation, Inc.
@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ichlpcib.c,v 1.23 2010/01/08 19:43:26 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ichlpcib.c,v 1.24 2010/02/24 22:37:55 dyoung Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -123,8 +123,8 @@
 static int lpcibdetach(device_t, int);
 static void lpcibchilddet(device_t, device_t);
 static int lpcibrescan(device_t, const char *, const int *);
-static bool lpcib_suspend(device_t, pmf_qual_t);
-static bool lpcib_resume(device_t, pmf_qual_t);
+static bool lpcib_suspend(device_t, const pmf_qual_t *);
+static bool lpcib_resume(device_t, const pmf_qual_t *);
 static bool lpcib_shutdown(device_t, int);
 
 static void pmtimer_configure(device_t);
@@ -414,7 +414,7 @@
 }
 
 static bool
-lpcib_suspend(device_t dv, pmf_qual_t qual)
+lpcib_suspend(device_t dv, const pmf_qual_t *qual)
 {
 	struct lpcib_softc *sc = device_private(dv);
 	pci_chipset_tag_t pc = sc->sc_pcib.sc_pc;
@@ -443,7 +443,7 @@
 }
 
 static bool
-lpcib_resume(device_t dv, pmf_qual_t qual)
+lpcib_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct lpcib_softc *sc = device_private(dv);
 	pci_chipset_tag_t pc = sc->sc_pcib.sc_pc;
--- a/sys/arch/x86/pci/pchb.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/arch/x86/pci/pchb.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: pchb.c,v 1.20 2010/01/08 19:43:26 dyoung Exp $ */
+/*	$NetBSD: pchb.c,v 1.21 2010/02/24 22:37:55 dyoung Exp $ */
 
 /*-
  * Copyright (c) 1996, 1998, 2000 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pchb.c,v 1.20 2010/01/08 19:43:26 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pchb.c,v 1.21 2010/02/24 22:37:55 dyoung Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -75,8 +75,8 @@
 void	pchbattach(device_t, device_t, void *);
 int	pchbdetach(device_t, int);
 
-static bool	pchb_resume(device_t, pmf_qual_t);
-static bool	pchb_suspend(device_t, pmf_qual_t);
+static bool	pchb_resume(device_t, const pmf_qual_t *);
+static bool	pchb_suspend(device_t, const pmf_qual_t *);
 
 CFATTACH_DECL3_NEW(pchb, sizeof(struct pchb_softc),
     pchbmatch, pchbattach, pchbdetach, NULL, NULL, NULL, DVF_DETACH_SHUTDOWN);
@@ -461,7 +461,7 @@
 }
 
 static bool
-pchb_suspend(device_t dv, pmf_qual_t qual)
+pchb_suspend(device_t dv, const pmf_qual_t *qual)
 {
 	struct pchb_softc *sc = device_private(dv);
 	pci_chipset_tag_t pc;
@@ -478,7 +478,7 @@
 }
 
 static bool
-pchb_resume(device_t dv, pmf_qual_t qual)
+pchb_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct pchb_softc *sc = device_private(dv);
 	pci_chipset_tag_t pc;
--- a/sys/arch/x86/x86/cpu.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/arch/x86/x86/cpu.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: cpu.c,v 1.68 2010/02/09 23:52:13 jym Exp $	*/
+/*	$NetBSD: cpu.c,v 1.69 2010/02/24 22:37:55 dyoung Exp $	*/
 
 /*-
  * Copyright (c) 2000, 2006, 2007, 2008 The NetBSD Foundation, Inc.
@@ -62,7 +62,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.68 2010/02/09 23:52:13 jym Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.69 2010/02/24 22:37:55 dyoung Exp $");
 
 #include "opt_ddb.h"
 #include "opt_mpbios.h"		/* for MPDEBUG */
@@ -120,8 +120,8 @@
 int     cpu_match(device_t, cfdata_t, void *);
 void    cpu_attach(device_t, device_t, void *);
 
-static bool	cpu_suspend(device_t, pmf_qual_t);
-static bool	cpu_resume(device_t, pmf_qual_t);
+static bool	cpu_suspend(device_t, const pmf_qual_t *);
+static bool	cpu_resume(device_t, const pmf_qual_t *);
 
 struct cpu_softc {
 	device_t sc_dev;		/* device tree glue */
@@ -996,7 +996,7 @@
 
 /* XXX joerg restructure and restart CPUs individually */
 static bool
-cpu_suspend(device_t dv, pmf_qual_t qual)
+cpu_suspend(device_t dv, const pmf_qual_t *qual)
 {
 	struct cpu_softc *sc = device_private(dv);
 	struct cpu_info *ci = sc->sc_info;
@@ -1024,7 +1024,7 @@
 }
 
 static bool
-cpu_resume(device_t dv, pmf_qual_t qual)
+cpu_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct cpu_softc *sc = device_private(dv);
 	struct cpu_info *ci = sc->sc_info;
--- a/sys/arch/x86/x86/x86_autoconf.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/arch/x86/x86/x86_autoconf.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: x86_autoconf.c,v 1.49 2010/01/31 00:43:37 hubertf Exp $	*/
+/*	$NetBSD: x86_autoconf.c,v 1.50 2010/02/24 22:37:55 dyoung Exp $	*/
 
 /*-
  * Copyright (c) 1990 The Regents of the University of California.
@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: x86_autoconf.c,v 1.49 2010/01/31 00:43:37 hubertf Exp $");
+__KERNEL_RCSID(0, "$NetBSD: x86_autoconf.c,v 1.50 2010/02/24 22:37:55 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -94,13 +94,13 @@
 }
 
 static bool
-x86_genfb_suspend(device_t dev, pmf_qual_t qual)
+x86_genfb_suspend(device_t dev, const pmf_qual_t *qual)
 {
 	return true;
 }
 
 static bool
-x86_genfb_resume(device_t dev, pmf_qual_t qual)
+x86_genfb_resume(device_t dev, const pmf_qual_t *qual)
 {
 #if NGENFB > 0
 	struct pci_genfb_softc *psc = device_private(dev);
--- a/sys/arch/xen/x86/cpu.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/arch/xen/x86/cpu.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: cpu.c,v 1.40 2010/01/08 19:43:26 dyoung Exp $	*/
+/*	$NetBSD: cpu.c,v 1.41 2010/02/24 22:37:55 dyoung Exp $	*/
 /* NetBSD: cpu.c,v 1.18 2004/02/20 17:35:01 yamt Exp  */
 
 /*-
@@ -66,7 +66,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.40 2010/01/08 19:43:26 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cpu.c,v 1.41 2010/02/24 22:37:55 dyoung Exp $");
 
 #include "opt_ddb.h"
 #include "opt_multiprocessor.h"
@@ -1024,7 +1024,7 @@
 #if 0
 /* XXX joerg restructure and restart CPUs individually */
 static bool
-cpu_suspend(device_t dv, pmf_qual_t qual)
+cpu_suspend(device_t dv, const pmf_qual_t *qual)
 {
 	struct cpu_softc *sc = device_private(dv);
 	struct cpu_info *ci = sc->sc_info;
@@ -1052,7 +1052,7 @@
 }
 
 static bool
-cpu_resume(device_t dv, pmf_qual_t qual)
+cpu_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct cpu_softc *sc = device_private(dv);
 	struct cpu_info *ci = sc->sc_info;
--- a/sys/arch/zaurus/dev/zaudio.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/arch/zaurus/dev/zaudio.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: zaudio.c,v 1.11 2010/01/08 19:42:11 dyoung Exp $	*/
+/*	$NetBSD: zaudio.c,v 1.12 2010/02/24 22:37:56 dyoung Exp $	*/
 /*	$OpenBSD: zaurus_audio.c,v 1.8 2005/08/18 13:23:02 robert Exp $	*/
 
 /*
@@ -49,7 +49,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: zaudio.c,v 1.11 2010/01/08 19:42:11 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: zaudio.c,v 1.12 2010/02/24 22:37:56 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -84,8 +84,8 @@
 
 static int	zaudio_match(device_t, cfdata_t, void *);
 static void	zaudio_attach(device_t, device_t, void *);
-static bool	zaudio_suspend(device_t dv, pmf_qual_t);
-static bool	zaudio_resume(device_t dv, pmf_qual_t);
+static bool	zaudio_suspend(device_t dv, const pmf_qual_t *);
+static bool	zaudio_resume(device_t dv, const pmf_qual_t *);
 
 #define ZAUDIO_OP_SPKR	0
 #define ZAUDIO_OP_HP	1
@@ -369,7 +369,7 @@
 }
 
 static bool
-zaudio_suspend(device_t dv, pmf_qual_t qual)
+zaudio_suspend(device_t dv, const pmf_qual_t *qual)
 {
 	struct zaudio_softc *sc = device_private(dv);
 
@@ -380,7 +380,7 @@
 }
 
 static bool
-zaudio_resume(device_t dv, pmf_qual_t qual)
+zaudio_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct zaudio_softc *sc = device_private(dv);
 
--- a/sys/arch/zaurus/dev/zkbd.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/arch/zaurus/dev/zkbd.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: zkbd.c,v 1.10 2010/01/08 19:42:11 dyoung Exp $	*/
+/*	$NetBSD: zkbd.c,v 1.11 2010/02/24 22:37:56 dyoung Exp $	*/
 /* $OpenBSD: zaurus_kbd.c,v 1.28 2005/12/21 20:36:03 deraadt Exp $ */
 
 /*
@@ -18,7 +18,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: zkbd.c,v 1.10 2010/01/08 19:42:11 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: zkbd.c,v 1.11 2010/02/24 22:37:56 dyoung Exp $");
 
 #include "opt_wsdisplay_compat.h"
 #include "lcd.h"
@@ -131,7 +131,7 @@
 static int	zkbd_on(void *v);
 static int	zkbd_sync(void *v);
 static int	zkbd_hinge(void *v);
-static bool	zkbd_resume(device_t dv, pmf_qual_t);
+static bool	zkbd_resume(device_t dv, const pmf_qual_t *);
 
 int zkbd_modstate;
 
@@ -594,7 +594,7 @@
 }
 
 static bool
-zkbd_resume(device_t dv, pmf_qual_t qual)
+zkbd_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct zkbd_softc *sc = device_private(dv);
 
--- a/sys/arch/zaurus/dev/zlcd.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/arch/zaurus/dev/zlcd.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: zlcd.c,v 1.10 2010/01/08 19:42:11 dyoung Exp $	*/
+/*	$NetBSD: zlcd.c,v 1.11 2010/02/24 22:37:56 dyoung Exp $	*/
 /*	$OpenBSD: zaurus_lcd.c,v 1.20 2006/06/02 20:50:14 miod Exp $	*/
 /* NetBSD: lubbock_lcd.c,v 1.1 2003/08/09 19:38:53 bsh Exp */
 
@@ -43,7 +43,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: zlcd.c,v 1.10 2010/01/08 19:42:11 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: zlcd.c,v 1.11 2010/02/24 22:37:56 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -154,8 +154,8 @@
 CFATTACH_DECL_NEW(zlcd, sizeof(struct pxa2x0_lcd_softc),
 	lcd_match, lcd_attach, NULL, NULL);
 
-static bool	lcd_suspend(device_t dv, pmf_qual_t);
-static bool	lcd_resume(device_t dv, pmf_qual_t);
+static bool	lcd_suspend(device_t dv, const pmf_qual_t *);
+static bool	lcd_resume(device_t dv, const pmf_qual_t *);
 
 void	lcd_cnattach(void);
 int	lcd_max_brightness(void);
@@ -208,7 +208,7 @@
  * power management
  */
 static bool
-lcd_suspend(device_t dv, pmf_qual_t qual)
+lcd_suspend(device_t dv, const pmf_qual_t *qual)
 {
 	struct pxa2x0_lcd_softc *sc = device_private(dv);
 
@@ -219,7 +219,7 @@
 }
 
 static bool
-lcd_resume(device_t dv, pmf_qual_t qual)
+lcd_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct pxa2x0_lcd_softc *sc = device_private(dv);
 
--- a/sys/arch/zaurus/dev/zssp.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/arch/zaurus/dev/zssp.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: zssp.c,v 1.8 2010/01/08 19:42:11 dyoung Exp $	*/
+/*	$NetBSD: zssp.c,v 1.9 2010/02/24 22:37:56 dyoung Exp $	*/
 /*	$OpenBSD: zaurus_ssp.c,v 1.6 2005/04/08 21:58:49 uwe Exp $	*/
 
 /*
@@ -18,7 +18,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: zssp.c,v 1.8 2010/01/08 19:42:11 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: zssp.c,v 1.9 2010/02/24 22:37:56 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -54,7 +54,7 @@
 	zssp_match, zssp_attach, NULL, NULL);
 
 static void	zssp_init(void);
-static bool	zssp_resume(device_t dv, pmf_qual_t);
+static bool	zssp_resume(device_t dv, const pmf_qual_t *);
 
 static struct zssp_softc *zssp_sc;
 
@@ -116,7 +116,7 @@
 }
 
 static bool
-zssp_resume(device_t dv, pmf_qual_t qual)
+zssp_resume(device_t dv, const pmf_qual_t *qual)
 {
 	int s;
 
--- a/sys/arch/zaurus/dev/ztp.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/arch/zaurus/dev/ztp.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: ztp.c,v 1.9 2010/01/08 19:42:11 dyoung Exp $	*/
+/*	$NetBSD: ztp.c,v 1.10 2010/02/24 22:37:56 dyoung Exp $	*/
 /* $OpenBSD: zts.c,v 1.9 2005/04/24 18:55:49 uwe Exp $ */
 
 /*
@@ -18,7 +18,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ztp.c,v 1.9 2010/01/08 19:42:11 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ztp.c,v 1.10 2010/02/24 22:37:56 dyoung Exp $");
 
 #include "lcd.h"
 
@@ -116,8 +116,8 @@
 
 static int	ztp_enable(void *);
 static void	ztp_disable(void *);
-static bool	ztp_suspend(device_t dv, pmf_qual_t);
-static bool	ztp_resume(device_t dv, pmf_qual_t);
+static bool	ztp_suspend(device_t dv, const pmf_qual_t *);
+static bool	ztp_resume(device_t dv, const pmf_qual_t *);
 static void	ztp_poll(void *);
 static int	ztp_irq(void *);
 static int	ztp_ioctl(void *, u_long, void *, int, struct lwp *);
@@ -237,7 +237,7 @@
 }
 
 static bool
-ztp_suspend(device_t dv, pmf_qual_t qual)
+ztp_suspend(device_t dv, const pmf_qual_t *qual)
 {
 	struct ztp_softc *sc = device_private(dv);
 
@@ -258,7 +258,7 @@
 }
 
 static bool
-ztp_resume(device_t dv, pmf_qual_t qual)
+ztp_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct ztp_softc *sc = device_private(dv);
 
--- a/sys/dev/acpi/acpi.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/acpi/acpi.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: acpi.c,v 1.148 2010/01/31 11:26:20 jruoho Exp $	*/
+/*	$NetBSD: acpi.c,v 1.149 2010/02/24 22:37:56 dyoung Exp $	*/
 
 /*-
  * Copyright (c) 2003, 2007 The NetBSD Foundation, Inc.
@@ -70,7 +70,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: acpi.c,v 1.148 2010/01/31 11:26:20 jruoho Exp $");
+__KERNEL_RCSID(0, "$NetBSD: acpi.c,v 1.149 2010/02/24 22:37:56 dyoung Exp $");
 
 #include "opt_acpi.h"
 #include "opt_pcifixup.h"
@@ -201,8 +201,8 @@
 static void		acpi_unmap_rsdt(ACPI_TABLE_HEADER *);
 static int		is_available_state(struct acpi_softc *, int);
 
-static bool		acpi_suspend(device_t, pmf_qual_t);
-static bool		acpi_resume(device_t, pmf_qual_t);
+static bool		acpi_suspend(device_t, const pmf_qual_t *);
+static bool		acpi_resume(device_t, const pmf_qual_t *);
 
 /*
  * acpi_probe:
@@ -628,14 +628,14 @@
 }
 
 static bool
-acpi_suspend(device_t dv, pmf_qual_t qual)
+acpi_suspend(device_t dv, const pmf_qual_t *qual)
 {
 	acpi_suspended = 1;
 	return true;
 }
 
 static bool
-acpi_resume(device_t dv, pmf_qual_t qual)
+acpi_resume(device_t dv, const pmf_qual_t *qual)
 {
 	acpi_suspended = 0;
 	return true;
--- a/sys/dev/acpi/acpi_acad.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/acpi/acpi_acad.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: acpi_acad.c,v 1.39 2010/01/31 11:16:18 jruoho Exp $	*/
+/*	$NetBSD: acpi_acad.c,v 1.40 2010/02/24 22:37:56 dyoung Exp $	*/
 
 /*
  * Copyright 2001 Wasabi Systems, Inc.
@@ -40,7 +40,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: acpi_acad.c,v 1.39 2010/01/31 11:16:18 jruoho Exp $");
+__KERNEL_RCSID(0, "$NetBSD: acpi_acad.c,v 1.40 2010/02/24 22:37:56 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -73,7 +73,7 @@
 static int	acpiacad_match(device_t, cfdata_t, void *);
 static void	acpiacad_attach(device_t, device_t, void *);
 static int	acpiacad_detach(device_t, int);
-static bool	acpiacad_resume(device_t, pmf_qual_t);
+static bool	acpiacad_resume(device_t, const pmf_qual_t *);
 static void	acpiacad_get_status(void *);
 static void	acpiacad_notify_handler(ACPI_HANDLE, uint32_t, void *);
 static void	acpiacad_init_envsys(device_t);
@@ -165,7 +165,7 @@
  * 	Queue a new status check.
  */
 static bool
-acpiacad_resume(device_t dv, pmf_qual_t qual)
+acpiacad_resume(device_t dv, const pmf_qual_t *qual)
 {
 
 	(void)AcpiOsExecute(OSL_NOTIFY_HANDLER, acpiacad_get_status, dv);
--- a/sys/dev/acpi/acpi_bat.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/acpi/acpi_bat.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: acpi_bat.c,v 1.81 2010/01/31 06:45:09 jruoho Exp $	*/
+/*	$NetBSD: acpi_bat.c,v 1.82 2010/02/24 22:37:56 dyoung Exp $	*/
 
 /*-
  * Copyright (c) 2003 The NetBSD Foundation, Inc.
@@ -75,7 +75,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: acpi_bat.c,v 1.81 2010/01/31 06:45:09 jruoho Exp $");
+__KERNEL_RCSID(0, "$NetBSD: acpi_bat.c,v 1.82 2010/02/24 22:37:56 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -199,7 +199,7 @@
 static void         acpibat_init_envsys(device_t);
 static void         acpibat_notify_handler(ACPI_HANDLE, UINT32, void *);
 static void         acpibat_refresh(struct sysmon_envsys *, envsys_data_t *);
-static bool	    acpibat_resume(device_t, pmf_qual_t);
+static bool	    acpibat_resume(device_t, const pmf_qual_t *);
 
 CFATTACH_DECL_NEW(acpibat, sizeof(struct acpibat_softc),
     acpibat_match, acpibat_attach, acpibat_detach, NULL);
@@ -774,7 +774,7 @@
 }
 
 static bool
-acpibat_resume(device_t dv, pmf_qual_t qual)
+acpibat_resume(device_t dv, const pmf_qual_t *qual)
 {
 
 	(void)AcpiOsExecute(OSL_NOTIFY_HANDLER, acpibat_update_info, dv);
--- a/sys/dev/acpi/acpi_ec.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/acpi/acpi_ec.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: acpi_ec.c,v 1.59 2010/01/18 18:36:49 jruoho Exp $	*/
+/*	$NetBSD: acpi_ec.c,v 1.60 2010/02/24 22:37:56 dyoung Exp $	*/
 
 /*-
  * Copyright (c) 2007 Joerg Sonnenberger <joerg@NetBSD.org>.
@@ -59,7 +59,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: acpi_ec.c,v 1.59 2010/01/18 18:36:49 jruoho Exp $");
+__KERNEL_RCSID(0, "$NetBSD: acpi_ec.c,v 1.60 2010/02/24 22:37:56 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -152,8 +152,8 @@
 static void acpiec_common_attach(device_t, device_t, ACPI_HANDLE,
     bus_addr_t, bus_addr_t, ACPI_HANDLE, uint8_t);
 
-static bool acpiec_suspend(device_t, pmf_qual_t);
-static bool acpiec_resume(device_t, pmf_qual_t);
+static bool acpiec_suspend(device_t, const pmf_qual_t *);
+static bool acpiec_resume(device_t, const pmf_qual_t *);
 static bool acpiec_shutdown(device_t, int);
 
 static bool acpiec_parse_gpe_package(device_t, ACPI_HANDLE,
@@ -399,7 +399,7 @@
 }
 
 static bool
-acpiec_suspend(device_t dv, pmf_qual_t qual)
+acpiec_suspend(device_t dv, const pmf_qual_t *qual)
 {
 	acpiec_cold = true;
 
@@ -407,7 +407,7 @@
 }
 
 static bool
-acpiec_resume(device_t dv, pmf_qual_t qual)
+acpiec_resume(device_t dv, const pmf_qual_t *qual)
 {
 	acpiec_cold = false;
 
--- a/sys/dev/acpi/acpi_lid.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/acpi/acpi_lid.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: acpi_lid.c,v 1.32 2010/01/30 18:35:48 jruoho Exp $	*/
+/*	$NetBSD: acpi_lid.c,v 1.33 2010/02/24 22:37:56 dyoung Exp $	*/
 
 /*
  * Copyright 2001, 2003 Wasabi Systems, Inc.
@@ -40,7 +40,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: acpi_lid.c,v 1.32 2010/01/30 18:35:48 jruoho Exp $");
+__KERNEL_RCSID(0, "$NetBSD: acpi_lid.c,v 1.33 2010/02/24 22:37:56 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -76,7 +76,7 @@
 static void	acpilid_notify_handler(ACPI_HANDLE, UINT32, void *);
 
 static void	acpilid_wake_event(device_t, bool);
-static bool	acpilid_suspend(device_t, pmf_qual_t);
+static bool	acpilid_suspend(device_t, const pmf_qual_t *);
 
 /*
  * acpilid_match:
@@ -246,7 +246,7 @@
 }
 
 static bool
-acpilid_suspend(device_t dv, pmf_qual_t qual)
+acpilid_suspend(device_t dv, const pmf_qual_t *qual)
 {
 	struct acpilid_softc *sc = device_private(dv);
 	ACPI_INTEGER status;
--- a/sys/dev/acpi/asus_acpi.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/acpi/asus_acpi.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: asus_acpi.c,v 1.16 2010/01/31 18:51:33 jruoho Exp $ */
+/* $NetBSD: asus_acpi.c,v 1.17 2010/02/24 22:37:56 dyoung Exp $ */
 
 /*-
  * Copyright (c) 2007, 2008, 2009 Jared D. McNeill <jmcneill@invisible.ca>
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: asus_acpi.c,v 1.16 2010/01/31 18:51:33 jruoho Exp $");
+__KERNEL_RCSID(0, "$NetBSD: asus_acpi.c,v 1.17 2010/02/24 22:37:56 dyoung Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -97,8 +97,8 @@
 static void	asus_notify_handler(ACPI_HANDLE, UINT32, void *);
 
 static void	asus_init(device_t);
-static bool	asus_suspend(device_t, pmf_qual_t);
-static bool	asus_resume(device_t, pmf_qual_t);
+static bool	asus_suspend(device_t, const pmf_qual_t *);
+static bool	asus_resume(device_t, const pmf_qual_t *);
 
 static void	asus_sysctl_setup(struct asus_softc *);
 
@@ -268,7 +268,7 @@
 }
 
 static bool
-asus_suspend(device_t self, pmf_qual_t qual)
+asus_suspend(device_t self, const pmf_qual_t *qual)
 {
 	struct asus_softc *sc = device_private(self);
 	ACPI_INTEGER val = 0;
@@ -286,7 +286,7 @@
 }
 
 static bool
-asus_resume(device_t self, pmf_qual_t qual)
+asus_resume(device_t self, const pmf_qual_t *qual)
 {
 	struct asus_softc *sc = device_private(self);
 	ACPI_STATUS rv;
--- a/sys/dev/acpi/dalb_acpi.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/acpi/dalb_acpi.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: dalb_acpi.c,v 1.6 2010/01/31 19:49:29 jruoho Exp $	*/
+/*	$NetBSD: dalb_acpi.c,v 1.7 2010/02/24 22:37:56 dyoung Exp $	*/
 
 /*-
  * Copyright (c) 2008 Christoph Egger <cegger@netbsd.org>
@@ -27,7 +27,7 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: dalb_acpi.c,v 1.6 2010/01/31 19:49:29 jruoho Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dalb_acpi.c,v 1.7 2010/02/24 22:37:56 dyoung Exp $");
 
 /*
  * Direct Application Launch Button:
@@ -70,7 +70,7 @@
 static void	acpi_dalb_attach(device_t, device_t, void *);
 static int	acpi_dalb_detach(device_t, int);
 static void	acpi_dalb_notify_handler(ACPI_HANDLE, UINT32, void *);
-static bool	acpi_dalb_resume(device_t, pmf_qual_t);
+static bool	acpi_dalb_resume(device_t, const pmf_qual_t *);
 
 static void	acpi_dalb_get_wakeup_hotkeys(void *opaque);
 static void	acpi_dalb_get_runtime_hotkeys(void *opaque);
@@ -265,7 +265,7 @@
 }
 
 static bool
-acpi_dalb_resume(device_t dev, pmf_qual_t qual)
+acpi_dalb_resume(device_t dev, const pmf_qual_t *qual)
 {
 	struct acpi_dalb_softc *sc = device_private(dev);
 	ACPI_STATUS rv;
--- a/sys/dev/acpi/hpqlb_acpi.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/acpi/hpqlb_acpi.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: hpqlb_acpi.c,v 1.5 2010/01/30 18:35:49 jruoho Exp $ */
+/* $NetBSD: hpqlb_acpi.c,v 1.6 2010/02/24 22:37:56 dyoung Exp $ */
 
 /*-
  * Copyright (c) 2008  Christoph Egger <cegger@netbsd.org>
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: hpqlb_acpi.c,v 1.5 2010/01/30 18:35:49 jruoho Exp $");
+__KERNEL_RCSID(0, "$NetBSD: hpqlb_acpi.c,v 1.6 2010/02/24 22:37:56 dyoung Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -97,7 +97,7 @@
 static int hpqlb_hotkey_handler(struct wskbd_softc *, void *, u_int, int);
 
 static void hpqlb_init(device_t);
-static bool hpqlb_resume(device_t, pmf_qual_t);
+static bool hpqlb_resume(device_t, const pmf_qual_t *);
 
 CFATTACH_DECL_NEW(hpqlb, sizeof(struct hpqlb_softc),
     hpqlb_match, hpqlb_attach, NULL, NULL);
@@ -289,7 +289,7 @@
 }
 
 static bool
-hpqlb_resume(device_t self, pmf_qual_t qual)
+hpqlb_resume(device_t self, const pmf_qual_t *qual)
 {
 
 	hpqlb_init(self);
--- a/sys/dev/acpi/sony_acpi.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/acpi/sony_acpi.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: sony_acpi.c,v 1.12 2010/01/08 20:40:41 dyoung Exp $	*/
+/*	$NetBSD: sony_acpi.c,v 1.13 2010/02/24 22:37:56 dyoung Exp $	*/
 
 /*-
  * Copyright (c) 2005 The NetBSD Foundation, Inc.
@@ -29,7 +29,7 @@
  * POSSIBILITY OF SUCH DAMAGE.
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sony_acpi.c,v 1.12 2010/01/08 20:40:41 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sony_acpi.c,v 1.13 2010/02/24 22:37:56 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -92,8 +92,8 @@
     ACPI_INTEGER, ACPI_INTEGER *);
 static void	sony_acpi_quirk_setup(struct sony_acpi_softc *);
 static void	sony_acpi_notify_handler(ACPI_HANDLE, UINT32, void *);
-static bool	sony_acpi_suspend(device_t, pmf_qual_t);
-static bool	sony_acpi_resume(device_t, pmf_qual_t);
+static bool	sony_acpi_suspend(device_t, const pmf_qual_t *);
+static bool	sony_acpi_resume(device_t, const pmf_qual_t *);
 static void	sony_acpi_brightness_down(device_t);
 static void	sony_acpi_brightness_up(device_t);
 static ACPI_STATUS sony_acpi_find_pic(ACPI_HANDLE, UINT32, void *, void **);
@@ -392,7 +392,7 @@
 }
 
 static bool
-sony_acpi_suspend(device_t dv, pmf_qual_t qual)
+sony_acpi_suspend(device_t dv, const pmf_qual_t *qual)
 {
 	struct sony_acpi_softc *sc = device_private(dv);
 
@@ -402,7 +402,7 @@
 }
 
 static bool
-sony_acpi_resume(device_t dv, pmf_qual_t qual)
+sony_acpi_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct sony_acpi_softc *sc = device_private(dv);
 
--- a/sys/dev/acpi/thinkpad_acpi.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/acpi/thinkpad_acpi.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: thinkpad_acpi.c,v 1.25 2010/01/31 17:53:31 jruoho Exp $ */
+/* $NetBSD: thinkpad_acpi.c,v 1.26 2010/02/24 22:37:56 dyoung Exp $ */
 
 /*-
  * Copyright (c) 2007 Jared D. McNeill <jmcneill@invisible.ca>
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: thinkpad_acpi.c,v 1.25 2010/01/31 17:53:31 jruoho Exp $");
+__KERNEL_RCSID(0, "$NetBSD: thinkpad_acpi.c,v 1.26 2010/02/24 22:37:56 dyoung Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -129,7 +129,7 @@
 
 static void	thinkpad_wireless_toggle(thinkpad_softc_t *);
 
-static bool	thinkpad_resume(device_t, pmf_qual_t);
+static bool	thinkpad_resume(device_t, const pmf_qual_t *);
 static void	thinkpad_brightness_up(device_t);
 static void	thinkpad_brightness_down(device_t);
 static uint8_t	thinkpad_brightness_read(thinkpad_softc_t *sc);
@@ -657,7 +657,7 @@
 }
 
 static bool
-thinkpad_resume(device_t dv, pmf_qual_t qual)
+thinkpad_resume(device_t dv, const pmf_qual_t *qual)
 {
 	ACPI_STATUS rv;
 	ACPI_HANDLE pubs;
--- a/sys/dev/acpi/wmi_acpi.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/acpi/wmi_acpi.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: wmi_acpi.c,v 1.12 2010/01/31 20:38:11 jruoho Exp $	*/
+/*	$NetBSD: wmi_acpi.c,v 1.13 2010/02/24 22:37:56 dyoung Exp $	*/
 
 /*-
  * Copyright (c) 2009, 2010 Jukka Ruohonen <jruohonen@iki.fi>
@@ -27,7 +27,7 @@
  * SUCH DAMAGE.
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: wmi_acpi.c,v 1.12 2010/01/31 20:38:11 jruoho Exp $");
+__KERNEL_RCSID(0, "$NetBSD: wmi_acpi.c,v 1.13 2010/02/24 22:37:56 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -130,8 +130,8 @@
 static void        acpi_wmi_event_add(struct acpi_wmi_softc *);
 static void        acpi_wmi_event_del(struct acpi_wmi_softc *);
 static void        acpi_wmi_event_handler(ACPI_HANDLE, uint32_t, void *);
-static bool        acpi_wmi_suspend(device_t, pmf_qual_t);
-static bool        acpi_wmi_resume(device_t, pmf_qual_t);
+static bool        acpi_wmi_suspend(device_t, const pmf_qual_t *);
+static bool        acpi_wmi_resume(device_t, const pmf_qual_t *);
 static ACPI_STATUS acpi_wmi_enable(ACPI_HANDLE, const char *, bool, bool);
 static bool        acpi_wmi_input(struct wmi_t *, uint8_t, uint8_t);
 
@@ -542,7 +542,7 @@
  * disable (enable) these before suspending (resuming).
  */
 static bool
-acpi_wmi_suspend(device_t self, pmf_qual_t qual)
+acpi_wmi_suspend(device_t self, const pmf_qual_t *qual)
 {
 	struct acpi_wmi_softc *sc = device_private(self);
 
@@ -552,7 +552,7 @@
 }
 
 static bool
-acpi_wmi_resume(device_t self, pmf_qual_t qual)
+acpi_wmi_resume(device_t self, const pmf_qual_t *qual)
 {
 	struct acpi_wmi_softc *sc = device_private(self);
 
--- a/sys/dev/ata/ata.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/ata/ata.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: ata.c,v 1.111 2010/01/21 02:53:51 dyoung Exp $	*/
+/*	$NetBSD: ata.c,v 1.112 2010/02/24 22:37:56 dyoung Exp $	*/
 
 /*
  * Copyright (c) 1998, 2001 Manuel Bouyer.  All rights reserved.
@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ata.c,v 1.111 2010/01/21 02:53:51 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ata.c,v 1.112 2010/02/24 22:37:56 dyoung Exp $");
 
 #include "opt_ata.h"
 
@@ -106,8 +106,8 @@
 extern struct cfdriver atabus_cd;
 
 static void atabus_childdetached(device_t, device_t);
-static bool atabus_resume(device_t, pmf_qual_t);
-static bool atabus_suspend(device_t, pmf_qual_t);
+static bool atabus_resume(device_t, const pmf_qual_t *);
+static bool atabus_suspend(device_t, const pmf_qual_t *);
 static void atabusconfig_thread(void *);
 
 /*
@@ -1519,7 +1519,7 @@
 }
 
 static bool
-atabus_suspend(device_t dv, pmf_qual_t qual)
+atabus_suspend(device_t dv, const pmf_qual_t *qual)
 {
 	struct atabus_softc *sc = device_private(dv);
 	struct ata_channel *chp = sc->sc_chan;
@@ -1530,7 +1530,7 @@
 }
 
 static bool
-atabus_resume(device_t dv, pmf_qual_t qual)
+atabus_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct atabus_softc *sc = device_private(dv);
 	struct ata_channel *chp = sc->sc_chan;
--- a/sys/dev/ata/wd.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/ata/wd.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: wd.c,v 1.383 2010/01/23 18:54:53 bouyer Exp $ */
+/*	$NetBSD: wd.c,v 1.384 2010/02/24 22:37:57 dyoung Exp $ */
 
 /*
  * Copyright (c) 1998, 2001 Manuel Bouyer.  All rights reserved.
@@ -54,7 +54,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: wd.c,v 1.383 2010/01/23 18:54:53 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: wd.c,v 1.384 2010/02/24 22:37:57 dyoung Exp $");
 
 #include "opt_ata.h"
 
@@ -126,7 +126,7 @@
 void	wdperror(const struct wd_softc *);
 
 static int	wdlastclose(device_t);
-static bool	wd_suspend(device_t, pmf_qual_t);
+static bool	wd_suspend(device_t, const pmf_qual_t *);
 static int	wd_standby(struct wd_softc *, int);
 
 CFATTACH_DECL3_NEW(wd, sizeof(struct wd_softc),
@@ -394,7 +394,7 @@
 }
 
 static bool
-wd_suspend(device_t dv, pmf_qual_t qual)
+wd_suspend(device_t dv, const pmf_qual_t *qual)
 {
 	struct wd_softc *sc = device_private(dv);
 
--- a/sys/dev/audio.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/audio.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: audio.c,v 1.250 2010/01/08 20:05:15 dyoung Exp $	*/
+/*	$NetBSD: audio.c,v 1.251 2010/02/24 22:37:56 dyoung Exp $	*/
 
 /*
  * Copyright (c) 1991-1993 Regents of the University of California.
@@ -61,7 +61,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: audio.c,v 1.250 2010/01/08 20:05:15 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: audio.c,v 1.251 2010/02/24 22:37:56 dyoung Exp $");
 
 #include "audio.h"
 #if NAUDIO > 0
@@ -183,8 +183,8 @@
 static void	audio_activity(device_t, devactive_t);
 #endif
 
-static bool	audio_suspend(device_t dv, pmf_qual_t);
-static bool	audio_resume(device_t dv, pmf_qual_t);
+static bool	audio_suspend(device_t dv, const pmf_qual_t *);
+static bool	audio_resume(device_t dv, const pmf_qual_t *);
 static void	audio_volume_down(device_t);
 static void	audio_volume_up(device_t);
 static void	audio_volume_toggle(device_t);
@@ -4070,7 +4070,7 @@
 #endif
 
 static bool
-audio_suspend(device_t dv, pmf_qual_t qual)
+audio_suspend(device_t dv, const pmf_qual_t *qual)
 {
 	struct audio_softc *sc = device_private(dv);
 	const struct audio_hw_if *hwp = sc->hw_if;
@@ -4091,7 +4091,7 @@
 }
 
 static bool
-audio_resume(device_t dv, pmf_qual_t qual)
+audio_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct audio_softc *sc = device_private(dv);
 	int s;
--- a/sys/dev/cardbus/cardbus.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/cardbus/cardbus.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: cardbus.c,v 1.100 2010/02/23 19:28:00 dyoung Exp $	*/
+/*	$NetBSD: cardbus.c,v 1.101 2010/02/24 22:37:57 dyoung Exp $	*/
 
 /*
  * Copyright (c) 1997, 1998, 1999 and 2000
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cardbus.c,v 1.100 2010/02/23 19:28:00 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cardbus.c,v 1.101 2010/02/24 22:37:57 dyoung Exp $");
 
 #include "opt_cardbus.h"
 
@@ -1150,7 +1150,7 @@
 };
 
 static bool
-cardbus_child_suspend(device_t dv, pmf_qual_t qual)
+cardbus_child_suspend(device_t dv, const pmf_qual_t *qual)
 {
 	struct cardbus_child_power *priv = device_pmf_bus_private(dv);
 
@@ -1170,7 +1170,7 @@
 }
 
 static bool
-cardbus_child_resume(device_t dv, pmf_qual_t qual)
+cardbus_child_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct cardbus_child_power *priv = device_pmf_bus_private(dv);
 
--- a/sys/dev/cardbus/if_atw_cardbus.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/cardbus/if_atw_cardbus.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: if_atw_cardbus.c,v 1.29 2010/01/18 18:52:35 pooka Exp $ */
+/* $NetBSD: if_atw_cardbus.c,v 1.30 2010/02/24 22:37:57 dyoung Exp $ */
 
 /*-
  * Copyright (c) 1999, 2000, 2003 The NetBSD Foundation, Inc.
@@ -36,7 +36,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_atw_cardbus.c,v 1.29 2010/01/18 18:52:35 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_atw_cardbus.c,v 1.30 2010/02/24 22:37:57 dyoung Exp $");
 
 #include "opt_inet.h"
 
@@ -117,8 +117,8 @@
 
 static void	atw_cardbus_setup(struct atw_cardbus_softc *);
 
-static bool	atw_cardbus_suspend(device_t, pmf_qual_t);
-static bool	atw_cardbus_resume(device_t, pmf_qual_t);
+static bool	atw_cardbus_suspend(device_t, const pmf_qual_t *);
+static bool	atw_cardbus_resume(device_t, const pmf_qual_t *);
 
 static const struct atw_cardbus_product *atw_cardbus_lookup
    (const struct cardbus_attach_args *);
@@ -322,7 +322,7 @@
 }
 
 static bool
-atw_cardbus_resume(device_t self, pmf_qual_t qual)
+atw_cardbus_resume(device_t self, const pmf_qual_t *qual)
 {
 	struct atw_cardbus_softc *csc = device_private(self);
 	struct atw_softc *sc = &csc->sc_atw;
@@ -344,7 +344,7 @@
 }
 
 static bool
-atw_cardbus_suspend(device_t self, pmf_qual_t qual)
+atw_cardbus_suspend(device_t self, const pmf_qual_t *qual)
 {
 	struct atw_cardbus_softc *csc = device_private(self);
 	cardbus_devfunc_t ct = csc->sc_ct;
--- a/sys/dev/cardbus/if_rtw_cardbus.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/cardbus/if_rtw_cardbus.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: if_rtw_cardbus.c,v 1.34 2010/01/18 18:52:35 pooka Exp $ */
+/* $NetBSD: if_rtw_cardbus.c,v 1.35 2010/02/24 22:37:57 dyoung Exp $ */
 
 /*-
  * Copyright (c) 2004, 2005 David Young.  All rights reserved.
@@ -64,7 +64,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_rtw_cardbus.c,v 1.34 2010/01/18 18:52:35 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_rtw_cardbus.c,v 1.35 2010/02/24 22:37:57 dyoung Exp $");
 
 #include "opt_inet.h"
 
@@ -141,8 +141,8 @@
 
 void	rtw_cardbus_setup(struct rtw_cardbus_softc *);
 
-bool rtw_cardbus_resume(device_t, pmf_qual_t);
-bool rtw_cardbus_suspend(device_t, pmf_qual_t);
+bool rtw_cardbus_resume(device_t, const pmf_qual_t *);
+bool rtw_cardbus_suspend(device_t, const pmf_qual_t *);
 
 const struct rtw_cardbus_product *rtw_cardbus_lookup(
      const struct cardbus_attach_args *);
@@ -333,7 +333,7 @@
 }
 
 bool
-rtw_cardbus_resume(device_t self, pmf_qual_t qual)
+rtw_cardbus_resume(device_t self, const pmf_qual_t *qual)
 {
 	struct rtw_cardbus_softc *csc = device_private(self);
 	struct rtw_softc *sc = &csc->sc_rtw;
@@ -361,7 +361,7 @@
 }
 
 bool
-rtw_cardbus_suspend(device_t self, pmf_qual_t qual)
+rtw_cardbus_suspend(device_t self, const pmf_qual_t *qual)
 {
 	struct rtw_cardbus_softc *csc = device_private(self);
 	struct rtw_softc *sc = &csc->sc_rtw;
--- a/sys/dev/gpio/gpio.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/gpio/gpio.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: gpio.c,v 1.31 2010/01/24 12:25:20 mbalmer Exp $ */
+/* $NetBSD: gpio.c,v 1.32 2010/02/24 22:37:57 dyoung Exp $ */
 /*	$OpenBSD: gpio.c,v 1.6 2006/01/14 12:33:49 grange Exp $	*/
 
 /*
@@ -19,7 +19,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: gpio.c,v 1.31 2010/01/24 12:25:20 mbalmer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: gpio.c,v 1.32 2010/02/24 22:37:57 dyoung Exp $");
 
 /*
  * General Purpose Input/Output framework.
@@ -66,7 +66,7 @@
 void	gpio_attach(device_t, device_t, void *);
 int	gpio_rescan(device_t, const char *, const int *);
 void	gpio_childdetached(device_t, device_t);
-bool	gpio_resume(device_t, pmf_qual_t);
+bool	gpio_resume(device_t, const pmf_qual_t *);
 int	gpio_detach(device_t, int);
 int	gpio_search(device_t, cfdata_t, const int *, void *);
 int	gpio_print(void *, const char *);
@@ -108,7 +108,7 @@
 }
 
 bool
-gpio_resume(device_t self, pmf_qual_t qual)
+gpio_resume(device_t self, const pmf_qual_t *qual)
 {
 	struct gpio_softc *sc = device_private(self);
 	int pin;
--- a/sys/dev/hpc/hpcfb.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/hpc/hpcfb.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: hpcfb.c,v 1.52 2010/01/08 20:05:16 dyoung Exp $	*/
+/*	$NetBSD: hpcfb.c,v 1.53 2010/02/24 22:37:57 dyoung Exp $	*/
 
 /*-
  * Copyright (c) 1999
@@ -43,7 +43,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: hpcfb.c,v 1.52 2010/01/08 20:05:16 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: hpcfb.c,v 1.53 2010/02/24 22:37:57 dyoung Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_hpcfb.h"
@@ -198,8 +198,8 @@
 		    struct hpcfb_devconfig *);
 
 static void	hpcfb_power(int, void *);
-static bool	hpcfb_suspend(device_t, pmf_qual_t);
-static bool	hpcfb_resume(device_t, pmf_qual_t);
+static bool	hpcfb_suspend(device_t, const pmf_qual_t *);
+static bool	hpcfb_resume(device_t, const pmf_qual_t *);
 
 
 void    hpcfb_cursor(void *, int, int, int);
@@ -671,7 +671,7 @@
 }
 
 static bool
-hpcfb_suspend(device_t self, pmf_qual_t qual)
+hpcfb_suspend(device_t self, const pmf_qual_t *qual)
 {
 	struct hpcfb_softc *sc = device_private(self);
 
@@ -680,7 +680,7 @@
 }
 
 static bool
-hpcfb_resume(device_t self, pmf_qual_t qual)
+hpcfb_resume(device_t self, const pmf_qual_t *qual)
 {
 	struct hpcfb_softc *sc = device_private(self);
 
--- a/sys/dev/i2c/dbcool.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/i2c/dbcool.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: dbcool.c,v 1.14 2010/01/08 20:04:31 dyoung Exp $ */
+/*	$NetBSD: dbcool.c,v 1.15 2010/02/24 22:37:57 dyoung Exp $ */
 
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -49,7 +49,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: dbcool.c,v 1.14 2010/01/08 20:04:31 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dbcool.c,v 1.15 2010/02/24 22:37:57 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -648,7 +648,7 @@
 }
 
 /* On suspend, we save the state of the SHDN bit, then set it */
-bool dbcool_pmf_suspend(device_t dev, pmf_qual_t qual)
+bool dbcool_pmf_suspend(device_t dev, const pmf_qual_t *qual)
 {
 	struct dbcool_softc *sc = device_private(dev);
 	uint8_t reg, bit, cfg;
@@ -672,7 +672,7 @@
 }
 
 /* On resume, we restore the previous state of the SHDN bit */
-bool dbcool_pmf_resume(device_t dev, pmf_qual_t qual)
+bool dbcool_pmf_resume(device_t dev, const pmf_qual_t *qual)
 {
 	struct dbcool_softc *sc = device_private(dev);
 	uint8_t reg, bit, cfg;
--- a/sys/dev/i2c/dbcool_var.h	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/i2c/dbcool_var.h	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: dbcool_var.h,v 1.7 2010/01/08 20:04:31 dyoung Exp $ */
+/*	$NetBSD: dbcool_var.h,v 1.8 2010/02/24 22:37:57 dyoung Exp $ */
 
 /*-
  * Copyright (c) 2008 The NetBSD Foundation, Inc.
@@ -41,7 +41,7 @@
 */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: dbcool_var.h,v 1.7 2010/01/08 20:04:31 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dbcool_var.h,v 1.8 2010/02/24 22:37:57 dyoung Exp $");
 
 #include <dev/i2c/i2cvar.h>
 
@@ -147,7 +147,7 @@
 void dbcool_writereg(struct dbcool_chipset *, uint8_t, uint8_t);
 void dbcool_setup(device_t); 
 int dbcool_chip_ident(struct dbcool_chipset *);
-bool dbcool_pmf_suspend(device_t, pmf_qual_t);
-bool dbcool_pmf_resume(device_t, pmf_qual_t);
+bool dbcool_pmf_suspend(device_t, const pmf_qual_t *);
+bool dbcool_pmf_resume(device_t, const pmf_qual_t *);
 
 #endif	/* def DBCOOLVAR_H */
--- a/sys/dev/i2c/sdtemp.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/i2c/sdtemp.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*      $NetBSD: sdtemp.c,v 1.10 2010/02/14 23:07:22 pgoyette Exp $        */
+/*      $NetBSD: sdtemp.c,v 1.11 2010/02/24 22:37:57 dyoung Exp $        */
 
 /*
  * Copyright (c) 2009 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sdtemp.c,v 1.10 2010/02/14 23:07:22 pgoyette Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sdtemp.c,v 1.11 2010/02/24 22:37:57 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -73,8 +73,8 @@
 static int	sdtemp_read_16(struct sdtemp_softc *, uint8_t, uint16_t *);
 static int	sdtemp_write_16(struct sdtemp_softc *, uint8_t, uint16_t);
 static uint32_t	sdtemp_decode_temp(struct sdtemp_softc *, uint16_t);
-static bool	sdtemp_pmf_suspend(device_t, pmf_qual_t);
-static bool	sdtemp_pmf_resume(device_t, pmf_qual_t);
+static bool	sdtemp_pmf_suspend(device_t, const pmf_qual_t *);
+static bool	sdtemp_pmf_resume(device_t, const pmf_qual_t *);
 
 struct sdtemp_dev_entry {
 	const uint16_t sdtemp_mfg_id;
@@ -483,7 +483,7 @@
  */
 
 static bool
-sdtemp_pmf_suspend(device_t dev, pmf_qual_t qual)
+sdtemp_pmf_suspend(device_t dev, const pmf_qual_t *qual)
 {
 	struct sdtemp_softc *sc = device_private(dev);
 	int error;
@@ -500,7 +500,7 @@
 }
 
 static bool
-sdtemp_pmf_resume(device_t dev, pmf_qual_t qual)
+sdtemp_pmf_resume(device_t dev, const pmf_qual_t *qual)
 {
 	struct sdtemp_softc *sc = device_private(dev);
 	int error;
--- a/sys/dev/ic/aic79xx_osm.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/ic/aic79xx_osm.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: aic79xx_osm.c,v 1.30 2010/01/08 20:02:39 dyoung Exp $	*/
+/*	$NetBSD: aic79xx_osm.c,v 1.31 2010/02/24 22:37:57 dyoung Exp $	*/
 
 /*
  * Bus independent NetBSD shim for the aic7xxx based adaptec SCSI controllers
@@ -41,7 +41,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: aic79xx_osm.c,v 1.30 2010/01/08 20:02:39 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: aic79xx_osm.c,v 1.31 2010/02/24 22:37:57 dyoung Exp $");
 
 #include <dev/ic/aic79xx_osm.h>
 #include <dev/ic/aic79xx_inline.h>
@@ -64,8 +64,8 @@
 static void	ahd_set_recoveryscb(struct ahd_softc *ahd, struct scb *scb);
 #endif
 
-static bool	ahd_pmf_suspend(device_t, pmf_qual_t);
-static bool	ahd_pmf_resume(device_t, pmf_qual_t);
+static bool	ahd_pmf_suspend(device_t, const pmf_qual_t *);
+static bool	ahd_pmf_resume(device_t, const pmf_qual_t *);
 static bool	ahd_pmf_shutdown(device_t, int);
 
 /*
@@ -118,7 +118,7 @@
 }
 
 static bool
-ahd_pmf_suspend(device_t dev, pmf_qual_t qual)
+ahd_pmf_suspend(device_t dev, const pmf_qual_t *qual)
 {
 	struct ahd_softc *sc = device_private(dev);
 #if 0
@@ -130,7 +130,7 @@
 }
 
 static bool
-ahd_pmf_resume(device_t dev, pmf_qual_t qual)
+ahd_pmf_resume(device_t dev, const pmf_qual_t *qual)
 {
 #if 0
 	struct ahd_softc *sc = device_private(dev);
--- a/sys/dev/ic/aic7xxx_osm.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/ic/aic7xxx_osm.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: aic7xxx_osm.c,v 1.36 2010/01/08 20:02:39 dyoung Exp $	*/
+/*	$NetBSD: aic7xxx_osm.c,v 1.37 2010/02/24 22:37:57 dyoung Exp $	*/
 
 /*
  * Bus independent FreeBSD shim for the aic7xxx based adaptec SCSI controllers
@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: aic7xxx_osm.c,v 1.36 2010/01/08 20:02:39 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: aic7xxx_osm.c,v 1.37 2010/02/24 22:37:57 dyoung Exp $");
 
 #include <dev/ic/aic7xxx_osm.h>
 #include <dev/ic/aic7xxx_inline.h>
@@ -60,8 +60,8 @@
 static int	ahc_ioctl(struct scsipi_channel *channel, u_long cmd,
 			  void *addr, int flag, struct proc *p);
 
-static bool	ahc_pmf_suspend(device_t, pmf_qual_t);
-static bool	ahc_pmf_resume(device_t, pmf_qual_t);
+static bool	ahc_pmf_suspend(device_t, const pmf_qual_t *);
+static bool	ahc_pmf_resume(device_t, const pmf_qual_t *);
 static bool	ahc_pmf_shutdown(device_t, int);
 
 
@@ -144,7 +144,7 @@
  */
 
 static bool
-ahc_pmf_suspend(device_t dev, pmf_qual_t qual)
+ahc_pmf_suspend(device_t dev, const pmf_qual_t *qual)
 {
 	struct ahc_softc *sc = device_private(dev);
 #if 0
@@ -156,7 +156,7 @@
 }
 
 static bool
-ahc_pmf_resume(device_t dev, pmf_qual_t qual)
+ahc_pmf_resume(device_t dev, const pmf_qual_t *qual)
 {
 #if 0
 	struct ahc_softc *sc = device_private(dev);
--- a/sys/dev/ic/athvar.h	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/ic/athvar.h	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: athvar.h,v 1.30 2010/01/17 19:45:06 pooka Exp $	*/
+/*	$NetBSD: athvar.h,v 1.31 2010/02/24 22:37:57 dyoung Exp $	*/
 
 /*-
  * Copyright (c) 2002-2005 Sam Leffler, Errno Consulting
@@ -176,7 +176,7 @@
 struct ath_softc {
 	device_t 		sc_dev;
 	struct device_suspensor	sc_suspensor;
-	struct pmf_qual		sc_qual;
+	pmf_qual_t		sc_qual;
 	struct ethercom		sc_ec;		/* interface common */
 	struct ath_stats	sc_stats;	/* interface statistics */
 	struct ieee80211com	sc_ic;		/* IEEE 802.11 common */
--- a/sys/dev/ic/atw.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/ic/atw.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: atw.c,v 1.149 2010/01/19 22:06:24 pooka Exp $  */
+/*	$NetBSD: atw.c,v 1.150 2010/02/24 22:37:58 dyoung Exp $  */
 
 /*-
  * Copyright (c) 1998, 1999, 2000, 2002, 2003, 2004 The NetBSD Foundation, Inc.
@@ -34,7 +34,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: atw.c,v 1.149 2010/01/19 22:06:24 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: atw.c,v 1.150 2010/02/24 22:37:58 dyoung Exp $");
 
 
 #include <sys/param.h>
@@ -318,7 +318,7 @@
 }
 
 bool
-atw_suspend(device_t self, pmf_qual_t qual)
+atw_suspend(device_t self, const pmf_qual_t *qual)
 {
 	struct atw_softc *sc = device_private(self);
 
--- a/sys/dev/ic/atwvar.h	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/ic/atwvar.h	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: atwvar.h,v 1.35 2010/01/17 19:45:06 pooka Exp $	*/
+/*	$NetBSD: atwvar.h,v 1.36 2010/02/24 22:37:58 dyoung Exp $	*/
 
 /*
  * Copyright (c) 2003, 2004 The NetBSD Foundation, Inc.  All rights reserved.
@@ -168,8 +168,8 @@
 
 struct atw_softc {
 	device_t		sc_dev;
-	struct device_suspensor		sc_suspensor;
-	struct pmf_qual			sc_qual;
+	struct device_suspensor	sc_suspensor;
+	pmf_qual_t		sc_qual;
 
 	struct ethercom		sc_ec;
 	struct ieee80211com	sc_ic;
@@ -448,6 +448,6 @@
 int	atw_activate(device_t, enum devact);
 int	atw_intr(void *arg);
 bool	atw_shutdown(device_t, int);
-bool	atw_suspend(device_t, pmf_qual_t);
+bool	atw_suspend(device_t, const pmf_qual_t *);
 
 #endif /* _DEV_IC_ATWVAR_H_ */
--- a/sys/dev/ic/bwi.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/ic/bwi.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: bwi.c,v 1.13 2010/01/19 22:06:24 pooka Exp $	*/
+/*	$NetBSD: bwi.c,v 1.14 2010/02/24 22:37:58 dyoung Exp $	*/
 /*	$OpenBSD: bwi.c,v 1.74 2008/02/25 21:13:30 mglocker Exp $	*/
 
 /*
@@ -48,7 +48,7 @@
 
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: bwi.c,v 1.13 2010/01/19 22:06:24 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: bwi.c,v 1.14 2010/02/24 22:37:58 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/callout.h>
@@ -9714,7 +9714,7 @@
 }
 
 bool
-bwi_suspend(device_t dv, pmf_qual_t qual)
+bwi_suspend(device_t dv, const pmf_qual_t *qual)
 {
 	struct bwi_softc *sc = device_private(dv);
 
@@ -9724,7 +9724,7 @@
 }
 
 bool
-bwi_resume(device_t dv, pmf_qual_t qual)
+bwi_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct bwi_softc *sc = device_private(dv);
 
--- a/sys/dev/ic/bwivar.h	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/ic/bwivar.h	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: bwivar.h,v 1.6 2010/01/19 22:06:24 pooka Exp $	*/
+/*	$NetBSD: bwivar.h,v 1.7 2010/02/24 22:37:58 dyoung Exp $	*/
 /*	$OpenBSD: bwivar.h,v 1.23 2008/02/25 20:36:54 mglocker Exp $	*/
 
 /*
@@ -790,7 +790,7 @@
 void		bwi_detach(struct bwi_softc *);
 
 /* Power Management Framework */
-bool		bwi_suspend(device_t, pmf_qual_t);
-bool		bwi_resume(device_t, pmf_qual_t);
+bool		bwi_suspend(device_t, const pmf_qual_t *);
+bool		bwi_resume(device_t, const pmf_qual_t *);
 
 #endif	/* !_DEV_IC_BWIVAR_H */
--- a/sys/dev/ic/com.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/ic/com.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: com.c,v 1.294 2010/01/09 14:15:48 tsutsui Exp $ */
+/* $NetBSD: com.c,v 1.295 2010/02/24 22:37:58 dyoung Exp $ */
 
 /*-
  * Copyright (c) 1998, 1999, 2004, 2008 The NetBSD Foundation, Inc.
@@ -66,7 +66,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: com.c,v 1.294 2010/01/09 14:15:48 tsutsui Exp $");
+__KERNEL_RCSID(0, "$NetBSD: com.c,v 1.295 2010/02/24 22:37:58 dyoung Exp $");
 
 #include "opt_com.h"
 #include "opt_ddb.h"
@@ -2404,7 +2404,7 @@
 }
 
 bool
-com_suspend(device_t self, pmf_qual_t qual)
+com_suspend(device_t self, const pmf_qual_t *qual)
 {
 	struct com_softc *sc = device_private(self);
 
@@ -2420,7 +2420,7 @@
 }
 
 bool
-com_resume(device_t self, pmf_qual_t qual)
+com_resume(device_t self, const pmf_qual_t *qual)
 {
 	struct com_softc *sc = device_private(self);
 
--- a/sys/dev/ic/comvar.h	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/ic/comvar.h	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: comvar.h,v 1.69 2010/01/08 20:02:39 dyoung Exp $	*/
+/*	$NetBSD: comvar.h,v 1.70 2010/02/24 22:37:58 dyoung Exp $	*/
 
 /*
  * Copyright (c) 1996 Christopher G. Demetriou.  All rights reserved.
@@ -237,9 +237,9 @@
 void com_attach_subr(struct com_softc *);
 int com_probe_subr(struct com_regs *);
 int com_detach(device_t, int);
-bool com_resume(device_t, pmf_qual_t);
+bool com_resume(device_t, const pmf_qual_t *);
 bool com_cleanup(device_t, int);
-bool com_suspend(device_t, pmf_qual_t);
+bool com_suspend(device_t, const pmf_qual_t *);
 
 #ifndef IPL_SERIAL
 #define	IPL_SERIAL	IPL_TTY
--- a/sys/dev/ic/gem.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/ic/gem.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: gem.c,v 1.92 2010/01/19 22:06:24 pooka Exp $ */
+/*	$NetBSD: gem.c,v 1.93 2010/02/24 22:37:58 dyoung Exp $ */
 
 /*
  *
@@ -37,7 +37,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: gem.c,v 1.92 2010/01/19 22:06:24 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: gem.c,v 1.93 2010/02/24 22:37:58 dyoung Exp $");
 
 #include "opt_inet.h"
 
@@ -2599,7 +2599,7 @@
 }
 
 bool
-gem_resume(device_t self, pmf_qual_t qual)
+gem_resume(device_t self, const pmf_qual_t *qual)
 {
 	struct gem_softc *sc = device_private(self);
 
@@ -2609,7 +2609,7 @@
 }
 
 bool
-gem_suspend(device_t self, pmf_qual_t qual)
+gem_suspend(device_t self, const pmf_qual_t *qual)
 {
 	struct gem_softc *sc = device_private(self);
 	bus_space_tag_t t = sc->sc_bustag;
--- a/sys/dev/ic/gemvar.h	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/ic/gemvar.h	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: gemvar.h,v 1.20 2010/01/08 20:02:39 dyoung Exp $ */
+/*	$NetBSD: gemvar.h,v 1.21 2010/02/24 22:37:58 dyoung Exp $ */
 
 /*
  *
@@ -308,8 +308,8 @@
 
 #ifdef _KERNEL
 bool	gem_shutdown(device_t, int);
-bool	gem_suspend(device_t, pmf_qual_t);
-bool	gem_resume(device_t, pmf_qual_t);
+bool	gem_suspend(device_t, const pmf_qual_t *);
+bool	gem_resume(device_t, const pmf_qual_t *);
 void	gem_attach(struct gem_softc *, const uint8_t *);
 int	gem_intr(void *);
 int	gem_detach(struct gem_softc *, int);
--- a/sys/dev/ic/hpet.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/ic/hpet.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: hpet.c,v 1.9 2010/01/08 20:02:39 dyoung Exp $ */
+/* $NetBSD: hpet.c,v 1.10 2010/02/24 22:37:58 dyoung Exp $ */
 
 /*
  * Copyright (c) 2006 Nicolas Joly
@@ -33,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: hpet.c,v 1.9 2010/01/08 20:02:39 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: hpet.c,v 1.10 2010/02/24 22:37:58 dyoung Exp $");
 
 #include <sys/systm.h>
 #include <sys/device.h>
@@ -48,7 +48,7 @@
 #include <dev/ic/hpetvar.h>
 
 static u_int	hpet_get_timecount(struct timecounter *);
-static bool	hpet_resume(device_t, pmf_qual_t);
+static bool	hpet_resume(device_t, const pmf_qual_t *);
 
 int
 hpet_detach(device_t dv, int flags)
@@ -113,7 +113,7 @@
 }
 
 static bool
-hpet_resume(device_t dv, pmf_qual_t qual)
+hpet_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct hpet_softc *sc = device_private(dv);
 	uint32_t val;
--- a/sys/dev/ic/ne2000.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/ic/ne2000.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: ne2000.c,v 1.66 2010/02/24 15:18:15 tsutsui Exp $	*/
+/*	$NetBSD: ne2000.c,v 1.67 2010/02/24 22:37:58 dyoung Exp $	*/
 
 /*-
  * Copyright (c) 1997, 1998 The NetBSD Foundation, Inc.
@@ -48,7 +48,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ne2000.c,v 1.66 2010/02/24 15:18:15 tsutsui Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ne2000.c,v 1.67 2010/02/24 22:37:58 dyoung Exp $");
 
 #include "opt_ipkdb.h"
 
@@ -909,7 +909,7 @@
 #endif
 
 bool
-ne2000_suspend(device_t self, pmf_qual_t qual)
+ne2000_suspend(device_t self, const pmf_qual_t *qual)
 {
 	struct ne2000_softc *sc = device_private(self);
 	struct dp8390_softc *dsc = &sc->sc_dp8390;
@@ -925,7 +925,7 @@
 }
 
 bool
-ne2000_resume(device_t self, pmf_qual_t qual)
+ne2000_resume(device_t self, const pmf_qual_t *qual)
 {
 	struct ne2000_softc *sc = device_private(self);
 	struct dp8390_softc *dsc = &sc->sc_dp8390;
--- a/sys/dev/ic/ne2000var.h	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/ic/ne2000var.h	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: ne2000var.h,v 1.23 2010/01/08 20:02:39 dyoung Exp $	*/
+/*	$NetBSD: ne2000var.h,v 1.24 2010/02/24 22:37:58 dyoung Exp $	*/
 
 /*-
  * Copyright (c) 1997, 1998 The NetBSD Foundation, Inc.
@@ -66,7 +66,7 @@
 #endif
 
 /* pmf(9) */
-bool ne2000_suspend(device_t, pmf_qual_t);
-bool ne2000_resume(device_t, pmf_qual_t);
+bool ne2000_suspend(device_t, const pmf_qual_t *);
+bool ne2000_resume(device_t, const pmf_qual_t *);
 
 #endif /* _DEV_IC_NE2000VAR_H_ */
--- a/sys/dev/ic/pckbc.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/ic/pckbc.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: pckbc.c,v 1.47 2010/01/08 20:02:39 dyoung Exp $ */
+/* $NetBSD: pckbc.c,v 1.48 2010/02/24 22:37:58 dyoung Exp $ */
 
 /*
  * Copyright (c) 2004 Ben Harris.
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pckbc.c,v 1.47 2010/01/08 20:02:39 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pckbc.c,v 1.48 2010/02/24 22:37:58 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -680,7 +680,7 @@
 }
 
 bool
-pckbc_resume(device_t dv, pmf_qual_t qual)
+pckbc_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct pckbc_softc *sc = device_private(dv);
 	struct pckbc_internal *t;
--- a/sys/dev/ic/pckbcvar.h	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/ic/pckbcvar.h	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: pckbcvar.h,v 1.16 2010/01/08 20:02:39 dyoung Exp $ */
+/* $NetBSD: pckbcvar.h,v 1.17 2010/02/24 22:37:58 dyoung Exp $ */
 
 /*
  * Copyright (c) 1998
@@ -112,6 +112,6 @@
 int pckbc_machdep_cnattach(pckbc_tag_t, pckbc_slot_t);
 
 /* power management */
-bool pckbc_resume(device_t, pmf_qual_t);
+bool pckbc_resume(device_t, const pmf_qual_t *);
 
 #endif /* _DEV_IC_PCKBCVAR_H_ */
--- a/sys/dev/ic/rtw.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/ic/rtw.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: rtw.c,v 1.113 2010/01/31 18:12:51 dyoung Exp $ */
+/* $NetBSD: rtw.c,v 1.114 2010/02/24 22:37:58 dyoung Exp $ */
 /*-
  * Copyright (c) 2004, 2005, 2006, 2007 David Young.  All rights
  * reserved.
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: rtw.c,v 1.113 2010/01/31 18:12:51 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: rtw.c,v 1.114 2010/02/24 22:37:58 dyoung Exp $");
 
 
 #include <sys/param.h>
@@ -2488,7 +2488,7 @@
 }
 
 bool
-rtw_suspend(device_t self, pmf_qual_t qual)
+rtw_suspend(device_t self, const pmf_qual_t *qual)
 {
 	int rc;
 	struct rtw_softc *sc = device_private(self);
@@ -2510,7 +2510,7 @@
 }
 
 bool
-rtw_resume(device_t self, pmf_qual_t qual)
+rtw_resume(device_t self, const pmf_qual_t *qual)
 {
 	struct rtw_softc *sc = device_private(self);
 
--- a/sys/dev/ic/rtwvar.h	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/ic/rtwvar.h	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: rtwvar.h,v 1.41 2010/01/17 19:45:06 pooka Exp $ */
+/* $NetBSD: rtwvar.h,v 1.42 2010/02/24 22:37:58 dyoung Exp $ */
 /*-
  * Copyright (c) 2004, 2005 David Young.  All rights reserved.
  *
@@ -415,8 +415,8 @@
 
 struct rtw_softc {
 	device_t		sc_dev;
-	struct device_suspensor	sc_suspensor;
-	struct pmf_qual		sc_qual;
+	device_suspensor_t	sc_suspensor;
+	pmf_qual_t		sc_qual;
 
 	struct ethercom		sc_ec;
 	struct ieee80211com	sc_ic;
@@ -502,8 +502,8 @@
 int rtw_detach(struct rtw_softc *);
 int rtw_intr(void *);
 
-bool rtw_suspend(device_t, pmf_qual_t);
-bool rtw_resume(device_t, pmf_qual_t);
+bool rtw_suspend(device_t, const pmf_qual_t *);
+bool rtw_resume(device_t, const pmf_qual_t *);
 
 int rtw_activate(device_t, enum devact);
 
--- a/sys/dev/ic/spic.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/ic/spic.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: spic.c,v 1.16 2010/01/08 20:02:39 dyoung Exp $	*/
+/*	$NetBSD: spic.c,v 1.17 2010/02/24 22:37:58 dyoung Exp $	*/
 
 /*
  * Copyright (c) 2002 The NetBSD Foundation, Inc.
@@ -49,7 +49,7 @@
 
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: spic.c,v 1.16 2010/01/08 20:02:39 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: spic.c,v 1.17 2010/02/24 22:37:58 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -290,7 +290,7 @@
 }
 
 bool
-spic_suspend(device_t dev, pmf_qual_t qual)
+spic_suspend(device_t dev, const pmf_qual_t *qual)
 {
 	struct spic_softc *sc = device_private(dev);
 
@@ -300,7 +300,7 @@
 }
 
 bool
-spic_resume(device_t dev, pmf_qual_t qual)
+spic_resume(device_t dev, const pmf_qual_t *qual)
 {
 	struct spic_softc *sc = device_private(dev);
 
--- a/sys/dev/ic/spicvar.h	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/ic/spicvar.h	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: spicvar.h,v 1.6 2010/01/08 20:02:39 dyoung Exp $ */
+/* $NetBSD: spicvar.h,v 1.7 2010/02/24 22:37:58 dyoung Exp $ */
 
 #include <dev/sysmon/sysmonvar.h>
 
@@ -23,7 +23,7 @@
 };
 
 void spic_attach(struct spic_softc *);
-bool spic_suspend(device_t, pmf_qual_t);
-bool spic_resume(device_t, pmf_qual_t);
+bool spic_suspend(device_t, const pmf_qual_t *);
+bool spic_resume(device_t, const pmf_qual_t *);
 
 int spic_intr(void *);
--- a/sys/dev/isa/aps.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/isa/aps.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: aps.c,v 1.9 2010/01/08 20:00:03 dyoung Exp $	*/
+/*	$NetBSD: aps.c,v 1.10 2010/02/24 22:37:58 dyoung Exp $	*/
 /*	$OpenBSD: aps.c,v 1.15 2007/05/19 19:14:11 tedu Exp $	*/
 
 /*
@@ -23,7 +23,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: aps.c,v 1.9 2010/01/08 20:00:03 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: aps.c,v 1.10 2010/02/24 22:37:58 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -112,8 +112,8 @@
 			       int, uint8_t);
 static void 	aps_refresh_sensor_data(struct aps_softc *sc);
 static void 	aps_refresh(void *);
-static bool 	aps_suspend(device_t, pmf_qual_t);
-static bool 	aps_resume(device_t, pmf_qual_t);
+static bool 	aps_suspend(device_t, const pmf_qual_t *);
+static bool 	aps_resume(device_t, const pmf_qual_t *);
 
 CFATTACH_DECL_NEW(aps, sizeof(struct aps_softc),
 	      aps_match, aps_attach, aps_detach, NULL);
@@ -401,7 +401,7 @@
 }
 
 static bool
-aps_suspend(device_t dv, pmf_qual_t qual)
+aps_suspend(device_t dv, const pmf_qual_t *qual)
 {
 	struct aps_softc *sc = device_private(dv);
 
@@ -411,7 +411,7 @@
 }
 
 static bool
-aps_resume(device_t dv, pmf_qual_t qual)
+aps_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct aps_softc *sc = device_private(dv);
 
--- a/sys/dev/isa/com_isa.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/isa/com_isa.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: com_isa.c,v 1.38 2010/01/08 20:00:03 dyoung Exp $	*/
+/*	$NetBSD: com_isa.c,v 1.39 2010/02/24 22:37:58 dyoung Exp $	*/
 
 /*-
  * Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -61,7 +61,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: com_isa.c,v 1.38 2010/01/08 20:00:03 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: com_isa.c,v 1.39 2010/02/24 22:37:58 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -95,8 +95,8 @@
 	int	sc_irq;
 };
 
-static bool com_isa_suspend(device_t, pmf_qual_t);
-static bool com_isa_resume(device_t, pmf_qual_t);
+static bool com_isa_suspend(device_t, const pmf_qual_t *);
+static bool com_isa_resume(device_t, const pmf_qual_t *);
 
 int com_isa_probe(device_t, cfdata_t , void *);
 void com_isa_attach(device_t, device_t, void *);
@@ -218,7 +218,7 @@
 }
 
 static bool
-com_isa_suspend(device_t self, pmf_qual_t qual)
+com_isa_suspend(device_t self, const pmf_qual_t *qual)
 {
 	struct com_isa_softc *isc = device_private(self);
 
@@ -232,7 +232,7 @@
 }
 
 static bool
-com_isa_resume(device_t self, pmf_qual_t qual)
+com_isa_resume(device_t self, const pmf_qual_t *qual)
 {
 	struct com_isa_softc *isc = device_private(self);
 	struct com_softc *sc = &isc->sc_com;
--- a/sys/dev/isa/fd.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/isa/fd.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: fd.c,v 1.94 2010/01/08 20:00:03 dyoung Exp $	*/
+/*	$NetBSD: fd.c,v 1.95 2010/02/24 22:37:58 dyoung Exp $	*/
 
 /*-
  * Copyright (c) 1998, 2003, 2008 The NetBSD Foundation, Inc.
@@ -81,7 +81,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: fd.c,v 1.94 2010/01/08 20:00:03 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: fd.c,v 1.95 2010/02/24 22:37:58 dyoung Exp $");
 
 #include "rnd.h"
 #include "opt_ddb.h"
@@ -208,8 +208,8 @@
 static int fddetach(device_t, int);
 static int fdcintr1(struct fdc_softc *);
 static void fdcintrcb(void *);
-static bool fdcsuspend(device_t, pmf_qual_t);
-static bool fdcresume(device_t, pmf_qual_t);
+static bool fdcsuspend(device_t, const pmf_qual_t *);
+static bool fdcresume(device_t, const pmf_qual_t *);
 
 extern struct cfdriver fd_cd;
 
@@ -287,7 +287,7 @@
 }
 
 static bool
-fdcresume(device_t self, pmf_qual_t qual)
+fdcresume(device_t self, const pmf_qual_t *qual)
 {
 	struct fdc_softc *fdc = device_private(self);
 
@@ -298,7 +298,7 @@
 }
 
 static bool
-fdcsuspend(device_t self, pmf_qual_t qual)
+fdcsuspend(device_t self, const pmf_qual_t *qual)
 {
 	struct fdc_softc *fdc = device_private(self);
 	int drive;
--- a/sys/dev/isa/sbdsp.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/isa/sbdsp.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: sbdsp.c,v 1.133 2010/01/08 20:00:03 dyoung Exp $	*/
+/*	$NetBSD: sbdsp.c,v 1.134 2010/02/24 22:37:58 dyoung Exp $	*/
 
 /*-
  * Copyright (c) 1999 The NetBSD Foundation, Inc.
@@ -74,7 +74,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sbdsp.c,v 1.133 2010/01/08 20:00:03 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sbdsp.c,v 1.134 2010/02/24 22:37:58 dyoung Exp $");
 
 #include "midi.h"
 #include "mpu.h"
@@ -224,7 +224,7 @@
 
 int	sbdsp_midi_intr(void *);
 
-static bool	sbdsp_resume(device_t, pmf_qual_t);
+static bool	sbdsp_resume(device_t, const pmf_qual_t *);
 
 #ifdef AUDIO_DEBUG
 void	sb_printsc(struct sbdsp_softc *);
@@ -440,7 +440,7 @@
 }
 
 static bool
-sbdsp_resume(device_t dv, pmf_qual_t qual)
+sbdsp_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct sbdsp_softc *sc = device_private(dv);
 
--- a/sys/dev/isa/ym.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/isa/ym.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: ym.c,v 1.38 2010/01/08 20:00:03 dyoung Exp $	*/
+/*	$NetBSD: ym.c,v 1.39 2010/02/24 22:37:59 dyoung Exp $	*/
 
 /*-
  * Copyright (c) 1999-2002 The NetBSD Foundation, Inc.
@@ -60,7 +60,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ym.c,v 1.38 2010/01/08 20:00:03 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ym.c,v 1.39 2010/02/24 22:37:59 dyoung Exp $");
 
 #include "mpu_ym.h"
 #include "opt_ym.h"
@@ -162,8 +162,8 @@
 static void ym_set_mic_gain(struct ym_softc *, int);
 static void ym_set_3d(struct ym_softc *, mixer_ctrl_t *,
 	struct ad1848_volume *, int);
-static bool ym_suspend(device_t, pmf_qual_t);
-static bool ym_resume(device_t, pmf_qual_t);
+static bool ym_suspend(device_t, const pmf_qual_t *);
+static bool ym_resume(device_t, const pmf_qual_t *);
 
 
 const struct audio_hw_if ym_hw_if = {
@@ -1107,7 +1107,7 @@
  * DMA state should also be restored.  FIXME.
  */
 static bool
-ym_suspend(device_t self, pmf_qual_t qual)
+ym_suspend(device_t self, const pmf_qual_t *qual)
 {
 	struct ym_softc *sc = device_private(self);
 	int s;
@@ -1144,7 +1144,7 @@
 }
 
 static bool
-ym_resume(device_t self, pmf_qual_t qual)
+ym_resume(device_t self, const pmf_qual_t *qual)
 {
 	struct ym_softc *sc = device_private(self);
 	int i, xmax;
--- a/sys/dev/mii/mii_physubr.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/mii/mii_physubr.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: mii_physubr.c,v 1.66 2010/01/08 19:58:33 dyoung Exp $	*/
+/*	$NetBSD: mii_physubr.c,v 1.67 2010/02/24 22:37:59 dyoung Exp $	*/
 
 /*-
  * Copyright (c) 1998, 1999, 2000, 2001 The NetBSD Foundation, Inc.
@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: mii_physubr.c,v 1.66 2010/01/08 19:58:33 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mii_physubr.c,v 1.67 2010/02/24 22:37:59 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -623,7 +623,7 @@
 }
 
 bool
-mii_phy_resume(device_t dv, pmf_qual_t qual)
+mii_phy_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct mii_softc *sc = device_private(dv);
 
--- a/sys/dev/mii/miivar.h	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/mii/miivar.h	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: miivar.h,v 1.57 2010/01/08 19:58:33 dyoung Exp $	*/
+/*	$NetBSD: miivar.h,v 1.58 2010/02/24 22:37:59 dyoung Exp $	*/
 
 /*-
  * Copyright (c) 1998, 1999, 2000, 2001 The NetBSD Foundation, Inc.
@@ -225,7 +225,7 @@
 
 void	mii_attach(device_t, struct mii_data *, int, int, int, int);
 void	mii_detach(struct mii_data *, int, int);
-bool	mii_phy_resume(device_t, pmf_qual_t);
+bool	mii_phy_resume(device_t, const pmf_qual_t *);
 
 int	mii_mediachg(struct mii_data *);
 void	mii_tick(struct mii_data *);
--- a/sys/dev/mii/ukphy.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/mii/ukphy.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: ukphy.c,v 1.38 2009/10/19 18:41:14 bouyer Exp $	*/
+/*	$NetBSD: ukphy.c,v 1.39 2010/02/24 22:37:59 dyoung Exp $	*/
 
 /*-
  * Copyright (c) 1998, 1999, 2000 The NetBSD Foundation, Inc.
@@ -59,7 +59,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ukphy.c,v 1.38 2009/10/19 18:41:14 bouyer Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ukphy.c,v 1.39 2010/02/24 22:37:59 dyoung Exp $");
 
 #include "opt_mii.h"
 
@@ -89,8 +89,9 @@
 static int	ukphymatch(device_t, cfdata_t, void *);
 static void	ukphyattach(device_t, device_t, void *);
 
-CFATTACH_DECL_NEW(ukphy, sizeof(struct mii_softc),
-    ukphymatch, ukphyattach, mii_phy_detach, mii_phy_activate);
+CFATTACH_DECL3_NEW(ukphy, sizeof(struct mii_softc),
+    ukphymatch, ukphyattach, mii_phy_detach, mii_phy_activate, NULL, NULL,
+    DVF_DETACH_SHUTDOWN);
 
 static int	ukphy_service(struct mii_softc *, struct mii_data *, int);
 
--- a/sys/dev/pci/agp.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/agp.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: agp.c,v 1.67 2010/02/24 00:01:11 jym Exp $	*/
+/*	$NetBSD: agp.c,v 1.68 2010/02/24 22:37:59 dyoung Exp $	*/
 
 /*-
  * Copyright (c) 2000 Doug Rabson
@@ -65,7 +65,7 @@
 
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: agp.c,v 1.67 2010/02/24 00:01:11 jym Exp $");
+__KERNEL_RCSID(0, "$NetBSD: agp.c,v 1.68 2010/02/24 22:37:59 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -103,7 +103,7 @@
 static int agp_bind_user(struct agp_softc *, agp_bind *);
 static int agp_unbind_user(struct agp_softc *, agp_unbind *);
 static int agpdev_match(struct pci_attach_args *);
-static bool agp_resume(device_t, pmf_qual_t);
+static bool agp_resume(device_t, const pmf_qual_t *);
 
 #include "agp_ali.h"
 #include "agp_amd.h"
@@ -1119,7 +1119,7 @@
 }
 
 static bool
-agp_resume(device_t dv, pmf_qual_t qual)
+agp_resume(device_t dv, const pmf_qual_t *qual)
 {
 	agp_flush_cache();
 
--- a/sys/dev/pci/agp_i810.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/agp_i810.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: agp_i810.c,v 1.65 2010/01/08 19:56:51 dyoung Exp $	*/
+/*	$NetBSD: agp_i810.c,v 1.66 2010/02/24 22:37:59 dyoung Exp $	*/
 
 /*-
  * Copyright (c) 2000 Doug Rabson
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: agp_i810.c,v 1.65 2010/01/08 19:56:51 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: agp_i810.c,v 1.66 2010/02/24 22:37:59 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -98,7 +98,7 @@
 static int agp_i810_bind_memory(struct agp_softc *, struct agp_memory *, off_t);
 static int agp_i810_unbind_memory(struct agp_softc *, struct agp_memory *);
 
-static bool agp_i810_resume(device_t, pmf_qual_t);
+static bool agp_i810_resume(device_t, const pmf_qual_t *);
 static int agp_i810_init(struct agp_softc *);
 
 static int agp_i810_init(struct agp_softc *);
@@ -1016,7 +1016,7 @@
 }
 
 static bool
-agp_i810_resume(device_t dv, pmf_qual_t qual)
+agp_i810_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct agp_softc *sc = device_private(dv);
 	struct agp_i810_softc *isc = sc->as_chipc;
--- a/sys/dev/pci/agp_intel.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/agp_intel.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: agp_intel.c,v 1.33 2010/01/08 19:56:51 dyoung Exp $	*/
+/*	$NetBSD: agp_intel.c,v 1.34 2010/02/24 22:37:59 dyoung Exp $	*/
 
 /*-
  * Copyright (c) 2000 Doug Rabson
@@ -29,7 +29,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: agp_intel.c,v 1.33 2010/01/08 19:56:51 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: agp_intel.c,v 1.34 2010/02/24 22:37:59 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -71,7 +71,7 @@
 static int agp_intel_unbind_page(struct agp_softc *, off_t);
 static void agp_intel_flush_tlb(struct agp_softc *);
 static int agp_intel_init(struct agp_softc *);
-static bool agp_intel_resume(device_t, pmf_qual_t);
+static bool agp_intel_resume(device_t, const pmf_qual_t *);
 
 static struct agp_methods agp_intel_methods = {
 	agp_intel_get_aperture,
@@ -397,7 +397,7 @@
 }
 
 static bool
-agp_intel_resume(device_t dv, pmf_qual_t qual)
+agp_intel_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct agp_softc *sc = device_private(dv);
 
--- a/sys/dev/pci/ahcisata_pci.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/ahcisata_pci.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: ahcisata_pci.c,v 1.18 2010/01/08 19:56:51 dyoung Exp $	*/
+/*	$NetBSD: ahcisata_pci.c,v 1.19 2010/02/24 22:37:59 dyoung Exp $	*/
 
 /*
  * Copyright (c) 2006 Manuel Bouyer.
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ahcisata_pci.c,v 1.18 2010/01/08 19:56:51 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ahcisata_pci.c,v 1.19 2010/02/24 22:37:59 dyoung Exp $");
 
 #include <sys/types.h>
 #include <sys/malloc.h>
@@ -74,7 +74,7 @@
 static void ahci_pci_attach(device_t, device_t, void *);
 const struct pci_quirkdata *ahci_pci_lookup_quirkdata(pci_vendor_id_t,
 						      pci_product_id_t);
-static bool ahci_pci_resume(device_t, pmf_qual_t);
+static bool ahci_pci_resume(device_t, const pmf_qual_t *);
 
 
 CFATTACH_DECL_NEW(ahcisata_pci, sizeof(struct ahci_pci_softc),
@@ -171,7 +171,7 @@
 }
 
 static bool
-ahci_pci_resume(device_t dv, pmf_qual_t qual)
+ahci_pci_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct ahci_pci_softc *psc = device_private(dv);
 	struct ahci_softc *sc = &psc->ah_sc;
--- a/sys/dev/pci/auacer.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/auacer.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: auacer.c,v 1.26 2010/01/08 19:56:51 dyoung Exp $	*/
+/*	$NetBSD: auacer.c,v 1.27 2010/02/24 22:37:59 dyoung Exp $	*/
 
 /*-
  * Copyright (c) 2004 The NetBSD Foundation, Inc.
@@ -44,7 +44,7 @@
 
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: auacer.c,v 1.26 2010/01/08 19:56:51 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: auacer.c,v 1.27 2010/02/24 22:37:59 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -183,7 +183,7 @@
 				struct auacer_dma *);
 static int	auacer_freemem(struct auacer_softc *, struct auacer_dma *);
 
-static bool	auacer_resume(device_t, pmf_qual_t);
+static bool	auacer_resume(device_t, const pmf_qual_t *);
 static int	auacer_set_rate(struct auacer_softc *, int, u_int);
 
 static void auacer_reset(struct auacer_softc *sc);
@@ -1016,7 +1016,7 @@
 }
 
 static bool
-auacer_resume(device_t dv, pmf_qual_t qual)
+auacer_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct auacer_softc *sc = device_private(dv);
 
--- a/sys/dev/pci/auich.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/auich.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: auich.c,v 1.136 2010/02/01 12:51:16 njoly Exp $	*/
+/*	$NetBSD: auich.c,v 1.137 2010/02/24 22:37:59 dyoung Exp $	*/
 
 /*-
  * Copyright (c) 2000, 2004, 2005 The NetBSD Foundation, Inc.
@@ -111,7 +111,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: auich.c,v 1.136 2010/02/01 12:51:16 njoly Exp $");
+__KERNEL_RCSID(0, "$NetBSD: auich.c,v 1.137 2010/02/24 22:37:59 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -287,7 +287,7 @@
 		    struct auich_dma *);
 static int	auich_freemem(struct auich_softc *, struct auich_dma *);
 
-static bool	auich_resume(device_t, pmf_qual_t);
+static bool	auich_resume(device_t, const pmf_qual_t *);
 static int	auich_set_rate(struct auich_softc *, int, u_long);
 static int	auich_sysctl_verify(SYSCTLFN_ARGS);
 static void	auich_finish_attach(device_t);
@@ -1569,7 +1569,7 @@
 }
 
 static bool
-auich_resume(device_t dv, pmf_qual_t qual)
+auich_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct auich_softc *sc = device_private(dv);
 	pcireg_t v;
--- a/sys/dev/pci/auixp.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/auixp.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: auixp.c,v 1.33 2010/01/08 19:56:51 dyoung Exp $ */
+/* $NetBSD: auixp.c,v 1.34 2010/02/24 22:37:59 dyoung Exp $ */
 
 /*
  * Copyright (c) 2004, 2005 Reinoud Zandijk <reinoud@netbsd.org>
@@ -50,7 +50,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: auixp.c,v 1.33 2010/01/08 19:56:51 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: auixp.c,v 1.34 2010/02/24 22:37:59 dyoung Exp $");
 
 #include <sys/types.h>
 #include <sys/errno.h>
@@ -194,7 +194,7 @@
 static void	auixp_dma_update(struct auixp_softc *, struct auixp_dma *);
 static void	auixp_update_busbusy(struct auixp_softc *);
 
-static bool	auixp_resume(device_t, pmf_qual_t);
+static bool	auixp_resume(device_t, const pmf_qual_t *);
 
 
 #ifdef DEBUG_AUIXP
@@ -1753,7 +1753,7 @@
 }
 
 static bool
-auixp_resume(device_t dv, pmf_qual_t qual)
+auixp_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct auixp_softc *sc = device_private(dv);
 
--- a/sys/dev/pci/autri.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/autri.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: autri.c,v 1.45 2010/01/08 19:56:51 dyoung Exp $	*/
+/*	$NetBSD: autri.c,v 1.46 2010/02/24 22:37:59 dyoung Exp $	*/
 
 /*
  * Copyright (c) 2001 SOMEYA Yoshihiko and KUROSAWA Takahiro.
@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: autri.c,v 1.45 2010/01/08 19:56:51 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: autri.c,v 1.46 2010/02/24 22:37:59 dyoung Exp $");
 
 #include "midi.h"
 
@@ -97,7 +97,7 @@
 static int	autri_reset_codec(void *);
 static enum ac97_host_flags	autri_flags_codec(void *);
 
-static bool autri_resume(device_t, pmf_qual_t);
+static bool autri_resume(device_t, const pmf_qual_t *);
 static int  autri_init(void *);
 static struct autri_dma *autri_find_dma(struct autri_softc *, void *);
 static void autri_setup_channel(struct autri_softc *, int,
@@ -601,7 +601,7 @@
     autri_match, autri_attach, NULL, NULL);
 
 static bool
-autri_resume(device_t dv, pmf_qual_t qual)
+autri_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct autri_softc *sc = device_private(dv);
 
--- a/sys/dev/pci/auvia.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/auvia.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: auvia.c,v 1.71 2010/01/08 19:56:51 dyoung Exp $	*/
+/*	$NetBSD: auvia.c,v 1.72 2010/02/24 22:37:59 dyoung Exp $	*/
 
 /*-
  * Copyright (c) 2000 The NetBSD Foundation, Inc.
@@ -40,7 +40,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: auvia.c,v 1.71 2010/01/08 19:56:51 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: auvia.c,v 1.72 2010/02/24 22:37:59 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -113,7 +113,7 @@
 static int	auvia_trigger_input(void *, void *, void *, int,
 				    void (*)(void *), void *,
 				    const audio_params_t *);
-static bool	auvia_resume(device_t, pmf_qual_t);
+static bool	auvia_resume(device_t, const pmf_qual_t *);
 static int	auvia_intr(void *);
 
 static int	auvia_attach_codec(void *, struct ac97_codec_if *);
@@ -1141,7 +1141,7 @@
 }
 
 static bool
-auvia_resume(device_t dv, pmf_qual_t qual)
+auvia_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct auvia_softc *sc = device_private(dv);
 
--- a/sys/dev/pci/azalia.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/azalia.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: azalia.c,v 1.72 2010/01/20 09:05:12 tonnerre Exp $	*/
+/*	$NetBSD: azalia.c,v 1.73 2010/02/24 22:37:59 dyoung Exp $	*/
 
 /*-
  * Copyright (c) 2005 The NetBSD Foundation, Inc.
@@ -41,7 +41,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: azalia.c,v 1.72 2010/01/20 09:05:12 tonnerre Exp $");
+__KERNEL_RCSID(0, "$NetBSD: azalia.c,v 1.73 2010/02/24 22:37:59 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -156,7 +156,7 @@
 static int	azalia_pci_match(device_t, cfdata_t, void *);
 static void	azalia_pci_attach(device_t, device_t, void *);
 static int	azalia_pci_detach(device_t, int);
-static bool	azalia_pci_resume(device_t, pmf_qual_t);
+static bool	azalia_pci_resume(device_t, const pmf_qual_t *);
 static void	azalia_childdet(device_t, device_t);
 static int	azalia_intr(void *);
 static int	azalia_attach(azalia_t *);
@@ -416,7 +416,7 @@
 }
 
 static bool
-azalia_pci_resume(device_t dv, pmf_qual_t qual)
+azalia_pci_resume(device_t dv, const pmf_qual_t *qual)
 {
 	azalia_t *az = device_private(dv);
 	int s;
--- a/sys/dev/pci/cs4280.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/cs4280.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: cs4280.c,v 1.56 2010/01/08 19:56:51 dyoung Exp $	*/
+/*	$NetBSD: cs4280.c,v 1.57 2010/02/24 22:37:59 dyoung Exp $	*/
 
 /*
  * Copyright (c) 1999, 2000 Tatoku Ogaito.  All rights reserved.
@@ -52,7 +52,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cs4280.c,v 1.56 2010/01/08 19:56:51 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cs4280.c,v 1.57 2010/02/24 22:37:59 dyoung Exp $");
 
 #include "midi.h"
 
@@ -110,8 +110,8 @@
 #endif
 static enum ac97_host_flags cs4280_flags_codec(void *);
 
-static bool cs4280_resume(device_t, pmf_qual_t);
-static bool cs4280_suspend(device_t, pmf_qual_t);
+static bool cs4280_resume(device_t, const pmf_qual_t *);
+static bool cs4280_suspend(device_t, const pmf_qual_t *);
 
 /* Internal functions */
 static const struct cs4280_card_t * cs4280_identify_card(struct pci_attach_args *);
@@ -908,7 +908,7 @@
 }
 
 static bool
-cs4280_suspend(device_t dv, pmf_qual_t qual)
+cs4280_suspend(device_t dv, const pmf_qual_t *qual)
 {
 	struct cs428x_softc *sc = device_private(dv);
 
@@ -943,7 +943,7 @@
 }
 
 static bool
-cs4280_resume(device_t dv, pmf_qual_t qual)
+cs4280_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct cs428x_softc *sc = device_private(dv);
 
--- a/sys/dev/pci/cs4281.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/cs4281.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: cs4281.c,v 1.43 2010/01/08 19:56:51 dyoung Exp $	*/
+/*	$NetBSD: cs4281.c,v 1.44 2010/02/24 22:37:59 dyoung Exp $	*/
 
 /*
  * Copyright (c) 2000 Tatoku Ogaito.  All rights reserved.
@@ -43,7 +43,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: cs4281.c,v 1.43 2010/01/08 19:56:51 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: cs4281.c,v 1.44 2010/02/24 22:37:59 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -106,8 +106,8 @@
 static int      cs4281_init(struct cs428x_softc *, int);
 
 /* Power Management */
-static bool cs4281_suspend(device_t, pmf_qual_t);
-static bool cs4281_resume(device_t, pmf_qual_t);
+static bool cs4281_suspend(device_t, const pmf_qual_t *);
+static bool cs4281_resume(device_t, const pmf_qual_t *);
 
 static const struct audio_hw_if cs4281_hw_if = {
 	NULL,			/* open */
@@ -717,7 +717,7 @@
 }
 
 static bool
-cs4281_suspend(device_t dv, pmf_qual_t qual)
+cs4281_suspend(device_t dv, const pmf_qual_t *qual)
 {
 	struct cs428x_softc *sc = device_private(dv);
 
@@ -744,7 +744,7 @@
 }
 
 static bool
-cs4281_resume(device_t dv, pmf_qual_t qual)
+cs4281_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct cs428x_softc *sc = device_private(dv);
 
--- a/sys/dev/pci/ehci_pci.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/ehci_pci.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: ehci_pci.c,v 1.46 2010/01/08 19:56:51 dyoung Exp $	*/
+/*	$NetBSD: ehci_pci.c,v 1.47 2010/02/24 22:37:59 dyoung Exp $	*/
 
 /*
  * Copyright (c) 2001, 2002 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ehci_pci.c,v 1.46 2010/01/08 19:56:51 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ehci_pci.c,v 1.47 2010/02/24 22:37:59 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -76,8 +76,8 @@
 				   pcitag_t tag);
 static void ehci_get_ownership(ehci_softc_t *sc, pci_chipset_tag_t pc,
 			       pcitag_t tag);
-static bool ehci_pci_suspend(device_t, pmf_qual_t);
-static bool ehci_pci_resume(device_t, pmf_qual_t);
+static bool ehci_pci_suspend(device_t, const pmf_qual_t *);
+static bool ehci_pci_resume(device_t, const pmf_qual_t *);
 
 struct ehci_pci_softc {
 	ehci_softc_t		sc;
@@ -421,7 +421,7 @@
 }
 
 static bool
-ehci_pci_suspend(device_t dv, pmf_qual_t qual)
+ehci_pci_suspend(device_t dv, const pmf_qual_t *qual)
 {
 	struct ehci_pci_softc *sc = device_private(dv);
 
@@ -432,7 +432,7 @@
 }
 
 static bool
-ehci_pci_resume(device_t dv, pmf_qual_t qual)
+ehci_pci_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct ehci_pci_softc *sc = device_private(dv);
 
--- a/sys/dev/pci/esa.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/esa.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: esa.c,v 1.53 2010/01/08 19:56:51 dyoung Exp $ */
+/* $NetBSD: esa.c,v 1.54 2010/02/24 22:38:00 dyoung Exp $ */
 
 /*
  * Copyright (c) 2001-2008 Jared D. McNeill <jmcneill@invisible.ca>
@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: esa.c,v 1.53 2010/01/08 19:56:51 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: esa.c,v 1.54 2010/02/24 22:38:00 dyoung Exp $");
 
 #include <sys/types.h>
 #include <sys/errno.h>
@@ -163,8 +163,8 @@
 					int);
 
 /* power management */
-static bool		esa_suspend(device_t, pmf_qual_t);
-static bool		esa_resume(device_t, pmf_qual_t);
+static bool		esa_suspend(device_t, const pmf_qual_t *);
+static bool		esa_resume(device_t, const pmf_qual_t *);
 
 
 #define ESA_NENCODINGS 8
@@ -1652,7 +1652,7 @@
 }
 
 static bool
-esa_suspend(device_t dv, pmf_qual_t qual)
+esa_suspend(device_t dv, const pmf_qual_t *qual)
 {
 	struct esa_softc *sc = device_private(dv);
 	bus_space_tag_t iot = sc->sc_iot;
@@ -1680,7 +1680,7 @@
 }
 
 static bool
-esa_resume(device_t dv, pmf_qual_t qual)
+esa_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct esa_softc *sc = device_private(dv);
 	bus_space_tag_t iot = sc->sc_iot;
--- a/sys/dev/pci/esm.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/esm.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*      $NetBSD: esm.c,v 1.52 2010/01/08 19:56:51 dyoung Exp $      */
+/*      $NetBSD: esm.c,v 1.53 2010/02/24 22:38:00 dyoung Exp $      */
 
 /*-
  * Copyright (c) 2002, 2003 Matt Fredette
@@ -66,7 +66,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: esm.c,v 1.52 2010/01/08 19:56:51 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: esm.c,v 1.53 2010/02/24 22:38:00 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -146,8 +146,8 @@
 static void		esmch_combine_input(struct esm_softc *,
 			    struct esm_chinfo *);
 
-static bool		esm_suspend(device_t, pmf_qual_t);
-static bool		esm_resume(device_t, pmf_qual_t);
+static bool		esm_suspend(device_t, const pmf_qual_t *);
+static bool		esm_resume(device_t, const pmf_qual_t *);
 static void		esm_childdet(device_t, device_t);
 static int		esm_match(device_t, cfdata_t, void *);
 static void		esm_attach(device_t, device_t, void *);
@@ -1766,7 +1766,7 @@
 }
 
 static bool
-esm_suspend(device_t dv, pmf_qual_t qual)
+esm_suspend(device_t dv, const pmf_qual_t *qual)
 {
 	struct esm_softc *ess = device_private(dv);
 	int x;
@@ -1789,7 +1789,7 @@
 }
 
 static bool
-esm_resume(device_t dv, pmf_qual_t qual)
+esm_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct esm_softc *ess = device_private(dv);
 	int x;
--- a/sys/dev/pci/fwohci_pci.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/fwohci_pci.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: fwohci_pci.c,v 1.35 2010/02/03 19:32:40 macallan Exp $	*/
+/*	$NetBSD: fwohci_pci.c,v 1.36 2010/02/24 22:38:00 dyoung Exp $	*/
 
 /*-
  * Copyright (c) 2000 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: fwohci_pci.c,v 1.35 2010/02/03 19:32:40 macallan Exp $");
+__KERNEL_RCSID(0, "$NetBSD: fwohci_pci.c,v 1.36 2010/02/24 22:38:00 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -63,8 +63,8 @@
 static int fwohci_pci_match(device_t, cfdata_t, void *);
 static void fwohci_pci_attach(device_t, device_t, void *);
 
-static bool fwohci_pci_suspend(device_t, pmf_qual_t);
-static bool fwohci_pci_resume(device_t, pmf_qual_t);
+static bool fwohci_pci_suspend(device_t, const pmf_qual_t *);
+static bool fwohci_pci_resume(device_t, const pmf_qual_t *);
 
 CFATTACH_DECL_NEW(fwohci_pci, sizeof(struct fwohci_pci_softc),
     fwohci_pci_match, fwohci_pci_attach, NULL, NULL);
@@ -166,7 +166,7 @@
 }
 
 static bool
-fwohci_pci_suspend(device_t dv, pmf_qual_t qual)
+fwohci_pci_suspend(device_t dv, const pmf_qual_t *qual)
 {
 	struct fwohci_pci_softc *psc = device_private(dv);
 	int s;
@@ -179,7 +179,7 @@
 }
 
 static bool
-fwohci_pci_resume(device_t dv, pmf_qual_t qual)
+fwohci_pci_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct fwohci_pci_softc *psc = device_private(dv);
 	int s;
--- a/sys/dev/pci/gcscaudio.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/gcscaudio.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: gcscaudio.c,v 1.4 2010/01/08 19:56:51 dyoung Exp $	*/
+/*	$NetBSD: gcscaudio.c,v 1.5 2010/02/24 22:38:00 dyoung Exp $	*/
 
 /*-
  * Copyright (c) 2008 SHIMIZU Ryo <ryo@nerv.org>
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: gcscaudio.c,v 1.4 2010/01/08 19:56:51 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: gcscaudio.c,v 1.5 2010/02/24 22:38:00 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -151,7 +151,7 @@
 static int gcscaudio_trigger_input(void *, void *, void *, int,
                                    void (*)(void *), void *,
                                    const audio_params_t *);
-static bool gcscaudio_resume(device_t, pmf_qual_t);
+static bool gcscaudio_resume(device_t, const pmf_qual_t *);
 static int gcscaudio_intr(void *);
 
 /* for codec_if */
@@ -1279,7 +1279,7 @@
 }
 
 static bool
-gcscaudio_resume(device_t dv, pmf_qual_t qual)
+gcscaudio_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct gcscaudio_softc *sc = device_private(dv);
 
--- a/sys/dev/pci/hdaudio/hdaudio_afg.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/hdaudio/hdaudio_afg.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: hdaudio_afg.c,v 1.19 2010/01/20 09:05:12 tonnerre Exp $ */
+/* $NetBSD: hdaudio_afg.c,v 1.20 2010/02/24 22:38:08 dyoung Exp $ */
 
 /*
  * Copyright (c) 2009 Precedence Technologies Ltd <support@precedence.co.uk>
@@ -60,7 +60,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: hdaudio_afg.c,v 1.19 2010/01/20 09:05:12 tonnerre Exp $");
+__KERNEL_RCSID(0, "$NetBSD: hdaudio_afg.c,v 1.20 2010/02/24 22:38:08 dyoung Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -309,8 +309,8 @@
 static void	hdaudio_afg_attach(device_t, device_t, void *);
 static int	hdaudio_afg_detach(device_t, int);
 static void	hdaudio_afg_childdet(device_t, device_t);
-static bool	hdaudio_afg_suspend(device_t, pmf_qual_t);
-static bool	hdaudio_afg_resume(device_t, pmf_qual_t);
+static bool	hdaudio_afg_suspend(device_t, const pmf_qual_t *);
+static bool	hdaudio_afg_resume(device_t, const pmf_qual_t *);
 
 CFATTACH_DECL2_NEW(
     hdafg,
@@ -3247,7 +3247,7 @@
 }
 
 static bool
-hdaudio_afg_suspend(device_t self, pmf_qual_t qual)
+hdaudio_afg_suspend(device_t self, const pmf_qual_t *qual)
 {
 	struct hdaudio_afg_softc *sc = device_private(self);
 
@@ -3257,7 +3257,7 @@
 }
 
 static bool
-hdaudio_afg_resume(device_t self, pmf_qual_t qual)
+hdaudio_afg_resume(device_t self, const pmf_qual_t *qual)
 {
 	struct hdaudio_afg_softc *sc = device_private(self);
 	int nid;
--- a/sys/dev/pci/hdaudio/hdaudio_pci.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/hdaudio/hdaudio_pci.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: hdaudio_pci.c,v 1.4 2010/01/08 19:56:52 dyoung Exp $ */
+/* $NetBSD: hdaudio_pci.c,v 1.5 2010/02/24 22:38:08 dyoung Exp $ */
 
 /*
  * Copyright (c) 2009 Precedence Technologies Ltd <support@precedence.co.uk>
@@ -34,7 +34,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: hdaudio_pci.c,v 1.4 2010/01/08 19:56:52 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: hdaudio_pci.c,v 1.5 2010/02/24 22:38:08 dyoung Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -65,7 +65,7 @@
 static int		hdaudio_pci_intr(void *);
 
 /* power management */
-static bool		hdaudio_pci_resume(device_t, pmf_qual_t);
+static bool		hdaudio_pci_resume(device_t, const pmf_qual_t *);
 
 CFATTACH_DECL2_NEW(
     hdaudio_pci,
@@ -205,7 +205,7 @@
 }
 
 static bool
-hdaudio_pci_resume(device_t self, pmf_qual_t qual)
+hdaudio_pci_resume(device_t self, const pmf_qual_t *qual)
 {
 	struct hdaudio_pci_softc *sc = device_private(self);
 
--- a/sys/dev/pci/if_age.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/if_age.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_age.c,v 1.36 2010/01/19 22:07:00 pooka Exp $ */
+/*	$NetBSD: if_age.c,v 1.37 2010/02/24 22:38:00 dyoung Exp $ */
 /*	$OpenBSD: if_age.c,v 1.1 2009/01/16 05:00:34 kevlo Exp $	*/
 
 /*-
@@ -31,7 +31,7 @@
 /* Driver for Attansic Technology Corp. L1 Gigabit Ethernet. */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_age.c,v 1.36 2010/01/19 22:07:00 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_age.c,v 1.37 2010/02/24 22:38:00 dyoung Exp $");
 
 #include "vlan.h"
 
@@ -80,7 +80,7 @@
 static void	age_attach(device_t, device_t, void *);
 static int	age_detach(device_t, int);
 
-static bool	age_resume(device_t, pmf_qual_t);
+static bool	age_resume(device_t, const pmf_qual_t *);
 
 static int	age_miibus_readreg(device_t, int, int);
 static void	age_miibus_writereg(device_t, int, int, int);
@@ -1154,7 +1154,7 @@
 }
 
 static bool
-age_resume(device_t dv, pmf_qual_t qual)
+age_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct age_softc *sc = device_private(dv);
 	uint16_t cmd;
--- a/sys/dev/pci/if_ath_pci.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/if_ath_pci.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_ath_pci.c,v 1.36 2010/01/08 19:56:51 dyoung Exp $	*/
+/*	$NetBSD: if_ath_pci.c,v 1.37 2010/02/24 22:38:00 dyoung Exp $	*/
 
 /*-
  * Copyright (c) 2002-2005 Sam Leffler, Errno Consulting
@@ -41,7 +41,7 @@
 __FBSDID("$FreeBSD: src/sys/dev/ath/if_ath_pci.c,v 1.11 2005/01/18 18:08:16 sam Exp $");
 #endif
 #ifdef __NetBSD__
-__KERNEL_RCSID(0, "$NetBSD: if_ath_pci.c,v 1.36 2010/01/08 19:56:51 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_ath_pci.c,v 1.37 2010/02/24 22:38:00 dyoung Exp $");
 #endif
 
 /*
@@ -118,7 +118,7 @@
 }
 
 static bool
-ath_pci_suspend(device_t self, pmf_qual_t qual)
+ath_pci_suspend(device_t self, const pmf_qual_t *qual)
 {
 	struct ath_pci_softc *sc = device_private(self);
 
@@ -130,7 +130,7 @@
 }
 
 static bool
-ath_pci_resume(device_t self, pmf_qual_t qual)
+ath_pci_resume(device_t self, const pmf_qual_t *qual)
 {
 	struct ath_pci_softc *sc = device_private(self);
 
--- a/sys/dev/pci/if_atw_pci.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/if_atw_pci.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_atw_pci.c,v 1.23 2010/01/08 19:56:51 dyoung Exp $	*/
+/*	$NetBSD: if_atw_pci.c,v 1.24 2010/02/24 22:38:00 dyoung Exp $	*/
 
 /*-
  * Copyright (c) 1998, 1999, 2000, 2002 The NetBSD Foundation, Inc.
@@ -37,7 +37,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_atw_pci.c,v 1.23 2010/01/08 19:56:51 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_atw_pci.c,v 1.24 2010/02/24 22:38:00 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -90,8 +90,8 @@
 
 static int	atw_pci_match(device_t, cfdata_t, void *);
 static void	atw_pci_attach(device_t, device_t, void *);
-static bool	atw_pci_suspend(device_t, pmf_qual_t);
-static bool	atw_pci_resume(device_t, pmf_qual_t);
+static bool	atw_pci_suspend(device_t, const pmf_qual_t *);
+static bool	atw_pci_resume(device_t, const pmf_qual_t *);
 
 CFATTACH_DECL_NEW(atw_pci, sizeof(struct atw_pci_softc),
     atw_pci_match, atw_pci_attach, NULL, NULL);
@@ -134,7 +134,7 @@
 }
 
 static bool
-atw_pci_resume(device_t self, pmf_qual_t qual)
+atw_pci_resume(device_t self, const pmf_qual_t *qual)
 {
 	struct atw_pci_softc *psc = device_private(self);
 	struct atw_softc *sc = &psc->psc_atw;
@@ -151,7 +151,7 @@
 }
 
 static bool
-atw_pci_suspend(device_t self, pmf_qual_t qual)
+atw_pci_suspend(device_t self, const pmf_qual_t *qual)
 {
 	struct atw_pci_softc *psc = device_private(self);
 
--- a/sys/dev/pci/if_bce.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/if_bce.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: if_bce.c,v 1.30 2010/01/19 22:07:00 pooka Exp $	 */
+/* $NetBSD: if_bce.c,v 1.31 2010/02/24 22:38:00 dyoung Exp $	 */
 
 /*
  * Copyright (c) 2003 Clifford Wright. All rights reserved.
@@ -35,7 +35,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_bce.c,v 1.30 2010/01/19 22:07:00 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_bce.c,v 1.31 2010/02/24 22:38:00 dyoung Exp $");
 
 #include "vlan.h"
 #include "rnd.h"
@@ -179,7 +179,7 @@
 static	void	bce_rxdrain(struct bce_softc *);
 static	void	bce_stop(struct ifnet *, int);
 static	void	bce_reset(struct bce_softc *);
-static	bool	bce_resume(device_t, pmf_qual_t);
+static	bool	bce_resume(device_t, const pmf_qual_t *);
 static	void	bce_set_filter(struct ifnet *);
 static	int	bce_mii_read(device_t, int, int);
 static	void	bce_mii_write(device_t, int, int, int);
@@ -1367,7 +1367,7 @@
 }
 
 static bool
-bce_resume(device_t self, pmf_qual_t qual)
+bce_resume(device_t self, const pmf_qual_t *qual)
 {
 	struct bce_softc *sc = device_private(self);
 
--- a/sys/dev/pci/if_cas.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/if_cas.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_cas.c,v 1.5 2010/01/22 14:34:34 jdc Exp $	*/
+/*	$NetBSD: if_cas.c,v 1.6 2010/02/24 22:38:00 dyoung Exp $	*/
 /*	$OpenBSD: if_cas.c,v 1.29 2009/11/29 16:19:38 kettenis Exp $	*/
 
 /*
@@ -44,7 +44,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_cas.c,v 1.5 2010/01/22 14:34:34 jdc Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_cas.c,v 1.6 2010/02/24 22:38:00 dyoung Exp $");
 
 #include "opt_inet.h"
 
@@ -99,8 +99,8 @@
 
 static bool	cas_estintr(struct cas_softc *sc, int);
 bool		cas_shutdown(device_t, int);
-static bool	cas_suspend(device_t, pmf_qual_t);
-static bool	cas_resume(device_t, pmf_qual_t);
+static bool	cas_suspend(device_t, const pmf_qual_t *);
+static bool	cas_resume(device_t, const pmf_qual_t *);
 static int	cas_detach(device_t, int);
 static void	cas_partial_detach(struct cas_softc *, enum cas_attach_stage);
 
@@ -1789,7 +1789,7 @@
 }
 
 static bool
-cas_suspend(device_t self, pmf_qual_t qual)
+cas_suspend(device_t self, const pmf_qual_t *qual)
 {
 	struct cas_softc *sc = device_private(self);
 	bus_space_tag_t t = sc->sc_memt;
@@ -1805,7 +1805,7 @@
 }
 
 static bool
-cas_resume(device_t self, pmf_qual_t qual)
+cas_resume(device_t self, const pmf_qual_t *qual)
 {
 	struct cas_softc *sc = device_private(self);
 
--- a/sys/dev/pci/if_fxp_pci.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/if_fxp_pci.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_fxp_pci.c,v 1.72 2010/01/08 19:56:51 dyoung Exp $	*/
+/*	$NetBSD: if_fxp_pci.c,v 1.73 2010/02/24 22:38:00 dyoung Exp $	*/
 
 /*-
  * Copyright (c) 1997, 1998, 1999, 2000, 2001 The NetBSD Foundation, Inc.
@@ -36,7 +36,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_fxp_pci.c,v 1.72 2010/01/08 19:56:51 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_fxp_pci.c,v 1.73 2010/02/24 22:38:00 dyoung Exp $");
 
 #include "rnd.h"
 
@@ -92,7 +92,7 @@
 static void	fxp_pci_disable(struct fxp_softc *);
 
 static void fxp_pci_confreg_restore(struct fxp_pci_softc *psc);
-static bool fxp_pci_resume(device_t dv, pmf_qual_t);
+static bool fxp_pci_resume(device_t dv, const pmf_qual_t *);
 
 CFATTACH_DECL_NEW(fxp_pci, sizeof(struct fxp_pci_softc),
     fxp_pci_match, fxp_pci_attach, NULL, NULL);
@@ -235,7 +235,7 @@
 }
 
 static bool
-fxp_pci_resume(device_t dv, pmf_qual_t qual)
+fxp_pci_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct fxp_pci_softc *psc = device_private(dv);
 	fxp_pci_confreg_restore(psc);
--- a/sys/dev/pci/if_gem_pci.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/if_gem_pci.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_gem_pci.c,v 1.41 2010/01/21 17:40:09 macallan Exp $ */
+/*	$NetBSD: if_gem_pci.c,v 1.42 2010/02/24 22:38:00 dyoung Exp $ */
 
 /*
  *
@@ -34,7 +34,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_gem_pci.c,v 1.41 2010/01/21 17:40:09 macallan Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_gem_pci.c,v 1.42 2010/02/24 22:38:00 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -78,8 +78,8 @@
 };
 
 static bool	gem_pci_estintr(struct gem_pci_softc *);
-static bool	gem_pci_suspend(device_t, pmf_qual_t);
-static bool	gem_pci_resume(device_t, pmf_qual_t);
+static bool	gem_pci_suspend(device_t, const pmf_qual_t *);
+static bool	gem_pci_resume(device_t, const pmf_qual_t *);
 static int	gem_pci_detach(device_t, int);
 
 int	gem_pci_match(device_t, cfdata_t, void *);
@@ -374,7 +374,7 @@
 }
 
 static bool
-gem_pci_suspend(device_t self, pmf_qual_t qual)
+gem_pci_suspend(device_t self, const pmf_qual_t *qual)
 {
 	struct gem_pci_softc *gsc = device_private(self);
 
@@ -407,7 +407,7 @@
 }
 
 static bool
-gem_pci_resume(device_t self, pmf_qual_t qual)
+gem_pci_resume(device_t self, const pmf_qual_t *qual)
 {
 	struct gem_pci_softc *gsc = device_private(self);
 
--- a/sys/dev/pci/if_iwn.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/if_iwn.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_iwn.c,v 1.36 2010/01/19 22:07:00 pooka Exp $	*/
+/*	$NetBSD: if_iwn.c,v 1.37 2010/02/24 22:38:00 dyoung Exp $	*/
 /*	$OpenBSD: if_iwn.c,v 1.49 2009/03/29 21:53:52 sthen Exp $	*/
 
 /*-
@@ -23,7 +23,7 @@
  * 802.11 network adapters.
  */
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_iwn.c,v 1.36 2010/01/19 22:07:00 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_iwn.c,v 1.37 2010/02/24 22:38:00 dyoung Exp $");
 
 
 #include <sys/param.h>
@@ -270,7 +270,7 @@
 static int	iwn_init(struct ifnet *);
 static void	iwn_stop(struct ifnet *, int);
 static void	iwn_fix_channel(struct ieee80211com *, struct mbuf *);
-static bool	iwn_resume(device_t, pmf_qual_t);
+static bool	iwn_resume(device_t, const pmf_qual_t *);
 
 #define IWN_DEBUG
 #ifdef IWN_DEBUG
@@ -5808,7 +5808,7 @@
 }
 
 static bool
-iwn_resume(device_t dv, pmf_qual_t qual)
+iwn_resume(device_t dv, const pmf_qual_t *qual)
 {
 #if 0
 	struct iwn_softc *sc = device_private(dv);
--- a/sys/dev/pci/if_msk.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/if_msk.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: if_msk.c,v 1.32 2010/01/19 22:07:01 pooka Exp $ */
+/* $NetBSD: if_msk.c,v 1.33 2010/02/24 22:38:00 dyoung Exp $ */
 /*	$OpenBSD: if_msk.c,v 1.42 2007/01/17 02:43:02 krw Exp $	*/
 
 /*
@@ -52,7 +52,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_msk.c,v 1.32 2010/01/19 22:07:01 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_msk.c,v 1.33 2010/02/24 22:38:00 dyoung Exp $");
 
 #include "rnd.h"
 
@@ -98,8 +98,8 @@
 
 int mskc_probe(device_t, cfdata_t, void *);
 void mskc_attach(device_t, device_t, void *);
-static bool mskc_suspend(device_t, pmf_qual_t);
-static bool mskc_resume(device_t, pmf_qual_t);
+static bool mskc_suspend(device_t, const pmf_qual_t *);
+static bool mskc_resume(device_t, const pmf_qual_t *);
 int msk_probe(device_t, cfdata_t, void *);
 void msk_attach(device_t, device_t, void *);
 int mskcprint(void *, const char *);
@@ -960,7 +960,7 @@
 }
 
 static bool
-msk_resume(device_t dv, pmf_qual_t qual)
+msk_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct sk_if_softc *sc_if = device_private(dv);
 	
@@ -1649,7 +1649,7 @@
 }
 
 static bool
-mskc_suspend(device_t dv, pmf_qual_t qual)
+mskc_suspend(device_t dv, const pmf_qual_t *qual)
 {
 	struct sk_softc *sc = device_private(dv);
 
@@ -1662,7 +1662,7 @@
 }
 
 static bool
-mskc_resume(device_t dv, pmf_qual_t qual)
+mskc_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct sk_softc *sc = device_private(dv);
 
--- a/sys/dev/pci/if_nfe.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/if_nfe.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_nfe.c,v 1.49 2010/01/19 22:07:01 pooka Exp $	*/
+/*	$NetBSD: if_nfe.c,v 1.50 2010/02/24 22:38:00 dyoung Exp $	*/
 /*	$OpenBSD: if_nfe.c,v 1.77 2008/02/05 16:52:50 brad Exp $	*/
 
 /*-
@@ -21,7 +21,7 @@
 /* Driver for NVIDIA nForce MCP Fast Ethernet and Gigabit Ethernet */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_nfe.c,v 1.49 2010/01/19 22:07:01 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_nfe.c,v 1.50 2010/02/24 22:38:00 dyoung Exp $");
 
 #include "opt_inet.h"
 #include "vlan.h"
@@ -109,7 +109,7 @@
 void	nfe_set_macaddr(struct nfe_softc *, const uint8_t *);
 void	nfe_tick(void *);
 void	nfe_poweron(device_t);
-bool	nfe_resume(device_t, pmf_qual_t);
+bool	nfe_resume(device_t, const pmf_qual_t *);
 
 CFATTACH_DECL_NEW(nfe, sizeof(struct nfe_softc), nfe_match, nfe_attach,
     NULL, NULL);
@@ -1940,7 +1940,7 @@
 }
 
 bool
-nfe_resume(device_t dv, pmf_qual_t qual)
+nfe_resume(device_t dv, const pmf_qual_t *qual)
 {
 	nfe_poweron(dv);
 
--- a/sys/dev/pci/if_rtw_pci.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/if_rtw_pci.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_rtw_pci.c,v 1.16 2010/01/08 19:56:52 dyoung Exp $	*/
+/*	$NetBSD: if_rtw_pci.c,v 1.17 2010/02/24 22:38:00 dyoung Exp $	*/
 
 /*-
  * Copyright (c) 1998, 1999, 2000, 2002 The NetBSD Foundation, Inc.
@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_rtw_pci.c,v 1.16 2010/01/08 19:56:52 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_rtw_pci.c,v 1.17 2010/02/24 22:38:00 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -136,7 +136,7 @@
 }
 
 static bool
-rtw_pci_resume(device_t self, pmf_qual_t qual)
+rtw_pci_resume(device_t self, const pmf_qual_t *qual)
 {
 	struct rtw_pci_softc *psc = device_private(self);
 	struct rtw_softc *sc = &psc->psc_rtw;
@@ -153,7 +153,7 @@
 }
 
 static bool
-rtw_pci_suspend(device_t self, pmf_qual_t qual)
+rtw_pci_suspend(device_t self, const pmf_qual_t *qual)
 {
 	struct rtw_pci_softc *psc = device_private(self);
 
--- a/sys/dev/pci/if_sip.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/if_sip.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_sip.c,v 1.145 2010/01/19 22:07:01 pooka Exp $	*/
+/*	$NetBSD: if_sip.c,v 1.146 2010/02/24 22:38:00 dyoung Exp $	*/
 
 /*-
  * Copyright (c) 2001, 2002 The NetBSD Foundation, Inc.
@@ -73,7 +73,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_sip.c,v 1.145 2010/01/19 22:07:01 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_sip.c,v 1.146 2010/02/24 22:38:00 dyoung Exp $");
 
 #include "rnd.h"
 
@@ -205,7 +205,7 @@
 struct sip_softc {
 	device_t sc_dev;		/* generic device information */
 	struct device_suspensor		sc_suspensor;
-	struct pmf_qual			sc_qual;
+	pmf_qual_t			sc_qual;
 
 	bus_space_tag_t sc_st;		/* bus space tag */
 	bus_space_handle_t sc_sh;	/* bus space handle */
@@ -607,8 +607,8 @@
 static void	sipcom_attach(device_t, device_t, void *);
 static void	sipcom_do_detach(device_t, enum sip_attach_stage);
 static int	sipcom_detach(device_t, int);
-static bool	sipcom_resume(device_t, pmf_qual_t);
-static bool	sipcom_suspend(device_t, pmf_qual_t);
+static bool	sipcom_resume(device_t, const pmf_qual_t *);
+static bool	sipcom_suspend(device_t, const pmf_qual_t *);
 
 int	gsip_copy_small = 0;
 int	sip_copy_small = 0;
@@ -962,7 +962,7 @@
 }
 
 static bool
-sipcom_resume(device_t self, pmf_qual_t qual)
+sipcom_resume(device_t self, const pmf_qual_t *qual)
 {
 	struct sip_softc *sc = device_private(self);
 
@@ -970,7 +970,7 @@
 }
 
 static bool
-sipcom_suspend(device_t self, pmf_qual_t qual)
+sipcom_suspend(device_t self, const pmf_qual_t *qual)
 {
 	struct sip_softc *sc = device_private(self);
 
--- a/sys/dev/pci/if_sk.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/if_sk.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_sk.c,v 1.64 2010/01/19 22:07:01 pooka Exp $	*/
+/*	$NetBSD: if_sk.c,v 1.65 2010/02/24 22:38:00 dyoung Exp $	*/
 
 /*-
  * Copyright (c) 2003 The NetBSD Foundation, Inc.
@@ -115,7 +115,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_sk.c,v 1.64 2010/01/19 22:07:01 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_sk.c,v 1.65 2010/02/24 22:38:00 dyoung Exp $");
 
 #include "rnd.h"
 
@@ -207,9 +207,9 @@
 void sk_setmulti(struct sk_if_softc *);
 void sk_tick(void *);
 
-static bool skc_suspend(device_t dv, pmf_qual_t qual);
-static bool skc_resume(device_t dv, pmf_qual_t qual);
-static bool sk_resume(device_t dv, pmf_qual_t qual);
+static bool skc_suspend(device_t, const pmf_qual_t *);
+static bool skc_resume(device_t, const pmf_qual_t *);
+static bool sk_resume(device_t dv, const pmf_qual_t *);
 
 /* #define SK_DEBUG 2 */
 #ifdef SK_DEBUG
@@ -2948,7 +2948,7 @@
 /* Power Management Framework */
 
 static bool
-skc_suspend(device_t dv, pmf_qual_t qual)
+skc_suspend(device_t dv, const pmf_qual_t *qual)
 {
 	struct sk_softc *sc = device_private(dv);
 
@@ -2961,7 +2961,7 @@
 }
 
 static bool
-skc_resume(device_t dv, pmf_qual_t qual)
+skc_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct sk_softc *sc = device_private(dv);
 
@@ -2974,7 +2974,7 @@
 }
 
 static bool
-sk_resume(device_t dv, pmf_qual_t qual)
+sk_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct sk_if_softc *sc_if = device_private(dv);
 
--- a/sys/dev/pci/if_vr.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/if_vr.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: if_vr.c,v 1.102 2010/01/19 22:07:02 pooka Exp $	*/
+/*	$NetBSD: if_vr.c,v 1.103 2010/02/24 22:38:01 dyoung Exp $	*/
 
 /*-
  * Copyright (c) 1998, 1999 The NetBSD Foundation, Inc.
@@ -97,7 +97,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_vr.c,v 1.102 2010/01/19 22:07:02 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_vr.c,v 1.103 2010/02/24 22:38:01 dyoung Exp $");
 
 #include "rnd.h"
 
@@ -315,7 +315,7 @@
 static void	vr_reset(struct vr_softc *);
 static int	vr_restore_state(pci_chipset_tag_t, pcitag_t, device_t,
     pcireg_t);
-static bool	vr_resume(device_t, pmf_qual_t);
+static bool	vr_resume(device_t, const pmf_qual_t *);
 
 int	vr_copy_small = 0;
 
@@ -1751,7 +1751,7 @@
 }
 
 static bool
-vr_resume(device_t self, pmf_qual_t qual)
+vr_resume(device_t self, const pmf_qual_t *qual)
 {
 	struct vr_softc *sc = device_private(self);
 
--- a/sys/dev/pci/if_wpi.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/if_wpi.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*  $NetBSD: if_wpi.c,v 1.45 2010/01/19 22:07:02 pooka Exp $    */
+/*  $NetBSD: if_wpi.c,v 1.46 2010/02/24 22:38:01 dyoung Exp $    */
 
 /*-
  * Copyright (c) 2006, 2007
@@ -18,7 +18,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_wpi.c,v 1.45 2010/01/19 22:07:02 pooka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_wpi.c,v 1.46 2010/02/24 22:38:01 dyoung Exp $");
 
 /*
  * Driver for Intel PRO/Wireless 3945ABG 802.11 network adapters.
@@ -168,7 +168,7 @@
 static void wpi_hw_config(struct wpi_softc *);
 static int  wpi_init(struct ifnet *);
 static void wpi_stop(struct ifnet *, int);
-static bool wpi_resume(device_t, pmf_qual_t);
+static bool wpi_resume(device_t, const pmf_qual_t *);
 static int	wpi_getrfkill(struct wpi_softc *);
 static void wpi_sysctlattach(struct wpi_softc *);
 
@@ -3186,7 +3186,7 @@
 }
 
 static bool
-wpi_resume(device_t dv, pmf_qual_t qual)
+wpi_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct wpi_softc *sc = device_private(dv);
 
--- a/sys/dev/pci/ixpide.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/ixpide.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: ixpide.c,v 1.15 2010/01/08 19:56:52 dyoung Exp $	*/
+/*	$NetBSD: ixpide.c,v 1.16 2010/02/24 22:38:01 dyoung Exp $	*/
 
 /*
  *  Copyright (c) 2004 The NetBSD Foundation.
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ixpide.c,v 1.15 2010/01/08 19:56:52 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ixpide.c,v 1.16 2010/02/24 22:38:01 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -38,8 +38,8 @@
 #include <dev/pci/pciidevar.h>
 #include <dev/pci/pciide_ixp_reg.h>
 
-static bool	ixpide_resume(device_t, pmf_qual_t);
-static bool	ixpide_suspend(device_t, pmf_qual_t);
+static bool	ixpide_resume(device_t, const pmf_qual_t *);
+static bool	ixpide_suspend(device_t, const pmf_qual_t *);
 static int	ixpide_match(device_t, cfdata_t, void *);
 static void	ixpide_attach(device_t, device_t, void *);
 
@@ -146,7 +146,7 @@
 };
 
 static bool
-ixpide_resume(device_t dv, pmf_qual_t qual)
+ixpide_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct pciide_softc *sc = device_private(dv);
 
@@ -159,7 +159,7 @@
 }
 
 static bool
-ixpide_suspend(device_t dv, pmf_qual_t qual)
+ixpide_suspend(device_t dv, const pmf_qual_t *qual)
 {
 	struct pciide_softc *sc = device_private(dv);
 
--- a/sys/dev/pci/mvsata_pci.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/mvsata_pci.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: mvsata_pci.c,v 1.2 2010/01/08 19:56:52 dyoung Exp $	*/
+/*	$NetBSD: mvsata_pci.c,v 1.3 2010/02/24 22:38:01 dyoung Exp $	*/
 /*
  * Copyright (c) 2008 KIYOHARA Takashi
  * All rights reserved.
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: mvsata_pci.c,v 1.2 2010/01/08 19:56:52 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: mvsata_pci.c,v 1.3 2010/02/24 22:38:01 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/bus.h>
@@ -98,7 +98,7 @@
 static int mvsata_pci_detach(device_t, int);
 
 static int mvsata_pci_intr(void *);
-static bool mvsata_pci_resume(device_t, pmf_qual_t qual);
+static bool mvsata_pci_resume(device_t, const pmf_qual_t *qual);
 
 static int mvsata_pci_sreset(struct mvsata_softc *);
 static int mvsata_pci_misc_reset(struct mvsata_softc *);
@@ -298,7 +298,7 @@
 }
 
 static bool
-mvsata_pci_resume(device_t dev, pmf_qual_t qual)
+mvsata_pci_resume(device_t dev, const pmf_qual_t *qual)
 {
 
 	/* not yet... */
--- a/sys/dev/pci/neo.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/neo.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: neo.c,v 1.44 2010/01/08 19:56:52 dyoung Exp $	*/
+/*	$NetBSD: neo.c,v 1.45 2010/02/24 22:38:01 dyoung Exp $	*/
 
 /*
  * Copyright (c) 1999 Cameron Grant <gandalf@vilnya.demon.co.uk>
@@ -32,7 +32,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: neo.c,v 1.44 2010/01/08 19:56:52 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: neo.c,v 1.45 2010/02/24 22:38:01 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -549,7 +549,7 @@
 }
 
 static bool
-neo_resume(device_t dv, pmf_qual_t qual)
+neo_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct neo_softc *sc = device_private(dv);
 
--- a/sys/dev/pci/pccbb.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/pccbb.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: pccbb.c,v 1.193 2010/01/08 19:56:52 dyoung Exp $	*/
+/*	$NetBSD: pccbb.c,v 1.194 2010/02/24 22:38:01 dyoung Exp $	*/
 
 /*
  * Copyright (c) 1998, 1999 and 2000
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pccbb.c,v 1.193 2010/01/08 19:56:52 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pccbb.c,v 1.194 2010/02/24 22:38:01 dyoung Exp $");
 
 /*
 #define CBB_DEBUG
@@ -199,8 +199,8 @@
 /* for config_defer */
 static void pccbb_pci_callback(device_t);
 
-static bool pccbb_suspend(device_t, pmf_qual_t);
-static bool pccbb_resume(device_t, pmf_qual_t);
+static bool pccbb_suspend(device_t, const pmf_qual_t *);
+static bool pccbb_resume(device_t, const pmf_qual_t *);
 
 #if defined SHOW_REGS
 static void cb_show_regs(pci_chipset_tag_t pc, pcitag_t tag,
@@ -3179,7 +3179,7 @@
 #endif /* rbus */
 
 static bool
-pccbb_suspend(device_t dv, pmf_qual_t qual)
+pccbb_suspend(device_t dv, const pmf_qual_t *qual)
 {
 	struct pccbb_softc *sc = device_private(dv);
 	bus_space_tag_t base_memt = sc->sc_base_memt;	/* socket regs memory */
@@ -3214,7 +3214,7 @@
 }
 
 static bool
-pccbb_resume(device_t dv, pmf_qual_t qual)
+pccbb_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct pccbb_softc *sc = device_private(dv);
 	bus_space_tag_t base_memt = sc->sc_base_memt;	/* socket regs memory */
--- a/sys/dev/pci/pci.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/pci.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: pci.c,v 1.126 2010/02/23 19:28:00 dyoung Exp $	*/
+/*	$NetBSD: pci.c,v 1.127 2010/02/24 22:38:01 dyoung Exp $	*/
 
 /*
  * Copyright (c) 1995, 1996, 1997, 1998
@@ -36,7 +36,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pci.c,v 1.126 2010/02/23 19:28:00 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pci.c,v 1.127 2010/02/24 22:38:01 dyoung Exp $");
 
 #include "opt_pci.h"
 
@@ -823,7 +823,7 @@
 };
 
 static bool
-pci_child_suspend(device_t dv, pmf_qual_t qual)
+pci_child_suspend(device_t dv, const pmf_qual_t *qual)
 {
 	struct pci_child_power *priv = device_pmf_bus_private(dv);
 	pcireg_t ocsr, csr;
@@ -851,7 +851,7 @@
 }
 
 static bool
-pci_child_resume(device_t dv, pmf_qual_t qual)
+pci_child_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct pci_child_power *priv = device_pmf_bus_private(dv);
 
--- a/sys/dev/pci/piixide.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/piixide.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: piixide.c,v 1.53 2010/01/08 19:56:52 dyoung Exp $	*/
+/*	$NetBSD: piixide.c,v 1.54 2010/02/24 22:38:01 dyoung Exp $	*/
 
 /*
  * Copyright (c) 1999, 2000, 2001 Manuel Bouyer.
@@ -25,7 +25,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: piixide.c,v 1.53 2010/01/08 19:56:52 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: piixide.c,v 1.54 2010/02/24 22:38:01 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -45,8 +45,8 @@
 static void piixsata_chip_map(struct pciide_softc*, struct pci_attach_args *);
 static int piix_dma_init(void *, int, int, void *, size_t, int);
 
-static bool piixide_resume(device_t, pmf_qual_t);
-static bool piixide_suspend(device_t, pmf_qual_t);
+static bool piixide_resume(device_t, const pmf_qual_t *);
+static bool piixide_suspend(device_t, const pmf_qual_t *);
 static int  piixide_match(device_t, cfdata_t, void *);
 static void piixide_attach(device_t, device_t, void *);
 
@@ -367,7 +367,7 @@
 }
 
 static bool
-piixide_resume(device_t dv, pmf_qual_t qual)
+piixide_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct pciide_softc *sc = device_private(dv);
 
@@ -380,7 +380,7 @@
 }
 
 static bool
-piixide_suspend(device_t dv, pmf_qual_t qual)
+piixide_suspend(device_t dv, const pmf_qual_t *qual)
 {
 	struct pciide_softc *sc = device_private(dv);
 
--- a/sys/dev/pci/piixpm.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/piixpm.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: piixpm.c,v 1.31 2010/01/08 19:56:52 dyoung Exp $ */
+/* $NetBSD: piixpm.c,v 1.32 2010/02/24 22:38:01 dyoung Exp $ */
 /*	$OpenBSD: piixpm.c,v 1.20 2006/02/27 08:25:02 grange Exp $	*/
 
 /*
@@ -22,7 +22,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: piixpm.c,v 1.31 2010/01/08 19:56:52 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: piixpm.c,v 1.32 2010/02/24 22:38:01 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -82,8 +82,8 @@
 static int	piixpm_match(device_t, cfdata_t, void *);
 static void	piixpm_attach(device_t, device_t, void *);
 
-static bool	piixpm_suspend(device_t, pmf_qual_t);
-static bool	piixpm_resume(device_t, pmf_qual_t);
+static bool	piixpm_suspend(device_t, const pmf_qual_t *);
+static bool	piixpm_resume(device_t, const pmf_qual_t *);
 
 static int	piixpm_i2c_acquire_bus(void *, int);
 static void	piixpm_i2c_release_bus(void *, int);
@@ -241,7 +241,7 @@
 }
 
 static bool
-piixpm_suspend(device_t dv, pmf_qual_t qual)
+piixpm_suspend(device_t dv, const pmf_qual_t *qual)
 {
 	struct piixpm_softc *sc = device_private(dv);
 
@@ -254,7 +254,7 @@
 }
 
 static bool
-piixpm_resume(device_t dv, pmf_qual_t qual)
+piixpm_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct piixpm_softc *sc = device_private(dv);
 
--- a/sys/dev/pci/ppb.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/ppb.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: ppb.c,v 1.41 2010/01/08 19:56:52 dyoung Exp $	*/
+/*	$NetBSD: ppb.c,v 1.42 2010/02/24 22:38:01 dyoung Exp $	*/
 
 /*
  * Copyright (c) 1996, 1998 Christopher G. Demetriou.  All rights reserved.
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ppb.c,v 1.41 2010/01/08 19:56:52 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ppb.c,v 1.42 2010/02/24 22:38:01 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -51,8 +51,8 @@
 	pcireg_t sc_pciconfext[48];
 };
 
-static bool		ppb_resume(device_t, pmf_qual_t);
-static bool		ppb_suspend(device_t, pmf_qual_t);
+static bool		ppb_resume(device_t, const pmf_qual_t *);
+static bool		ppb_suspend(device_t, const pmf_qual_t *);
 
 static int
 ppbmatch(device_t parent, cfdata_t match, void *aux)
@@ -169,7 +169,7 @@
 }
 
 static bool
-ppb_resume(device_t dv, pmf_qual_t qual)
+ppb_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct ppb_softc *sc = device_private(dv);
 	int off;
@@ -188,7 +188,7 @@
 }
 
 static bool
-ppb_suspend(device_t dv, pmf_qual_t qual)
+ppb_suspend(device_t dv, const pmf_qual_t *qual)
 {
 	struct ppb_softc *sc = device_private(dv);
 	int off;
--- a/sys/dev/pci/siisata_pci.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/siisata_pci.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: siisata_pci.c,v 1.7 2010/01/30 16:16:35 jakllsch Exp $ */
+/* $NetBSD: siisata_pci.c,v 1.8 2010/02/24 22:38:01 dyoung Exp $ */
 
 /*
  * Copyright (c) 2006 Manuel Bouyer.
@@ -51,7 +51,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: siisata_pci.c,v 1.7 2010/01/30 16:16:35 jakllsch Exp $");
+__KERNEL_RCSID(0, "$NetBSD: siisata_pci.c,v 1.8 2010/02/24 22:38:01 dyoung Exp $");
 
 #include <sys/types.h>
 #include <sys/malloc.h>
@@ -75,7 +75,7 @@
 static int siisata_pci_match(device_t, cfdata_t, void *);
 static void siisata_pci_attach(device_t, device_t, void *);
 static int siisata_pci_detach(device_t, int);
-static bool siisata_pci_resume(device_t, pmf_qual_t);
+static bool siisata_pci_resume(device_t, const pmf_qual_t *);
 
 struct siisata_pci_board {
 	pci_vendor_id_t		spb_vend;
@@ -298,7 +298,7 @@
 }
 
 static bool
-siisata_pci_resume(device_t dv, pmf_qual_t qual)
+siisata_pci_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct siisata_pci_softc *psc = device_private(dv);
 	struct siisata_softc *sc = &psc->si_sc;
--- a/sys/dev/pci/uhci_pci.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/uhci_pci.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: uhci_pci.c,v 1.49 2010/01/08 19:56:52 dyoung Exp $	*/
+/*	$NetBSD: uhci_pci.c,v 1.50 2010/02/24 22:38:01 dyoung Exp $	*/
 
 /*
  * Copyright (c) 1998 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uhci_pci.c,v 1.49 2010/01/08 19:56:52 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uhci_pci.c,v 1.50 2010/02/24 22:38:01 dyoung Exp $");
 
 #include "ehci.h"
 
@@ -55,7 +55,7 @@
 #include <dev/usb/uhcireg.h>
 #include <dev/usb/uhcivar.h>
 
-static bool	uhci_pci_resume(device_t, pmf_qual_t);
+static bool	uhci_pci_resume(device_t, const pmf_qual_t *);
 
 struct uhci_pci_softc {
 	uhci_softc_t		sc;
@@ -229,7 +229,7 @@
 }
 
 static bool
-uhci_pci_resume(device_t dv, pmf_qual_t qual)
+uhci_pci_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct uhci_pci_softc *sc = device_private(dv);
 
--- a/sys/dev/pci/vga_pci.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/vga_pci.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: vga_pci.c,v 1.48 2010/01/08 19:56:52 dyoung Exp $	*/
+/*	$NetBSD: vga_pci.c,v 1.49 2010/02/24 22:38:01 dyoung Exp $	*/
 
 /*
  * Copyright (c) 1995, 1996 Carnegie-Mellon University.
@@ -28,7 +28,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vga_pci.c,v 1.48 2010/01/08 19:56:52 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vga_pci.c,v 1.49 2010/02/24 22:38:01 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -90,7 +90,7 @@
 static void	vga_pci_attach(device_t, device_t, void *);
 static int	vga_pci_rescan(device_t, const char *, const int *);
 static int	vga_pci_lookup_quirks(struct pci_attach_args *);
-static bool	vga_pci_resume(device_t dv, pmf_qual_t);
+static bool	vga_pci_resume(device_t dv, const pmf_qual_t *);
 
 CFATTACH_DECL2_NEW(vga_pci, sizeof(struct vga_pci_softc),
     vga_pci_match, vga_pci_attach, NULL, NULL, vga_pci_rescan, NULL);
@@ -263,7 +263,7 @@
 }
 
 static bool
-vga_pci_resume(device_t dv, pmf_qual_t qual)
+vga_pci_resume(device_t dv, const pmf_qual_t *qual)
 {
 #if defined(VGA_POST) && NACPICA > 0
 	extern int acpi_md_vbios_reset;
--- a/sys/dev/pci/viaide.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/viaide.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: viaide.c,v 1.67 2010/01/08 19:56:52 dyoung Exp $	*/
+/*	$NetBSD: viaide.c,v 1.68 2010/02/24 22:38:01 dyoung Exp $	*/
 
 /*
  * Copyright (c) 1999, 2000, 2001 Manuel Bouyer.
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: viaide.c,v 1.67 2010/01/08 19:56:52 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: viaide.c,v 1.68 2010/02/24 22:38:01 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -59,8 +59,8 @@
 static void	viaide_attach(device_t, device_t, void *);
 static const struct pciide_product_desc *
 		viaide_lookup(pcireg_t);
-static bool	viaide_suspend(device_t, pmf_qual_t);
-static bool	viaide_resume(device_t, pmf_qual_t);
+static bool	viaide_suspend(device_t, const pmf_qual_t *);
+static bool	viaide_resume(device_t, const pmf_qual_t *);
 
 CFATTACH_DECL_NEW(viaide, sizeof(struct pciide_softc),
     viaide_match, viaide_attach, NULL, NULL);
@@ -400,7 +400,7 @@
 }
 
 static bool
-viaide_suspend(device_t dv, pmf_qual_t qual)
+viaide_suspend(device_t dv, const pmf_qual_t *qual)
 {
 	struct pciide_softc *sc = device_private(dv);
 
@@ -415,7 +415,7 @@
 }
 
 static bool
-viaide_resume(device_t dv, pmf_qual_t qual)
+viaide_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct pciide_softc *sc = device_private(dv);
 
--- a/sys/dev/pci/yds.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pci/yds.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: yds.c,v 1.48 2010/01/08 19:56:52 dyoung Exp $	*/
+/*	$NetBSD: yds.c,v 1.49 2010/02/24 22:38:01 dyoung Exp $	*/
 
 /*
  * Copyright (c) 2000, 2001 Kazuki Sakamoto and Minoura Makoto.
@@ -39,7 +39,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: yds.c,v 1.48 2010/01/08 19:56:52 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: yds.c,v 1.49 2010/02/24 22:38:01 dyoung Exp $");
 
 #include "mpu.h"
 
@@ -677,7 +677,7 @@
 }
 
 static bool
-yds_suspend(device_t dv, pmf_qual_t qual)
+yds_suspend(device_t dv, const pmf_qual_t *qual)
 {
 	struct yds_softc *sc = device_private(dv);
 	pci_chipset_tag_t pc = sc->sc_pc;
@@ -692,7 +692,7 @@
 }
 
 static bool
-yds_resume(device_t dv, pmf_qual_t qual)
+yds_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct yds_softc *sc = device_private(dv);
 	pci_chipset_tag_t pc = sc->sc_pc;
--- a/sys/dev/pckbport/pckbd.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pckbport/pckbd.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: pckbd.c,v 1.28 2010/01/08 20:00:32 dyoung Exp $ */
+/* $NetBSD: pckbd.c,v 1.29 2010/02/24 22:38:08 dyoung Exp $ */
 
 /*-
  * Copyright (c) 1998, 2009 The NetBSD Foundation, Inc.
@@ -68,7 +68,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pckbd.c,v 1.28 2010/01/08 20:00:32 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pckbd.c,v 1.29 2010/02/24 22:38:08 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -236,7 +236,7 @@
 }
 
 static bool
-pckbd_suspend(device_t dv, pmf_qual_t qual)
+pckbd_suspend(device_t dv, const pmf_qual_t *qual)
 {
 	struct pckbd_softc *sc = device_private(dv);
 	u_char cmd[1];
@@ -259,7 +259,7 @@
 }
 
 static bool
-pckbd_resume(device_t dv, pmf_qual_t qual)
+pckbd_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct pckbd_softc *sc = device_private(dv);
 	u_char cmd[1], resp[1];
--- a/sys/dev/pckbport/pms.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pckbport/pms.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: pms.c,v 1.29 2010/01/08 20:00:32 dyoung Exp $ */
+/* $NetBSD: pms.c,v 1.30 2010/02/24 22:38:08 dyoung Exp $ */
 
 /*-
  * Copyright (c) 2004 Kentaro Kurahone.
@@ -26,7 +26,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pms.c,v 1.29 2010/01/08 20:00:32 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pms.c,v 1.30 2010/02/24 22:38:08 dyoung Exp $");
 
 #include "opt_pms.h"
 
@@ -90,8 +90,8 @@
 int	pms_ioctl(void *, u_long, void *, int, struct lwp *);
 void	pms_disable(void *);
 
-static bool	pms_suspend(device_t, pmf_qual_t);
-static bool	pms_resume(device_t, pmf_qual_t);
+static bool	pms_suspend(device_t, const pmf_qual_t *);
+static bool	pms_resume(device_t, const pmf_qual_t *);
 
 const struct wsmouse_accessops pms_accessops = {
 	pms_enable,
@@ -343,7 +343,7 @@
 }
 
 static bool
-pms_suspend(device_t dv, pmf_qual_t qual)
+pms_suspend(device_t dv, const pmf_qual_t *qual)
 {
 	struct pms_softc *sc = device_private(dv);
 
@@ -354,7 +354,7 @@
 }
 
 static bool
-pms_resume(device_t dv, pmf_qual_t qual)
+pms_resume(device_t dv, const pmf_qual_t *qual)
 {
 	struct pms_softc *sc = device_private(dv);
 
--- a/sys/dev/pcmcia/bt3c.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pcmcia/bt3c.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: bt3c.c,v 1.20 2010/01/08 20:01:00 dyoung Exp $ */
+/* $NetBSD: bt3c.c,v 1.21 2010/02/24 22:38:08 dyoung Exp $ */
 
 /*-
  * Copyright (c) 2005 Iain D. Hibbert,
@@ -69,7 +69,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: bt3c.c,v 1.20 2010/01/08 20:01:00 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: bt3c.c,v 1.21 2010/02/24 22:38:08 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -135,8 +135,8 @@
 static int bt3c_match(device_t, cfdata_t, void *);
 static void bt3c_attach(device_t, device_t, void *);
 static int bt3c_detach(device_t, int);
-static bool bt3c_suspend(device_t, pmf_qual_t);
-static bool bt3c_resume(device_t, pmf_qual_t);
+static bool bt3c_suspend(device_t, const pmf_qual_t *);
+static bool bt3c_resume(device_t, const pmf_qual_t *);
 
 CFATTACH_DECL_NEW(bt3c, sizeof(struct bt3c_softc),
     bt3c_match, bt3c_attach, bt3c_detach, NULL);
@@ -1019,7 +1019,7 @@
 }
 
 static bool
-bt3c_suspend(device_t self, pmf_qual_t qual)
+bt3c_suspend(device_t self, const pmf_qual_t *qual)
 {
 	struct bt3c_softc *sc = device_private(self);
 
@@ -1032,7 +1032,7 @@
 }
 
 static bool
-bt3c_resume(device_t self, pmf_qual_t qual)
+bt3c_resume(device_t self, const pmf_qual_t *qual)
 {
 	struct bt3c_softc *sc = device_private(self);
 
--- a/sys/dev/pcmcia/btbc.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/pcmcia/btbc.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: btbc.c,v 1.14 2010/01/08 20:01:00 dyoung Exp $	*/
+/*	$NetBSD: btbc.c,v 1.15 2010/02/24 22:38:08 dyoung Exp $	*/
 /*
  * Copyright (c) 2007 KIYOHARA Takashi
  * All rights reserved.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: btbc.c,v 1.14 2010/01/08 20:01:00 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: btbc.c,v 1.15 2010/02/24 22:38:08 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/callout.h>
@@ -104,8 +104,8 @@
 static int btbc_match(device_t, cfdata_t, void *);
 static void btbc_attach(device_t, device_t, void *);
 static int btbc_detach(device_t, int);
-static bool btbc_suspend(device_t, pmf_qual_t);
-static bool btbc_resume(device_t, pmf_qual_t);
+static bool btbc_suspend(device_t, const pmf_qual_t *);
+static bool btbc_resume(device_t, const pmf_qual_t *);
 
 static void btbc_activity_led_timeout(void *);
 static void btbc_enable_activity_led(struct btbc_softc *);
@@ -224,7 +224,7 @@
 }
 
 static bool
-btbc_suspend(device_t self, pmf_qual_t qual)
+btbc_suspend(device_t self, const pmf_qual_t *qual)
 {
 	struct btbc_softc *sc = device_private(self);
 
@@ -238,7 +238,7 @@
 
 
 static bool
-btbc_resume(device_t self, pmf_qual_t qual)
+btbc_resume(device_t self, const pmf_qual_t *qual)
 {
 	struct btbc_softc *sc = device_private(self);
 
--- a/sys/dev/sbus/dbri.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/sbus/dbri.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: dbri.c,v 1.30 2010/02/18 02:21:38 macallan Exp $	*/
+/*	$NetBSD: dbri.c,v 1.31 2010/02/24 22:38:08 dyoung Exp $	*/
 
 /*
  * Copyright (C) 1997 Rudolf Koenig (rfkoenig@immd4.informatik.uni-erlangen.de)
@@ -34,7 +34,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: dbri.c,v 1.30 2010/02/18 02:21:38 macallan Exp $");
+__KERNEL_RCSID(0, "$NetBSD: dbri.c,v 1.31 2010/02/24 22:38:08 dyoung Exp $");
 
 #include "audio.h"
 #if NAUDIO > 0
@@ -162,8 +162,8 @@
 static paddr_t	dbri_mappage(void *, void *, off_t, int);
 static void	dbri_set_power(struct dbri_softc *, int);
 static void	dbri_bring_up(struct dbri_softc *);
-static bool	dbri_suspend(device_t, pmf_qual_t);
-static bool	dbri_resume(device_t, pmf_qual_t);
+static bool	dbri_suspend(device_t, const pmf_qual_t *);
+static bool	dbri_resume(device_t, const pmf_qual_t *);
 
 /* stupid support routines */
 static uint32_t	reverse_bytes(uint32_t, int);
@@ -2178,7 +2178,7 @@
 }
 
 static bool
-dbri_suspend(device_t self, pmf_qual_t qual)
+dbri_suspend(device_t self, const pmf_qual_t *qual)
 {
 	struct dbri_softc *sc = device_private(self);
 
@@ -2187,7 +2187,7 @@
 }
 
 static bool
-dbri_resume(device_t self, pmf_qual_t qual)
+dbri_resume(device_t self, const pmf_qual_t *qual)
 {
 	struct dbri_softc *sc = device_private(self);
 
--- a/sys/dev/sbus/p9100.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/sbus/p9100.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: p9100.c,v 1.51 2010/01/08 20:01:21 dyoung Exp $ */
+/*	$NetBSD: p9100.c,v 1.52 2010/02/24 22:38:08 dyoung Exp $ */
 
 /*-
  * Copyright (c) 1998, 2005, 2006 The NetBSD Foundation, Inc.
@@ -38,7 +38,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: p9100.c,v 1.51 2010/01/08 20:01:21 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: p9100.c,v 1.52 2010/02/24 22:38:08 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -236,8 +236,8 @@
 #endif
 
 /* power management stuff */
-static bool p9100_suspend(device_t, pmf_qual_t);
-static bool p9100_resume(device_t, pmf_qual_t);
+static bool p9100_suspend(device_t, const pmf_qual_t *);
+static bool p9100_resume(device_t, const pmf_qual_t *);
 
 #if NTCTRL > 0
 static void p9100_set_extvga(void *, int);
@@ -925,7 +925,7 @@
 }
 
 static bool
-p9100_suspend(device_t dev, pmf_qual_t qual)
+p9100_suspend(device_t dev, const pmf_qual_t *qual)
 {
 	struct p9100_softc *sc = device_private(dev);
 
@@ -946,7 +946,7 @@
 }
 
 static bool
-p9100_resume(device_t dev, pmf_qual_t qual)
+p9100_resume(device_t dev, const pmf_qual_t *qual)
 {
 	struct p9100_softc *sc = device_private(dev);
 
--- a/sys/dev/scsipi/sd.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/scsipi/sd.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: sd.c,v 1.291 2010/01/08 20:05:16 dyoung Exp $	*/
+/*	$NetBSD: sd.c,v 1.292 2010/02/24 22:38:08 dyoung Exp $	*/
 
 /*-
  * Copyright (c) 1998, 2003, 2004 The NetBSD Foundation, Inc.
@@ -47,7 +47,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sd.c,v 1.291 2010/01/08 20:05:16 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sd.c,v 1.292 2010/02/24 22:38:08 dyoung Exp $");
 
 #include "opt_scsi.h"
 #include "rnd.h"
@@ -100,7 +100,7 @@
 static void	sdstart(struct scsipi_periph *);
 static void	sdrestart(void *);
 static void	sddone(struct scsipi_xfer *, int);
-static bool	sd_suspend(device_t, pmf_qual_t);
+static bool	sd_suspend(device_t, const pmf_qual_t *);
 static bool	sd_shutdown(device_t, int);
 static int	sd_interpret_sense(struct scsipi_xfer *);
 static int	sdlastclose(device_t);
@@ -1338,7 +1338,7 @@
 }
 
 static bool
-sd_suspend(device_t dv, pmf_qual_t qual)
+sd_suspend(device_t dv, const pmf_qual_t *qual)
 {
 	return sd_shutdown(dv, boothowto); /* XXX no need to poll */
 }
--- a/sys/dev/sdmmc/sdhc.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/sdmmc/sdhc.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: sdhc.c,v 1.5 2010/01/12 08:41:16 uebayasi Exp $	*/
+/*	$NetBSD: sdhc.c,v 1.6 2010/02/24 22:38:08 dyoung Exp $	*/
 /*	$OpenBSD: sdhc.c,v 1.25 2009/01/13 19:44:20 grange Exp $	*/
 
 /*
@@ -23,7 +23,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sdhc.c,v 1.5 2010/01/12 08:41:16 uebayasi Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sdhc.c,v 1.6 2010/02/24 22:38:08 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/device.h>
@@ -310,7 +310,7 @@
 }
 
 bool
-sdhc_suspend(device_t dev, pmf_qual_t qual)
+sdhc_suspend(device_t dev, const pmf_qual_t *qual)
 {
 	struct sdhc_softc *sc = device_private(dev);
 	struct sdhc_host *hp;
@@ -329,7 +329,7 @@
 }
 
 bool
-sdhc_resume(device_t dev, pmf_qual_t qual)
+sdhc_resume(device_t dev, const pmf_qual_t *qual)
 {
 	struct sdhc_softc *sc = device_private(dev);
 	struct sdhc_host *hp;
--- a/sys/dev/sdmmc/sdhcvar.h	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/sdmmc/sdhcvar.h	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: sdhcvar.h,v 1.2 2010/01/08 19:53:10 dyoung Exp $	*/
+/*	$NetBSD: sdhcvar.h,v 1.3 2010/02/24 22:38:08 dyoung Exp $	*/
 /*	$OpenBSD: sdhcvar.h,v 1.3 2007/09/06 08:01:01 jsg Exp $	*/
 
 /*
@@ -44,8 +44,8 @@
 int	sdhc_host_found(struct sdhc_softc *, bus_space_tag_t,
 	    bus_space_handle_t, bus_size_t);
 int	sdhc_intr(void *);
-bool	sdhc_suspend(device_t dev, pmf_qual_t qual);
-bool	sdhc_resume(device_t dev, pmf_qual_t qual);
+bool	sdhc_suspend(device_t dev, const pmf_qual_t *qual);
+bool	sdhc_resume(device_t dev, const pmf_qual_t *qual);
 bool	sdhc_shutdown(device_t dev, int flags);
 
 #endif	/* _SDHCVAR_H_ */
--- a/sys/dev/usb/ehci.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/usb/ehci.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: ehci.c,v 1.165 2010/01/08 20:38:43 dyoung Exp $ */
+/*	$NetBSD: ehci.c,v 1.166 2010/02/24 22:38:09 dyoung Exp $ */
 
 /*
  * Copyright (c) 2004-2008 The NetBSD Foundation, Inc.
@@ -52,7 +52,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ehci.c,v 1.165 2010/01/08 20:38:43 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ehci.c,v 1.166 2010/02/24 22:38:09 dyoung Exp $");
 
 #include "ohci.h"
 #include "uhci.h"
@@ -1123,7 +1123,7 @@
  * bus glue needs to call out to it.
  */
 bool
-ehci_suspend(device_t dv, pmf_qual_t qual)
+ehci_suspend(device_t dv, const pmf_qual_t *qual)
 {
 	ehci_softc_t *sc = device_private(dv);
 	int i, s;
@@ -1174,7 +1174,7 @@
 }
 
 bool
-ehci_resume(device_t dv, pmf_qual_t qual)
+ehci_resume(device_t dv, const pmf_qual_t *qual)
 {
 	ehci_softc_t *sc = device_private(dv);
 	int i;
--- a/sys/dev/usb/ehcivar.h	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/usb/ehcivar.h	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: ehcivar.h,v 1.35 2010/01/08 20:39:03 dyoung Exp $ */
+/*	$NetBSD: ehcivar.h,v 1.36 2010/02/24 22:38:09 dyoung Exp $ */
 
 /*
  * Copyright (c) 2001 The NetBSD Foundation, Inc.
@@ -187,6 +187,6 @@
 int		ehci_detach(ehci_softc_t *, int);
 int		ehci_activate(device_t, enum devact);
 void		ehci_childdet(device_t, device_t);
-bool		ehci_suspend(device_t, pmf_qual_t);
-bool		ehci_resume(device_t, pmf_qual_t);
+bool		ehci_suspend(device_t, const pmf_qual_t *);
+bool		ehci_resume(device_t, const pmf_qual_t *);
 bool		ehci_shutdown(device_t, int);
--- a/sys/dev/usb/ohci.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/usb/ohci.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: ohci.c,v 1.205 2010/01/08 20:39:04 dyoung Exp $	*/
+/*	$NetBSD: ohci.c,v 1.206 2010/02/24 22:38:09 dyoung Exp $	*/
 /*	$FreeBSD: src/sys/dev/usb/ohci.c,v 1.22 1999/11/17 22:33:40 n_hibma Exp $	*/
 
 /*
@@ -41,7 +41,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ohci.c,v 1.205 2010/01/08 20:39:04 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ohci.c,v 1.206 2010/02/24 22:38:09 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -997,7 +997,7 @@
 }
 
 bool
-ohci_resume(device_t dv, pmf_qual_t qual)
+ohci_resume(device_t dv, const pmf_qual_t *qual)
 {
 	ohci_softc_t *sc = device_private(dv);
 	uint32_t ctl;
@@ -1032,7 +1032,7 @@
 }
 
 bool
-ohci_suspend(device_t dv, pmf_qual_t qual)
+ohci_suspend(device_t dv, const pmf_qual_t *qual)
 {
 	ohci_softc_t *sc = device_private(dv);
 	uint32_t ctl;
--- a/sys/dev/usb/ohcivar.h	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/usb/ohcivar.h	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: ohcivar.h,v 1.46 2010/01/08 20:39:04 dyoung Exp $	*/
+/*	$NetBSD: ohcivar.h,v 1.47 2010/02/24 22:38:09 dyoung Exp $	*/
 /*	$FreeBSD: src/sys/dev/usb/ohcivar.h,v 1.13 1999/11/17 22:33:41 n_hibma Exp $	*/
 
 /*
@@ -153,5 +153,5 @@
 void		ohci_childdet(device_t, device_t);
 int		ohci_activate(device_t, enum devact);
 #endif
-bool		ohci_resume(device_t, pmf_qual_t);
-bool		ohci_suspend(device_t, pmf_qual_t);
+bool		ohci_resume(device_t, const pmf_qual_t *);
+bool		ohci_suspend(device_t, const pmf_qual_t *);
--- a/sys/dev/usb/uhci.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/usb/uhci.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: uhci.c,v 1.231 2010/01/08 20:39:04 dyoung Exp $	*/
+/*	$NetBSD: uhci.c,v 1.232 2010/02/24 22:38:09 dyoung Exp $	*/
 /*	$FreeBSD: src/sys/dev/usb/uhci.c,v 1.33 1999/11/17 22:33:41 n_hibma Exp $	*/
 
 /*
@@ -42,7 +42,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: uhci.c,v 1.231 2010/01/08 20:39:04 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: uhci.c,v 1.232 2010/02/24 22:38:09 dyoung Exp $");
 
 #include <sys/param.h>
 #include <sys/systm.h>
@@ -691,7 +691,7 @@
  * are almost suspended anyway.
  */
 bool
-uhci_resume(device_t dv, pmf_qual_t qual)
+uhci_resume(device_t dv, const pmf_qual_t *qual)
 {
 	uhci_softc_t *sc = device_private(dv);
 	int cmd;
@@ -736,7 +736,7 @@
 }
 
 bool
-uhci_suspend(device_t dv, pmf_qual_t qual)
+uhci_suspend(device_t dv, const pmf_qual_t *qual)
 {
 	uhci_softc_t *sc = device_private(dv);
 	int cmd;
--- a/sys/dev/usb/uhcivar.h	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/usb/uhcivar.h	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: uhcivar.h,v 1.46 2010/01/08 20:39:04 dyoung Exp $	*/
+/*	$NetBSD: uhcivar.h,v 1.47 2010/02/24 22:38:09 dyoung Exp $	*/
 /*	$FreeBSD: src/sys/dev/usb/uhcivar.h,v 1.14 1999/11/17 22:33:42 n_hibma Exp $	*/
 
 /*
@@ -189,7 +189,7 @@
 int		uhci_detach(uhci_softc_t *, int);
 void		uhci_childdet(device_t, device_t);
 int		uhci_activate(device_t, enum devact);
-bool		uhci_resume(device_t, pmf_qual_t);
-bool		uhci_suspend(device_t, pmf_qual_t);
+bool		uhci_resume(device_t, const pmf_qual_t *);
+bool		uhci_suspend(device_t, const pmf_qual_t *);
 #endif
 
--- a/sys/dev/wscons/wsdisplay.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/wscons/wsdisplay.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: wsdisplay.c,v 1.130 2010/02/02 16:54:40 drochner Exp $ */
+/* $NetBSD: wsdisplay.c,v 1.131 2010/02/24 22:38:09 dyoung Exp $ */
 
 /*
  * Copyright (c) 1996, 1997 Christopher G. Demetriou.  All rights reserved.
@@ -31,7 +31,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: wsdisplay.c,v 1.130 2010/02/02 16:54:40 drochner Exp $");
+__KERNEL_RCSID(0, "$NetBSD: wsdisplay.c,v 1.131 2010/02/24 22:38:09 dyoung Exp $");
 
 #include "opt_wsdisplay_compat.h"
 #include "opt_wsmsgattrs.h"
@@ -168,7 +168,7 @@
 static void wsdisplay_emul_attach(device_t, device_t, void *);
 static int wsdisplay_noemul_match(device_t, cfdata_t, void *);
 static void wsdisplay_noemul_attach(device_t, device_t, void *);
-static bool wsdisplay_suspend(device_t, pmf_qual_t);
+static bool wsdisplay_suspend(device_t, const pmf_qual_t *);
 
 CFATTACH_DECL_NEW(wsdisplay_emul, sizeof (struct wsdisplay_softc),
     wsdisplay_emul_match, wsdisplay_emul_attach, NULL, NULL);
@@ -681,7 +681,7 @@
 }
 
 static bool
-wsdisplay_suspend(device_t dv, pmf_qual_t qual)
+wsdisplay_suspend(device_t dv, const pmf_qual_t *qual)
 {
 	struct wsdisplay_softc *sc = device_private(dv);
 #ifdef DIAGNOSTIC
--- a/sys/dev/wscons/wskbd.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/wscons/wskbd.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: wskbd.c,v 1.126 2010/01/28 22:36:19 drochner Exp $ */
+/* $NetBSD: wskbd.c,v 1.127 2010/02/24 22:38:09 dyoung Exp $ */
 
 /*
  * Copyright (c) 1996, 1997 Christopher G. Demetriou.  All rights reserved.
@@ -105,7 +105,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: wskbd.c,v 1.126 2010/01/28 22:36:19 drochner Exp $");
+__KERNEL_RCSID(0, "$NetBSD: wskbd.c,v 1.127 2010/02/24 22:38:09 dyoung Exp $");
 
 #include "opt_ddb.h"
 #include "opt_kgdb.h"
@@ -347,7 +347,7 @@
 };
 #endif
 
-static bool wskbd_suspend(device_t dv, pmf_qual_t);
+static bool wskbd_suspend(device_t dv, const pmf_qual_t *);
 static void wskbd_repeat(void *v);
 
 static int wskbd_console_initted;
@@ -505,7 +505,7 @@
 }
 
 static bool
-wskbd_suspend(device_t dv, pmf_qual_t qual)
+wskbd_suspend(device_t dv, const pmf_qual_t *qual)
 {
 	struct wskbd_softc *sc = device_private(dv);
 
--- a/sys/dev/wsfb/genfbvar.h	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/dev/wsfb/genfbvar.h	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: genfbvar.h,v 1.13 2010/02/22 05:55:10 ahoka Exp $ */
+/*	$NetBSD: genfbvar.h,v 1.14 2010/02/24 22:38:09 dyoung Exp $ */
 
 /*-
  * Copyright (c) 2007 Michael Lorenz
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: genfbvar.h,v 1.13 2010/02/22 05:55:10 ahoka Exp $");
+__KERNEL_RCSID(0, "$NetBSD: genfbvar.h,v 1.14 2010/02/24 22:38:09 dyoung Exp $");
 
 #ifndef GENFBVAR_H
 #define GENFBVAR_H
@@ -66,8 +66,8 @@
 };
 
 struct genfb_pmf_callback {
-	bool (*gpc_suspend)(device_t, pmf_qual_t);
-	bool (*gpc_resume)(device_t, pmf_qual_t);
+	bool (*gpc_suspend)(device_t, const pmf_qual_t *);
+	bool (*gpc_resume)(device_t, const pmf_qual_t *);
 };
 
 struct genfb_softc {
--- a/sys/external/bsd/drm/dist/bsd-core/i915_drv.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/external/bsd/drm/dist/bsd-core/i915_drv.c	Wed Feb 24 22:37:54 2010 +0000
@@ -163,7 +163,7 @@
 #elif   defined(__NetBSD__)
 
 static bool
-i915drm_suspend(device_t self, pmf_qual_t qual)
+i915drm_suspend(device_t self, const pmf_qual_t *qual)
 {
 	struct drm_device *dev = device_private(self);
 
@@ -172,7 +172,7 @@
 }
 
 static bool
-i915drm_resume(device_t self, pmf_qual_t qual)
+i915drm_resume(device_t self, const pmf_qual_t *qual)
 {
 	struct drm_device *dev = device_private(self);
 
--- a/sys/external/bsd/drm/dist/bsd-core/radeon_drv.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/external/bsd/drm/dist/bsd-core/radeon_drv.c	Wed Feb 24 22:37:54 2010 +0000
@@ -135,7 +135,7 @@
 #elif   defined(__NetBSD__)
 
 static bool
-radeondrm_suspend(device_t self, pmf_qual_t qual)
+radeondrm_suspend(device_t self, const pmf_qual_t *qual)
 {
 	struct drm_device *rad_dev = device_private(self);
 	drm_radeon_cp_stop_t stop_args;
@@ -148,7 +148,7 @@
 }
 
 static bool
-radeondrm_resume(device_t self, pmf_qual_t qual)
+radeondrm_resume(device_t self, const pmf_qual_t *qual)
 {
 	struct drm_device *rad_dev = device_private(self);
 	if (radeon_cp_resume(rad_dev, NULL, NULL) != 0)
--- a/sys/kern/kern_pmf.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/kern/kern_pmf.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: kern_pmf.c,v 1.32 2010/02/17 00:15:24 dyoung Exp $ */
+/* $NetBSD: kern_pmf.c,v 1.33 2010/02/24 22:38:09 dyoung Exp $ */
 
 /*-
  * Copyright (c) 2007 Jared D. McNeill <jmcneill@invisible.ca>
@@ -27,7 +27,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: kern_pmf.c,v 1.32 2010/02/17 00:15:24 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: kern_pmf.c,v 1.33 2010/02/24 22:38:09 dyoung Exp $");
 
 #include <sys/types.h>
 #include <sys/param.h>
@@ -108,7 +108,7 @@
 typedef struct pmf_suspend_workitem {
 	struct work	psw_work;
 	device_t	psw_dev;
-	struct pmf_qual	psw_qual;
+	pmf_qual_t	psw_qual;
 } pmf_suspend_workitem_t;
 
 static struct pool pew_pl;
@@ -116,16 +116,17 @@
 static pmf_event_workitem_t *pmf_event_workitem_get(void);
 static void pmf_event_workitem_put(pmf_event_workitem_t *);
 
-bool pmf_device_resume_locked(device_t, pmf_qual_t);
-bool pmf_device_suspend_locked(device_t, pmf_qual_t);
+bool pmf_device_resume_locked(device_t, const pmf_qual_t *);
+bool pmf_device_suspend_locked(device_t, const pmf_qual_t *);
 static bool device_pmf_any_suspensor(device_t, devact_level_t);
 
 static bool
-complete_suspension(device_t dev, device_suspensor_t *susp, pmf_qual_t pqp)
+complete_suspension(device_t dev, const device_suspensor_t **susp,
+    const pmf_qual_t *pqp)
 {
 	int i;
-	struct pmf_qual pq;
-	device_suspensor_t ds;
+	pmf_qual_t pq;
+	const device_suspensor_t *ds;
 
 	ds = pmf_qual_suspension(pqp);
 	KASSERT(ds->ds_delegator != NULL);
@@ -229,7 +230,7 @@
 }
 
 bool
-pmf_system_bus_resume(pmf_qual_t qual)
+pmf_system_bus_resume(const pmf_qual_t *qual)
 {
 	bool rv;
 	device_t curdev;
@@ -260,7 +261,7 @@
 }
 
 bool
-pmf_system_resume(pmf_qual_t qual)
+pmf_system_resume(const pmf_qual_t *qual)
 {
 	bool rv;
 	device_t curdev, parent;
@@ -301,7 +302,7 @@
 }
 
 bool
-pmf_system_suspend(pmf_qual_t qual)
+pmf_system_suspend(const pmf_qual_t *qual)
 {
 	device_t curdev;
 	deviter_t di;
@@ -410,8 +411,8 @@
 
 bool
 pmf_device_register1(device_t dev,
-    bool (*suspend)(device_t, pmf_qual_t),
-    bool (*resume)(device_t, pmf_qual_t),
+    bool (*suspend)(device_t, const pmf_qual_t *),
+    bool (*resume)(device_t, const pmf_qual_t *),
     bool (*shutdown)(device_t, int))
 {
 	if (!device_pmf_driver_register(dev, suspend, resume, shutdown))
@@ -433,29 +434,29 @@
 	device_pmf_driver_deregister(dev);
 }
 
-static const struct device_suspensor _device_suspensor_drvctl = {
+static const device_suspensor_t _device_suspensor_drvctl = {
 	  .ds_delegator = NULL
 	, .ds_name = "drvctl"
 };
 
-static const struct device_suspensor _device_suspensor_self = {
+static const device_suspensor_t _device_suspensor_self = {
 	  .ds_delegator = NULL
 	, .ds_name = "self"
 };
 
 #if 0
-static const struct device_suspensor _device_suspensor_self_delegate = {
+static const device_suspensor_t _device_suspensor_self_delegate = {
 	  .ds_delegator = &_device_suspensor_self
 	, .ds_name = "self delegate"
 };
 #endif
 
-static const struct device_suspensor _device_suspensor_system = {
+static const device_suspensor_t _device_suspensor_system = {
 	  .ds_delegator = NULL
 	, .ds_name = "system"
 };
 
-const struct device_suspensor
+const device_suspensor_t
     * const device_suspensor_self = &_device_suspensor_self,
 #if 0
     * const device_suspensor_self_delegate = &_device_suspensor_self_delegate,
@@ -463,31 +464,31 @@
     * const device_suspensor_system = &_device_suspensor_system,
     * const device_suspensor_drvctl = &_device_suspensor_drvctl;
 
-static const struct pmf_qual _pmf_qual_system = {
+static const pmf_qual_t _pmf_qual_system = {
 	  .pq_actlvl = DEVACT_LEVEL_FULL
 	, .pq_suspensor = &_device_suspensor_system
 };
 
-static const struct pmf_qual _pmf_qual_drvctl = {
+static const pmf_qual_t _pmf_qual_drvctl = {
 	  .pq_actlvl = DEVACT_LEVEL_FULL
 	, .pq_suspensor = &_device_suspensor_drvctl
 };
 
-static const struct pmf_qual _pmf_qual_self = {
+static const pmf_qual_t _pmf_qual_self = {
 	  .pq_actlvl = DEVACT_LEVEL_DRIVER
 	, .pq_suspensor = &_device_suspensor_self
 };
 
-const struct pmf_qual
+const pmf_qual_t
     * const PMF_Q_DRVCTL = &_pmf_qual_drvctl,
     * const PMF_Q_NONE = &_pmf_qual_system,
     * const PMF_Q_SELF = &_pmf_qual_self;
 
 static bool
-device_suspensor_delegates_to(device_suspensor_t ds,
-    device_suspensor_t delegate)
+device_suspensor_delegates_to(const device_suspensor_t *ds,
+    const device_suspensor_t *delegate)
 {
-	device_suspensor_t iter;
+	const device_suspensor_t *iter;
 
 	for (iter = delegate->ds_delegator; iter != NULL;
 	     iter = iter->ds_delegator) {
@@ -498,8 +499,8 @@
 }
 
 static bool
-add_suspensor(device_t dev, const char *kind, device_suspensor_t *susp,
-    device_suspensor_t ds)
+add_suspensor(device_t dev, const char *kind, const device_suspensor_t **susp,
+    const device_suspensor_t *ds)
 {
 	int i;
 
@@ -543,9 +544,9 @@
 }
 
 static bool
-device_pmf_add_suspensor(device_t dev, pmf_qual_t pq)
+device_pmf_add_suspensor(device_t dev, const pmf_qual_t *pq)
 {
-	device_suspensor_t ds;
+	const device_suspensor_t *ds;
 
 	KASSERT(pq != NULL);
 
@@ -564,7 +565,7 @@
 
 #if 0
 static bool
-device_pmf_has_suspension(device_t dev, device_suspensor_t ds)
+device_pmf_has_suspension(device_t dev, const device_suspensor_t *ds)
 {
 	int i;
 
@@ -579,7 +580,7 @@
 #endif
 
 static bool
-any_suspensor(device_t dev, const char *kind, device_suspensor_t *susp)
+any_suspensor(device_t dev, const char *kind, const device_suspensor_t **susp)
 {
 	int i;
 	bool suspended = false;
@@ -618,8 +619,8 @@
 }
 
 static bool
-remove_suspensor(device_t dev, const char *kind, device_suspensor_t *susp,
-    device_suspensor_t ds)
+remove_suspensor(device_t dev, const char *kind,
+    const device_suspensor_t **susp, const device_suspensor_t *ds)
 {
 	int i;
 
@@ -644,9 +645,9 @@
 }
 
 static bool
-device_pmf_remove_suspensor(device_t dev, pmf_qual_t pq)
+device_pmf_remove_suspensor(device_t dev, const pmf_qual_t *pq)
 {
-	device_suspensor_t ds;
+	const device_suspensor_t *ds;
 
 	KASSERT(pq != NULL);
 
@@ -665,8 +666,8 @@
 }
 
 void
-pmf_self_suspensor_init(device_t dev, struct device_suspensor *ds,
-    struct pmf_qual *pq)
+pmf_self_suspensor_init(device_t dev, device_suspensor_t *ds,
+    pmf_qual_t *pq)
 {
 	ds->ds_delegator = device_suspensor_self;
 	snprintf(ds->ds_name, sizeof(ds->ds_name), "%s-self",
@@ -676,7 +677,7 @@
 }
 
 bool
-pmf_device_suspend(device_t dev, pmf_qual_t qual)
+pmf_device_suspend(device_t dev, const pmf_qual_t *qual)
 {
 	bool rc;
 
@@ -696,7 +697,7 @@
 }
 
 bool
-pmf_device_suspend_locked(device_t dev, pmf_qual_t qual)
+pmf_device_suspend_locked(device_t dev, const pmf_qual_t *qual)
 {
 	if (!device_pmf_add_suspensor(dev, qual))
 		return false;
@@ -717,7 +718,7 @@
 }
 
 bool
-pmf_device_resume(device_t dev, pmf_qual_t qual)
+pmf_device_resume(device_t dev, const pmf_qual_t *qual)
 {
 	bool rc;
 
@@ -737,7 +738,7 @@
 }
 
 bool
-pmf_device_resume_locked(device_t dev, pmf_qual_t qual)
+pmf_device_resume_locked(device_t dev, const pmf_qual_t *qual)
 {
 	device_pmf_remove_suspensor(dev, qual);
 
@@ -760,12 +761,12 @@
 }
 
 bool
-pmf_device_recursive_suspend(device_t dv, pmf_qual_t qual)
+pmf_device_recursive_suspend(device_t dv, const pmf_qual_t *qual)
 {
 	bool rv = true;
 	device_t curdev;
 	deviter_t di;
-	struct pmf_qual pq;
+	pmf_qual_t pq;
 
 	pmf_qual_recursive_copy(&pq, qual);
 
@@ -784,17 +785,17 @@
 }
 
 void
-pmf_qual_recursive_copy(struct pmf_qual *dst, pmf_qual_t src)
+pmf_qual_recursive_copy(pmf_qual_t *dst, const pmf_qual_t *src)
 {
 	*dst = *src;
 	dst->pq_actlvl = DEVACT_LEVEL_FULL;
 }
 
 bool
-pmf_device_recursive_resume(device_t dv, pmf_qual_t qual)
+pmf_device_recursive_resume(device_t dv, const pmf_qual_t *qual)
 {
 	device_t parent;
-	struct pmf_qual pq;
+	pmf_qual_t pq;
 
 	if (device_is_active(dv))
 		return true;
@@ -811,7 +812,7 @@
 }
 
 bool
-pmf_device_descendants_release(device_t dv, pmf_qual_t qual)
+pmf_device_descendants_release(device_t dv, const pmf_qual_t *qual)
 {
 	bool rv = true;
 	device_t curdev;
@@ -832,7 +833,7 @@
 }
 
 bool
-pmf_device_descendants_resume(device_t dv, pmf_qual_t qual)
+pmf_device_descendants_resume(device_t dv, const pmf_qual_t *qual)
 {
 	bool rv = true;
 	device_t curdev;
@@ -855,9 +856,9 @@
 }
 
 bool
-pmf_device_subtree_release(device_t dv, pmf_qual_t qual)
+pmf_device_subtree_release(device_t dv, const pmf_qual_t *qual)
 {
-	struct pmf_qual pq;
+	pmf_qual_t pq;
 
 	device_pmf_remove_suspensor(dv, qual);
 
@@ -867,9 +868,9 @@
 }
 
 bool
-pmf_device_subtree_resume(device_t dv, pmf_qual_t qual)
+pmf_device_subtree_resume(device_t dv, const pmf_qual_t *qual)
 {
-	struct pmf_qual pq;
+	pmf_qual_t pq;
 
 	if (!pmf_device_subtree_release(dv, qual))
 		return false;
@@ -885,7 +886,7 @@
 #include <net/if.h>
 
 static bool
-pmf_class_network_suspend(device_t dev, pmf_qual_t qual)
+pmf_class_network_suspend(device_t dev, const pmf_qual_t *qual)
 {
 	struct ifnet *ifp = device_pmf_class_private(dev);
 	int s;
@@ -898,7 +899,7 @@
 }
 
 static bool
-pmf_class_network_resume(device_t dev, pmf_qual_t qual)
+pmf_class_network_resume(device_t dev, const pmf_qual_t *qual)
 {
 	struct ifnet *ifp = device_pmf_class_private(dev);
 	int s;
--- a/sys/kern/subr_autoconf.c	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/kern/subr_autoconf.c	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: subr_autoconf.c,v 1.202 2010/02/19 22:28:47 dyoung Exp $ */
+/* $NetBSD: subr_autoconf.c,v 1.203 2010/02/24 22:38:10 dyoung Exp $ */
 
 /*
  * Copyright (c) 1996, 2000 Christopher G. Demetriou
@@ -77,7 +77,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: subr_autoconf.c,v 1.202 2010/02/19 22:28:47 dyoung Exp $");
+__KERNEL_RCSID(0, "$NetBSD: subr_autoconf.c,v 1.203 2010/02/24 22:38:10 dyoung Exp $");
 
 #ifdef _KERNEL_OPT
 #include "opt_ddb.h"
@@ -1984,7 +1984,7 @@
 }
 
 bool
-device_pmf_driver_suspend(device_t dev, pmf_qual_t qual)
+device_pmf_driver_suspend(device_t dev, const pmf_qual_t *qual)
 {
 	if ((dev->dv_flags & DVF_DRIVER_SUSPENDED) != 0)
 		return true;
@@ -2000,7 +2000,7 @@
 }
 
 bool
-device_pmf_driver_resume(device_t dev, pmf_qual_t qual)
+device_pmf_driver_resume(device_t dev, const pmf_qual_t *qual)
 {
 	if ((dev->dv_flags & DVF_DRIVER_SUSPENDED) == 0)
 		return true;
@@ -2027,8 +2027,8 @@
 
 bool
 device_pmf_driver_register(device_t dev,
-    bool (*suspend)(device_t, pmf_qual_t),
-    bool (*resume)(device_t, pmf_qual_t),
+    bool (*suspend)(device_t, const pmf_qual_t *),
+    bool (*resume)(device_t, const pmf_qual_t *),
     bool (*shutdown)(device_t, int))
 {
 	dev->dv_driver_suspend = suspend;
@@ -2165,7 +2165,7 @@
 }
 
 bool
-device_pmf_bus_suspend(device_t dev, pmf_qual_t qual)
+device_pmf_bus_suspend(device_t dev, const pmf_qual_t *qual)
 {
 	if ((dev->dv_flags & DVF_BUS_SUSPENDED) != 0)
 		return true;
@@ -2182,7 +2182,7 @@
 }
 
 bool
-device_pmf_bus_resume(device_t dev, pmf_qual_t qual)
+device_pmf_bus_resume(device_t dev, const pmf_qual_t *qual)
 {
 	if ((dev->dv_flags & DVF_BUS_SUSPENDED) == 0)
 		return true;
@@ -2207,8 +2207,8 @@
 
 void
 device_pmf_bus_register(device_t dev, void *priv,
-    bool (*suspend)(device_t, pmf_qual_t),
-    bool (*resume)(device_t, pmf_qual_t),
+    bool (*suspend)(device_t, const pmf_qual_t *),
+    bool (*resume)(device_t, const pmf_qual_t *),
     bool (*shutdown)(device_t, int), void (*deregister)(device_t))
 {
 	dev->dv_bus_private = priv;
@@ -2237,7 +2237,7 @@
 }
 
 bool
-device_pmf_class_suspend(device_t dev, pmf_qual_t qual)
+device_pmf_class_suspend(device_t dev, const pmf_qual_t *qual)
 {
 	if ((dev->dv_flags & DVF_CLASS_SUSPENDED) != 0)
 		return true;
@@ -2251,7 +2251,7 @@
 }
 
 bool
-device_pmf_class_resume(device_t dev, pmf_qual_t qual)
+device_pmf_class_resume(device_t dev, const pmf_qual_t *qual)
 {
 	if ((dev->dv_flags & DVF_CLASS_SUSPENDED) == 0)
 		return true;
@@ -2269,8 +2269,8 @@
 
 void
 device_pmf_class_register(device_t dev, void *priv,
-    bool (*suspend)(device_t, pmf_qual_t),
-    bool (*resume)(device_t, pmf_qual_t),
+    bool (*suspend)(device_t, const pmf_qual_t *),
+    bool (*resume)(device_t, const pmf_qual_t *),
     void (*deregister)(device_t))
 {
 	dev->dv_class_private = priv;
--- a/sys/sys/device.h	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/sys/device.h	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: device.h,v 1.134 2010/02/15 20:20:34 dyoung Exp $ */
+/* $NetBSD: device.h,v 1.135 2010/02/24 22:38:10 dyoung Exp $ */
 
 /*
  * Copyright (c) 1996, 2000 Christopher G. Demetriou
@@ -132,7 +132,7 @@
 };
 
 struct device_suspensor {
-	const struct device_suspensor	*ds_delegator;
+	const device_suspensor_t	*ds_delegator;
 	char				ds_name[32];
 };
 
@@ -158,29 +158,30 @@
 	size_t		dv_activity_count;
 	void		(**dv_activity_handlers)(device_t, devactive_t);
 
-	bool		(*dv_driver_suspend)(device_t, pmf_qual_t);
-	bool		(*dv_driver_resume)(device_t, pmf_qual_t);
+	bool		(*dv_driver_suspend)(device_t, const pmf_qual_t *);
+	bool		(*dv_driver_resume)(device_t, const pmf_qual_t *);
 	bool		(*dv_driver_shutdown)(device_t, int);
 	bool		(*dv_driver_child_register)(device_t);
 
 	void		*dv_bus_private;
-	bool		(*dv_bus_suspend)(device_t, pmf_qual_t);
-	bool		(*dv_bus_resume)(device_t, pmf_qual_t);
+	bool		(*dv_bus_suspend)(device_t, const pmf_qual_t *);
+	bool		(*dv_bus_resume)(device_t, const pmf_qual_t *);
 	bool		(*dv_bus_shutdown)(device_t, int);
 	void		(*dv_bus_deregister)(device_t);
 
 	void		*dv_class_private;
-	bool		(*dv_class_suspend)(device_t, pmf_qual_t);
-	bool		(*dv_class_resume)(device_t, pmf_qual_t);
+	bool		(*dv_class_suspend)(device_t, const pmf_qual_t *);
+	bool		(*dv_class_resume)(device_t, const pmf_qual_t *);
 	void		(*dv_class_deregister)(device_t);
 
 	devgen_t		dv_add_gen,
 				dv_del_gen;
 
 	struct device_lock	dv_lock;
-	device_suspensor_t	dv_bus_suspensors[DEVICE_SUSPENSORS_MAX];
-	device_suspensor_t	dv_driver_suspensors[DEVICE_SUSPENSORS_MAX];
-	device_suspensor_t	dv_class_suspensors[DEVICE_SUSPENSORS_MAX];
+	const device_suspensor_t
+	    *dv_bus_suspensors[DEVICE_SUSPENSORS_MAX],
+	    *dv_driver_suspensors[DEVICE_SUSPENSORS_MAX],
+	    *dv_class_suspensors[DEVICE_SUSPENSORS_MAX];
 	struct device_garbage {
 		device_t	*dg_devs;
 		int		dg_ndevs;
@@ -528,13 +529,13 @@
 
 bool		device_pmf_is_registered(device_t);
 
-bool		device_pmf_driver_suspend(device_t, pmf_qual_t);
-bool		device_pmf_driver_resume(device_t, pmf_qual_t);
+bool		device_pmf_driver_suspend(device_t, const pmf_qual_t *);
+bool		device_pmf_driver_resume(device_t, const pmf_qual_t *);
 bool		device_pmf_driver_shutdown(device_t, int);
 
 bool		device_pmf_driver_register(device_t,
-		    bool (*)(device_t, pmf_qual_t),
-		    bool (*)(device_t, pmf_qual_t),
+		    bool (*)(device_t, const pmf_qual_t *),
+		    bool (*)(device_t, const pmf_qual_t *),
 		    bool (*)(device_t, int));
 void		device_pmf_driver_deregister(device_t);
 
@@ -543,8 +544,8 @@
 		    bool (*)(device_t));
 
 void		*device_pmf_bus_private(device_t);
-bool		device_pmf_bus_suspend(device_t, pmf_qual_t);
-bool		device_pmf_bus_resume(device_t, pmf_qual_t);
+bool		device_pmf_bus_suspend(device_t, const pmf_qual_t *);
+bool		device_pmf_bus_resume(device_t, const pmf_qual_t *);
 bool		device_pmf_bus_shutdown(device_t, int);
 
 device_lock_t	device_getlock(device_t);
@@ -552,24 +553,24 @@
 bool		device_pmf_lock(device_t);
 
 bool		device_is_self_suspended(device_t);
-void		device_pmf_self_suspend(device_t, pmf_qual_t);
-void		device_pmf_self_resume(device_t, pmf_qual_t);
-bool		device_pmf_self_wait(device_t, pmf_qual_t);
+void		device_pmf_self_suspend(device_t, const pmf_qual_t *);
+void		device_pmf_self_resume(device_t, const pmf_qual_t *);
+bool		device_pmf_self_wait(device_t, const pmf_qual_t *);
 
 void		device_pmf_bus_register(device_t, void *,
-		    bool (*)(device_t, pmf_qual_t),
-		    bool (*)(device_t, pmf_qual_t),
+		    bool (*)(device_t, const pmf_qual_t *),
+		    bool (*)(device_t, const pmf_qual_t *),
 		    bool (*)(device_t, int),
 		    void (*)(device_t));
 void		device_pmf_bus_deregister(device_t);
 
 void		*device_pmf_class_private(device_t);
-bool		device_pmf_class_suspend(device_t, pmf_qual_t);
-bool		device_pmf_class_resume(device_t, pmf_qual_t);
+bool		device_pmf_class_suspend(device_t, const pmf_qual_t *);
+bool		device_pmf_class_resume(device_t, const pmf_qual_t *);
 
 void		device_pmf_class_register(device_t, void *,
-		    bool (*)(device_t, pmf_qual_t),
-		    bool (*)(device_t, pmf_qual_t),
+		    bool (*)(device_t, const pmf_qual_t *),
+		    bool (*)(device_t, const pmf_qual_t *),
 		    void (*)(device_t));
 void		device_pmf_class_deregister(device_t);
 
--- a/sys/sys/device_if.h	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/sys/device_if.h	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/*	$NetBSD: device_if.h,v 1.4 2009/12/02 12:52:28 stacktic Exp $	*/
+/*	$NetBSD: device_if.h,v 1.5 2010/02/24 22:38:10 dyoung Exp $	*/
 
 #ifndef	_SYS_DEVICE_IF_H
 #define	_SYS_DEVICE_IF_H
@@ -21,7 +21,7 @@
 typedef uint64_t devgen_t;
 
 typedef struct device_lock *device_lock_t;
-typedef const struct device_suspensor *device_suspensor_t;
+typedef struct device_suspensor device_suspensor_t;
 #endif
 
 #endif	/* _SYS_DEVICE_IF_H */
--- a/sys/sys/pmf.h	Wed Feb 24 21:53:26 2010 +0000
+++ b/sys/sys/pmf.h	Wed Feb 24 22:37:54 2010 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: pmf.h,v 1.17 2010/01/08 20:07:15 dyoung Exp $ */
+/* $NetBSD: pmf.h,v 1.18 2010/02/24 22:38:10 dyoung Exp $ */
 
 /*-
  * Copyright (c) 2007 Jared D. McNeill <jmcneill@invisible.ca>
@@ -50,16 +50,16 @@
 } pmf_generic_event_t;
 
 struct pmf_qual {
-	device_suspensor_t	pq_suspensor;
-	devact_level_t		pq_actlvl;
+	const device_suspensor_t	*pq_suspensor;
+	devact_level_t			pq_actlvl;
 };
 
-typedef const struct pmf_qual * pmf_qual_t;
-extern const struct pmf_qual * const PMF_Q_NONE;
-extern const struct pmf_qual * const PMF_Q_SELF;
-extern const struct pmf_qual * const PMF_Q_DRVCTL;
+typedef struct pmf_qual pmf_qual_t;
+extern const pmf_qual_t * const PMF_Q_NONE;
+extern const pmf_qual_t * const PMF_Q_SELF;
+extern const pmf_qual_t * const PMF_Q_DRVCTL;
 
-extern const struct device_suspensor
+extern const device_suspensor_t
     * const device_suspensor_self,
     * const device_suspensor_system,
     * const device_suspensor_drvctl;
@@ -75,30 +75,30 @@
 bool		pmf_set_platform(const char *, const char *);
 const char	*pmf_get_platform(const char *);
 
-bool		pmf_system_resume(pmf_qual_t);
-bool		pmf_system_bus_resume(pmf_qual_t);
-bool		pmf_system_suspend(pmf_qual_t);
+bool		pmf_system_resume(const pmf_qual_t *);
+bool		pmf_system_bus_resume(const pmf_qual_t *);
+bool		pmf_system_suspend(const pmf_qual_t *);
 void		pmf_system_shutdown(int);
 
 bool		pmf_device_register1(device_t,
-		    bool (*)(device_t, pmf_qual_t),
-		    bool (*)(device_t, pmf_qual_t),
+		    bool (*)(device_t, const pmf_qual_t *),
+		    bool (*)(device_t, const pmf_qual_t *),
 		    bool (*)(device_t, int));
 /* compatibility */
 #define pmf_device_register(__d, __s, __r) \
 	pmf_device_register1((__d), (__s), (__r), NULL)
 
 void		pmf_device_deregister(device_t);
-bool		pmf_device_suspend(device_t, pmf_qual_t);
-bool		pmf_device_resume(device_t, pmf_qual_t);
+bool		pmf_device_suspend(device_t, const pmf_qual_t *);
+bool		pmf_device_resume(device_t, const pmf_qual_t *);
 
-bool		pmf_device_recursive_suspend(device_t, pmf_qual_t);
-bool		pmf_device_recursive_resume(device_t, pmf_qual_t);
-bool		pmf_device_descendants_resume(device_t, pmf_qual_t);
-bool		pmf_device_subtree_resume(device_t, pmf_qual_t);
+bool		pmf_device_recursive_suspend(device_t, const pmf_qual_t *);
+bool		pmf_device_recursive_resume(device_t, const pmf_qual_t *);
+bool		pmf_device_descendants_resume(device_t, const pmf_qual_t *);
+bool		pmf_device_subtree_resume(device_t, const pmf_qual_t *);
 
-bool		pmf_device_descendants_release(device_t, pmf_qual_t);
-bool		pmf_device_subtree_release(device_t, pmf_qual_t);
+bool		pmf_device_descendants_release(device_t, const pmf_qual_t *);
+bool		pmf_device_subtree_release(device_t, const pmf_qual_t *);
 
 struct ifnet;
 void		pmf_class_network_register(device_t, struct ifnet *);
@@ -106,24 +106,24 @@
 bool		pmf_class_input_register(device_t);
 bool		pmf_class_display_register(device_t);
 
-void		pmf_qual_recursive_copy(struct pmf_qual *, pmf_qual_t);
-void		pmf_self_suspensor_init(device_t, struct device_suspensor *,
-		    struct pmf_qual *);
+void		pmf_qual_recursive_copy(pmf_qual_t *, const pmf_qual_t *);
+void		pmf_self_suspensor_init(device_t, device_suspensor_t *,
+		    pmf_qual_t *);
 
-static inline device_suspensor_t
-pmf_qual_suspension(pmf_qual_t pq)
+static inline const device_suspensor_t *
+pmf_qual_suspension(const pmf_qual_t *pq)
 {
 	return pq->pq_suspensor;
 }
 
 static inline devact_level_t
-pmf_qual_depth(pmf_qual_t pq)
+pmf_qual_depth(const pmf_qual_t *pq)
 {
 	return pq->pq_actlvl;
 }
 
 static inline bool
-pmf_qual_descend_ok(pmf_qual_t pq)
+pmf_qual_descend_ok(const pmf_qual_t *pq)
 {
 	return pq->pq_actlvl == DEVACT_LEVEL_FULL;
 }