Index: ld.c =================================================================== RCS file: /cvsroot/src/sys/dev/ld.c,v retrieving revision 1.46 diff -u -r1.46 ld.c --- ld.c 4 Mar 2007 06:01:42 -0000 1.46 +++ ld.c 17 Mar 2007 01:33:35 -0000 @@ -75,7 +75,7 @@ static void ldgetdefaultlabel(struct ld_softc *, struct disklabel *); static void ldgetdisklabel(struct ld_softc *); static void ldminphys(struct buf *bp); -static void ldshutdown(void *); +static void ldshutdown(int, void *); static void ldstart(struct ld_softc *, struct buf *); static void ld_set_properties(struct ld_softc *); static void ld_config_interrupts (struct device *); @@ -265,7 +265,7 @@ /* ARGSUSED */ static void -ldshutdown(void *cookie) +ldshutdown(int why, void *cookie) { struct ld_softc *sc; int i; Index: acpi/acpi.c =================================================================== RCS file: /cvsroot/src/sys/dev/acpi/acpi.c,v retrieving revision 1.101 diff -u -r1.101 acpi.c --- acpi/acpi.c 19 Feb 2007 22:31:05 -0000 1.101 +++ acpi/acpi.c 17 Mar 2007 01:33:35 -0000 @@ -166,7 +166,7 @@ /* * Prototypes. */ -static void acpi_shutdown(void *); +static void acpi_shutdown(int, void *); static void acpi_build_tree(struct acpi_softc *); static ACPI_STATUS acpi_make_devnode(ACPI_HANDLE, UINT32, void *, void **); @@ -423,7 +423,7 @@ * might confuse us. */ static void -acpi_shutdown(void *arg) +acpi_shutdown(int why, void *arg) { /* nothing */ } Index: ata/wd.c =================================================================== RCS file: /cvsroot/src/sys/dev/ata/wd.c,v retrieving revision 1.337 diff -u -r1.337 wd.c --- ata/wd.c 4 Mar 2007 06:01:44 -0000 1.337 +++ ata/wd.c 17 Mar 2007 01:33:37 -0000 @@ -91,6 +91,7 @@ #include #include #include +#include #if NRND > 0 #include #endif @@ -193,7 +194,7 @@ int wd_get_params(struct wd_softc *, u_int8_t, struct ataparams *); int wd_standby(struct wd_softc *, int); int wd_flushcache(struct wd_softc *, int); -void wd_shutdown(void *); +void wd_shutdown(int, void *); int wd_getcache(struct wd_softc *, int *); int wd_setcache(struct wd_softc *, int); @@ -1907,10 +1908,12 @@ } void -wd_shutdown(void *arg) +wd_shutdown(int why, void *arg) { struct wd_softc *wd = arg; wd_flushcache(wd, AT_POLL); + if (why & RB_POWERDOWN) + wd_standby(wd, AT_POLL); } /* Index: bi/if_ni.c =================================================================== RCS file: /cvsroot/src/sys/dev/bi/if_ni.c,v retrieving revision 1.30 diff -u -r1.30 if_ni.c --- bi/if_ni.c 8 Mar 2007 23:17:56 -0000 1.30 +++ bi/if_ni.c 17 Mar 2007 01:33:37 -0000 @@ -149,7 +149,7 @@ static int ni_add_rxbuf(struct ni_softc *, struct ni_dg *, int); static void ni_setup(struct ni_softc *); static void nitimeout(struct ifnet *); -static void ni_shutdown(void *); +static void ni_shutdown(int, void *); static void ni_getpgs(struct ni_softc *sc, int size, void **v, paddr_t *p); static int failtest(struct ni_softc *, int, int, int, const char *); @@ -891,7 +891,8 @@ * Shutdown hook. Make sure the interface is stopped at reboot. */ void -ni_shutdown(arg) +ni_shutdown(why, arg) + int why; void *arg; { struct ni_softc *sc = arg; Index: cardbus/if_ath_cardbus.c =================================================================== RCS file: /cvsroot/src/sys/dev/cardbus/if_ath_cardbus.c,v retrieving revision 1.18 diff -u -r1.18 if_ath_cardbus.c --- cardbus/if_ath_cardbus.c 16 Nov 2006 01:32:48 -0000 1.18 +++ cardbus/if_ath_cardbus.c 17 Mar 2007 01:33:37 -0000 @@ -248,7 +248,7 @@ } void -ath_cardbus_shutdown(void *arg) +ath_cardbus_shutdown(int why, void *arg) { struct ath_cardbus_softc *csc; Index: eisa/if_fea.c =================================================================== RCS file: /cvsroot/src/sys/dev/eisa/if_fea.c,v retrieving revision 1.34 diff -u -r1.34 if_fea.c --- eisa/if_fea.c 4 Mar 2007 06:01:46 -0000 1.34 +++ eisa/if_fea.c 17 Mar 2007 01:33:37 -0000 @@ -442,6 +442,16 @@ #endif /* __bsdi__ */ #if defined(__NetBSD__) + +static void pdq_eisa_shutdown(int, void *); /* prototype */ + +static void +pdq_eisa_shutdown(int why, + void *arg) +{ + pdq_hwreset(arg); +} + static int pdq_eisa_match( struct device *parent, @@ -519,7 +529,7 @@ printf("\n"); return; } - sc->sc_ats = shutdownhook_establish((void (*)(void *)) pdq_hwreset, sc->sc_pdq); + sc->sc_ats = shutdownhook_establish(pdq_eisa_shutdown, sc->sc_pdq); if (sc->sc_ats == NULL) printf("%s: warning: couldn't establish shutdown hook\n", self->dv_xname); if (sc->sc_csrtag != sc->sc_iotag) Index: i2o/iop.c =================================================================== RCS file: /cvsroot/src/sys/dev/i2o/iop.c,v retrieving revision 1.64 diff -u -r1.64 iop.c --- i2o/iop.c 4 Mar 2007 06:01:47 -0000 1.64 +++ i2o/iop.c 17 Mar 2007 01:33:38 -0000 @@ -228,7 +228,7 @@ static void iop_configure_devices(struct iop_softc *, int, int); static void iop_devinfo(int, char *, size_t); static int iop_print(void *, const char *); -static void iop_shutdown(void *); +static void iop_shutdown(int, void *); static void iop_adjqparam(struct iop_softc *, int); static void iop_create_reconf_thread(void *); @@ -905,7 +905,7 @@ * Shut down all configured IOPs. */ static void -iop_shutdown(void *junk) +iop_shutdown(int why, void *junk) { struct iop_softc *sc; int i; Index: ic/aac.c =================================================================== RCS file: /cvsroot/src/sys/dev/ic/aac.c,v retrieving revision 1.30 diff -u -r1.30 aac.c --- ic/aac.c 4 Mar 2007 06:01:48 -0000 1.30 +++ ic/aac.c 17 Mar 2007 01:33:38 -0000 @@ -105,7 +105,7 @@ static void aac_host_response(struct aac_softc *); static int aac_init(struct aac_softc *); static int aac_print(void *, const char *); -static void aac_shutdown(void *); +static void aac_shutdown(int, void *); static void aac_startup(struct aac_softc *); static int aac_sync_command(struct aac_softc *, u_int32_t, u_int32_t, u_int32_t, u_int32_t, u_int32_t, u_int32_t *); @@ -693,7 +693,7 @@ } static void -aac_shutdown(void *cookie) +aac_shutdown(int why, void *cookie) { struct aac_softc *sc; struct aac_close_command cc; Index: ic/aic6915.c =================================================================== RCS file: /cvsroot/src/sys/dev/ic/aic6915.c,v retrieving revision 1.16 diff -u -r1.16 aic6915.c --- ic/aic6915.c 4 Mar 2007 06:01:48 -0000 1.16 +++ ic/aic6915.c 17 Mar 2007 01:33:39 -0000 @@ -82,7 +82,7 @@ static int sf_init(struct ifnet *); static void sf_stop(struct ifnet *, int); -static void sf_shutdown(void *); +static void sf_shutdown(int, void *); static void sf_txintr(struct sf_softc *); static void sf_rxintr(struct sf_softc *); @@ -340,7 +340,7 @@ * Shutdown hook -- make sure the interface is stopped at reboot. */ static void -sf_shutdown(void *arg) +sf_shutdown(int why, void *arg) { struct sf_softc *sc = arg; Index: ic/aic79xx.c =================================================================== RCS file: /cvsroot/src/sys/dev/ic/aic79xx.c,v retrieving revision 1.37 diff -u -r1.37 aic79xx.c --- ic/aic79xx.c 4 Mar 2007 06:01:48 -0000 1.37 +++ ic/aic79xx.c 17 Mar 2007 01:33:41 -0000 @@ -5165,7 +5165,7 @@ switch (ahd->init_level) { default: case 2: - ahd_shutdown(ahd); + ahd_shutdown(RB_USERCONF, ahd); TAILQ_REMOVE(&ahd_tailq, ahd, links); /* FALLTHROUGH */ case 1: @@ -5220,7 +5220,7 @@ } void -ahd_shutdown(void *arg) +ahd_shutdown(int why, void *arg) { struct ahd_softc *ahd; @@ -6880,7 +6880,7 @@ ahd_unpause(ahd); return (EBUSY); } - ahd_shutdown(ahd); + ahd_shutdown(RB_USERCONF, ahd); return (0); } Index: ic/aic79xxvar.h =================================================================== RCS file: /cvsroot/src/sys/dev/ic/aic79xxvar.h,v retrieving revision 1.22 diff -u -r1.22 aic79xxvar.h --- ic/aic79xxvar.h 16 Feb 2006 20:17:16 -0000 1.22 +++ ic/aic79xxvar.h 17 Mar 2007 01:33:42 -0000 @@ -1384,7 +1384,7 @@ int ahd_alloc_scbs(struct ahd_softc *); void ahd_free(struct ahd_softc *); int ahd_reset(struct ahd_softc *, int); -void ahd_shutdown(void *); +void ahd_shutdown(int, void *); int ahd_write_flexport(struct ahd_softc *, u_int, u_int); int ahd_read_flexport(struct ahd_softc *, u_int, Index: ic/aic7xxx.c =================================================================== RCS file: /cvsroot/src/sys/dev/ic/aic7xxx.c,v retrieving revision 1.124 diff -u -r1.124 aic7xxx.c --- ic/aic7xxx.c 4 Mar 2007 06:01:48 -0000 1.124 +++ ic/aic7xxx.c 17 Mar 2007 01:33:44 -0000 @@ -417,7 +417,7 @@ CAM_NO_HBA); /* Disable all interrupt sources by resetting the controller */ - ahc_shutdown(ahc); + ahc_shutdown(RB_USERCONF, ahc); } void @@ -3916,7 +3916,7 @@ switch (ahc->init_level) { default: case 2: - ahc_shutdown(ahc); + ahc_shutdown(RB_USERCONF, ahc); /* TAILQ_REMOVE(&ahc_tailq, ahc, links); XXX */ /* FALLTHROUGH */ case 1: @@ -3970,7 +3970,7 @@ } void -ahc_shutdown(void *arg) +ahc_shutdown(int why, void *arg) { struct ahc_softc *ahc; int i; @@ -5032,7 +5032,7 @@ } } } - ahc_shutdown(ahc); + ahc_shutdown(RB_USERCONF, ahc); return (0); } Index: ic/aic7xxxvar.h =================================================================== RCS file: /cvsroot/src/sys/dev/ic/aic7xxxvar.h,v retrieving revision 1.53 diff -u -r1.53 aic7xxxvar.h --- ic/aic7xxxvar.h 11 May 2006 01:02:15 -0000 1.53 +++ ic/aic7xxxvar.h 17 Mar 2007 01:33:44 -0000 @@ -1286,7 +1286,7 @@ int ahc_alloc_scbs(struct ahc_softc *); void ahc_free(struct ahc_softc *); int ahc_reset(struct ahc_softc *); -void ahc_shutdown(void *); +void ahc_shutdown(int, void *); /*************************** Interrupt Services *******************************/ void ahc_clear_intstat(struct ahc_softc *); Index: ic/ath.c =================================================================== RCS file: /cvsroot/src/sys/dev/ic/ath.c,v retrieving revision 1.82 diff -u -r1.82 ath.c --- ic/ath.c 4 Mar 2007 06:01:49 -0000 1.82 +++ ic/ath.c 17 Mar 2007 01:33:45 -0000 @@ -776,7 +776,7 @@ } void -ath_shutdown(void *arg) +ath_shutdown(int howto, void *arg) { struct ath_softc *sc = arg; Index: ic/athvar.h =================================================================== RCS file: /cvsroot/src/sys/dev/ic/athvar.h,v retrieving revision 1.20 diff -u -r1.20 athvar.h --- ic/athvar.h 4 Mar 2007 06:01:50 -0000 1.20 +++ ic/athvar.h 17 Mar 2007 01:33:46 -0000 @@ -308,7 +308,7 @@ void ath_suspend(struct ath_softc *, int); int ath_activate(struct device *, enum devact); void ath_power(int, void *); -void ath_shutdown(void *); +void ath_shutdown(int, void *); int ath_intr(void *); int ath_reset(struct ifnet *); void ath_sysctlattach(struct ath_softc *); Index: ic/atw.c =================================================================== RCS file: /cvsroot/src/sys/dev/ic/atw.c,v retrieving revision 1.126 diff -u -r1.126 atw.c --- ic/atw.c 4 Mar 2007 06:01:50 -0000 1.126 +++ ic/atw.c 17 Mar 2007 01:33:47 -0000 @@ -213,7 +213,7 @@ int atw_enable(struct atw_softc *); void atw_power(int, void *); void atw_reset(struct atw_softc *); -void atw_shutdown(void *); +void atw_shutdown(int, void *); /* Interrupt handlers */ void atw_linkintr(struct atw_softc *, u_int32_t); @@ -2779,7 +2779,7 @@ /* atw_shutdown: make sure the interface is stopped at reboot time. */ void -atw_shutdown(void *arg) +atw_shutdown(int why, void *arg) { struct atw_softc *sc = arg; Index: ic/atwvar.h =================================================================== RCS file: /cvsroot/src/sys/dev/ic/atwvar.h,v retrieving revision 1.23 diff -u -r1.23 atwvar.h --- ic/atwvar.h 4 Mar 2007 06:01:50 -0000 1.23 +++ ic/atwvar.h 17 Mar 2007 01:33:47 -0000 @@ -454,6 +454,6 @@ int atw_activate(struct device *, enum devact); int atw_intr(void *arg); void atw_power(int, void *); -void atw_shutdown(void *); +void atw_shutdown(int, void *); #endif /* _DEV_IC_ATWVAR_H_ */ Index: ic/awi.c =================================================================== RCS file: /cvsroot/src/sys/dev/ic/awi.c,v retrieving revision 1.74 diff -u -r1.74 awi.c --- ic/awi.c 4 Mar 2007 06:01:51 -0000 1.74 +++ ic/awi.c 17 Mar 2007 01:33:48 -0000 @@ -451,7 +451,7 @@ #endif /* __NetBSD__ */ void -awi_shutdown(void *arg) +awi_shutdown(int why, void *arg) { struct awi_softc *sc = arg; struct ifnet *ifp = &sc->sc_if; Index: ic/awivar.h =================================================================== RCS file: /cvsroot/src/sys/dev/ic/awivar.h,v retrieving revision 1.22 diff -u -r1.22 awivar.h --- ic/awivar.h 11 Dec 2005 12:21:26 -0000 1.22 +++ ic/awivar.h 17 Mar 2007 01:33:48 -0000 @@ -156,7 +156,7 @@ int awi_activate(struct device *, enum devact); void awi_power(int, void *); #endif -void awi_shutdown(void *); +void awi_shutdown(int, void *); int awi_intr(void *); #endif /* _DEV_IC_AWIVAR_H */ Index: ic/cac.c =================================================================== RCS file: /cvsroot/src/sys/dev/ic/cac.c,v retrieving revision 1.40 diff -u -r1.40 cac.c --- ic/cac.c 4 Mar 2007 06:01:51 -0000 1.40 +++ ic/cac.c 17 Mar 2007 01:33:48 -0000 @@ -70,7 +70,7 @@ static int cac_ccb_poll(struct cac_softc *, struct cac_ccb *, int); static int cac_ccb_start(struct cac_softc *, struct cac_ccb *); static int cac_print(void *, const char *); -static void cac_shutdown(void *); +static void cac_shutdown(int, void *); static struct cac_ccb *cac_l0_completed(struct cac_softc *); static int cac_l0_fifo_full(struct cac_softc *); @@ -210,7 +210,7 @@ * Shut down all `cac' controllers. */ static void -cac_shutdown(void *cookie) +cac_shutdown(int why, void *cookie) { extern struct cfdriver cac_cd; struct cac_softc *sc; Index: ic/ciss.c =================================================================== RCS file: /cvsroot/src/sys/dev/ic/ciss.c,v retrieving revision 1.7 diff -u -r1.7 ciss.c --- ic/ciss.c 4 Mar 2007 06:01:53 -0000 1.7 +++ ic/ciss.c 17 Mar 2007 01:33:48 -0000 @@ -80,7 +80,7 @@ #endif static int ciss_sync(struct ciss_softc *sc); static void ciss_heartbeat(void *v); -static void ciss_shutdown(void *v); +static void ciss_shutdown(int why, void *v); #if 0 static void ciss_kthread(void *v); #endif @@ -382,7 +382,7 @@ } static void -ciss_shutdown(void *v) +ciss_shutdown(int why, void *v) { struct ciss_softc *sc = v; Index: ic/com.c =================================================================== RCS file: /cvsroot/src/sys/dev/ic/com.c,v retrieving revision 1.259 diff -u -r1.259 com.c --- ic/com.c 4 Mar 2007 06:01:53 -0000 1.259 +++ ic/com.c 17 Mar 2007 01:33:48 -0000 @@ -2589,7 +2589,7 @@ * FIFO mode. */ void -com_cleanup(void *arg) +com_cleanup(int why, void *arg) { struct com_softc *sc = arg; Index: ic/comvar.h =================================================================== RCS file: /cvsroot/src/sys/dev/ic/comvar.h,v retrieving revision 1.54 diff -u -r1.54 comvar.h --- ic/comvar.h 13 Jul 2006 22:56:02 -0000 1.54 +++ ic/comvar.h 17 Mar 2007 01:33:48 -0000 @@ -230,7 +230,7 @@ int com_probe_subr(struct com_regs *); int com_detach(struct device *, int); int com_activate(struct device *, enum devact); -void com_cleanup(void *); +void com_cleanup(int, void *); #ifndef __HAVE_GENERIC_SOFT_INTERRUPTS #ifdef __NO_SOFT_SERIAL_INTERRUPT Index: ic/cs89x0.c =================================================================== RCS file: /cvsroot/src/sys/dev/ic/cs89x0.c,v retrieving revision 1.21 diff -u -r1.21 cs89x0.c --- ic/cs89x0.c 4 Mar 2007 06:01:53 -0000 1.21 +++ ic/cs89x0.c 17 Mar 2007 01:33:49 -0000 @@ -269,6 +269,7 @@ int cs_get_params(struct cs_softc *); int cs_get_enaddr(struct cs_softc *); int cs_reset_chip(struct cs_softc *); +void cs_shutdown(int, void *); void cs_reset(void *); int cs_ioctl(struct ifnet *, u_long, void *); void cs_initChip(struct cs_softc *); @@ -492,7 +493,7 @@ if (sc->sc_dma_attach) (*sc->sc_dma_attach)(sc); - sc->sc_sh = shutdownhook_establish(cs_reset, sc); + sc->sc_sh = shutdownhook_establish(cs_shutdown, sc); if (sc->sc_sh == NULL) { printf("%s: unable to establish shutdownhook\n", sc->sc_dev.dv_xname); @@ -1312,6 +1313,12 @@ } void +cs_shutdown(int why, void *arg) +{ + cs_reset(arg); +} + +void cs_reset(void *arg) { struct cs_softc *sc = arg; Index: ic/dp83932.c =================================================================== RCS file: /cvsroot/src/sys/dev/ic/dp83932.c,v retrieving revision 1.14 diff -u -r1.14 dp83932.c --- ic/dp83932.c 4 Mar 2007 06:01:54 -0000 1.14 +++ ic/dp83932.c 17 Mar 2007 01:33:49 -0000 @@ -78,7 +78,7 @@ int sonic_init(struct ifnet *); void sonic_stop(struct ifnet *, int); -void sonic_shutdown(void *); +void sonic_shutdown(int, void *); void sonic_reset(struct sonic_softc *); void sonic_rxdrain(struct sonic_softc *); @@ -262,7 +262,7 @@ * Make sure the interface is stopped at reboot. */ void -sonic_shutdown(void *arg) +sonic_shutdown(int why, void *arg) { struct sonic_softc *sc = arg; Index: ic/dpt.c =================================================================== RCS file: /cvsroot/src/sys/dev/ic/dpt.c,v retrieving revision 1.56 diff -u -r1.56 dpt.c --- ic/dpt.c 4 Mar 2007 06:01:54 -0000 1.56 +++ ic/dpt.c 17 Mar 2007 01:33:50 -0000 @@ -201,7 +201,7 @@ struct lwp *); static void dpt_scsipi_request(struct scsipi_channel *, scsipi_adapter_req_t, void *); -static void dpt_shutdown(void *); +static void dpt_shutdown(int, void *); static void dpt_sysinfo(struct dpt_softc *, struct dpt_sysinfo *); static int dpt_wait(struct dpt_softc *, u_int8_t, u_int8_t, int); @@ -614,7 +614,7 @@ * we tell root that it's safe to power off). */ static void -dpt_shutdown(void *cookie) +dpt_shutdown(int why, void *cookie) { extern struct cfdriver dpt_cd; struct dpt_softc *sc; Index: ic/elink3.c =================================================================== RCS file: /cvsroot/src/sys/dev/ic/elink3.c,v retrieving revision 1.121 diff -u -r1.121 elink3.c --- ic/elink3.c 4 Mar 2007 06:01:54 -0000 1.121 +++ ic/elink3.c 17 Mar 2007 01:33:50 -0000 @@ -199,7 +199,7 @@ void epstart(struct ifnet *); void epwatchdog(struct ifnet *); void epreset(struct ep_softc *); -static void epshutdown(void *); +static void epshutdown(int, void *); void epread(struct ep_softc *); struct mbuf *epget(struct ep_softc *, int); void epmbuffill(void *); @@ -1844,7 +1844,8 @@ * Before reboots, reset card completely. */ static void -epshutdown(arg) +epshutdown(why, arg) + int why; void *arg; { struct ep_softc *sc = arg; Index: ic/elinkxl.c =================================================================== RCS file: /cvsroot/src/sys/dev/ic/elinkxl.c,v retrieving revision 1.96 diff -u -r1.96 elinkxl.c --- ic/elinkxl.c 4 Mar 2007 06:01:54 -0000 1.96 +++ ic/elinkxl.c 17 Mar 2007 01:33:50 -0000 @@ -112,7 +112,7 @@ static void ex_init_txdescs(struct ex_softc *); static void ex_setup_tx(struct ex_softc *); -static void ex_shutdown(void *); +static void ex_shutdown(int, void *); static void ex_start(struct ifnet *); static void ex_txstat(struct ex_softc *); @@ -1806,7 +1806,8 @@ * Before reboots, reset card completely. */ static void -ex_shutdown(arg) +ex_shutdown(howto, arg) + int howto; void *arg; { struct ex_softc *sc = arg; Index: ic/gem.c =================================================================== RCS file: /cvsroot/src/sys/dev/ic/gem.c,v retrieving revision 1.54 diff -u -r1.54 gem.c --- ic/gem.c 4 Mar 2007 07:54:11 -0000 1.54 +++ ic/gem.c 17 Mar 2007 01:33:51 -0000 @@ -90,7 +90,7 @@ int gem_ioctl(struct ifnet *, u_long, void *); void gem_tick(void *); void gem_watchdog(struct ifnet *); -void gem_shutdown(void *); +void gem_shutdown(int, void *); int gem_init(struct ifnet *); void gem_init_regs(struct gem_softc *sc); static int gem_ringsize(int sz); @@ -2081,7 +2081,8 @@ void -gem_shutdown(arg) +gem_shutdown(why, arg) + int why; void *arg; { struct gem_softc *sc = (struct gem_softc *)arg; Index: ic/hme.c =================================================================== RCS file: /cvsroot/src/sys/dev/ic/hme.c,v retrieving revision 1.56 diff -u -r1.56 hme.c --- ic/hme.c 4 Mar 2007 06:01:55 -0000 1.56 +++ ic/hme.c 17 Mar 2007 01:33:51 -0000 @@ -97,7 +97,7 @@ int hme_ioctl(struct ifnet *, u_long, void *); void hme_tick(void *); void hme_watchdog(struct ifnet *); -void hme_shutdown(void *); +void hme_shutdown(int, void *); void hme_init(struct hme_softc *); void hme_meminit(struct hme_softc *); void hme_mifinit(struct hme_softc *); @@ -1527,7 +1527,8 @@ } void -hme_shutdown(arg) +hme_shutdown(why, arg) + int why; void *arg; { Index: ic/i82557.c =================================================================== RCS file: /cvsroot/src/sys/dev/ic/i82557.c,v retrieving revision 1.101 diff -u -r1.101 i82557.c --- ic/i82557.c 4 Mar 2007 06:01:55 -0000 1.101 +++ ic/i82557.c 17 Mar 2007 01:33:52 -0000 @@ -207,7 +207,7 @@ void fxp_mc_setup(struct fxp_softc *); void fxp_load_ucode(struct fxp_softc *); -void fxp_shutdown(void *); +void fxp_shutdown(int, void *); void fxp_power(int, void *); int fxp_copy_small = 0; @@ -541,7 +541,7 @@ * kernel memory doesn't get clobbered during warmboot. */ void -fxp_shutdown(void *arg) +fxp_shutdown(int why, void *arg) { struct fxp_softc *sc = arg; Index: ic/lance.c =================================================================== RCS file: /cvsroot/src/sys/dev/ic/lance.c,v retrieving revision 1.38 diff -u -r1.38 lance.c --- ic/lance.c 4 Mar 2007 06:01:57 -0000 1.38 +++ ic/lance.c 17 Mar 2007 01:33:52 -0000 @@ -118,7 +118,7 @@ integrate struct mbuf *lance_get(struct lance_softc *, int, int); -hide void lance_shutdown(void *); +hide void lance_shutdown(int, void *); int lance_mediachange(struct ifnet *); void lance_mediastatus(struct ifnet *, struct ifmediareq *); @@ -606,7 +606,8 @@ } hide void -lance_shutdown(arg) +lance_shutdown(howto, arg) + int howto; void *arg; { Index: ic/lemac.c =================================================================== RCS file: /cvsroot/src/sys/dev/ic/lemac.c,v retrieving revision 1.32 diff -u -r1.32 lemac.c --- ic/lemac.c 4 Mar 2007 15:35:20 -0000 1.32 +++ ic/lemac.c 17 Mar 2007 01:33:52 -0000 @@ -977,7 +977,7 @@ } void -lemac_shutdown( +lemac_shutdown(int howto, void *arg) { lemac_reset((lemac_softc_t *) arg); Index: ic/lemacvar.h =================================================================== RCS file: /cvsroot/src/sys/dev/ic/lemacvar.h,v retrieving revision 1.9 diff -u -r1.9 lemacvar.h --- ic/lemacvar.h 11 Dec 2005 12:21:27 -0000 1.9 +++ ic/lemacvar.h 17 Mar 2007 01:33:52 -0000 @@ -138,6 +138,6 @@ bus_addr_t *, bus_size_t *, int *); extern int lemac_port_check(const bus_space_tag_t, const bus_space_handle_t); extern int lemac_intr(void *); -extern void lemac_shutdown(void *); +extern void lemac_shutdown(int, void *); #endif /* _LEMACVAR_H */ Index: ic/mlx.c =================================================================== RCS file: /cvsroot/src/sys/dev/ic/mlx.c,v retrieving revision 1.51 diff -u -r1.51 mlx.c --- ic/mlx.c 4 Mar 2007 06:01:58 -0000 1.51 +++ ic/mlx.c 17 Mar 2007 01:33:53 -0000 @@ -133,7 +133,7 @@ static void mlx_periodic_thread(void *); static int mlx_print(void *, const char *); static int mlx_rebuild(struct mlx_softc *, int, int); -static void mlx_shutdown(void *); +static void mlx_shutdown(int, void *); static int mlx_user_command(struct mlx_softc *, struct mlx_usercommand *); dev_type_open(mlxopen); @@ -658,7 +658,7 @@ * Shut down all configured `mlx' devices. */ static void -mlx_shutdown(void *cookie) +mlx_shutdown(int why, void *cookie) { struct mlx_softc *mlx; int i; Index: ic/mtd803.c =================================================================== RCS file: /cvsroot/src/sys/dev/ic/mtd803.c,v retrieving revision 1.13 diff -u -r1.13 mtd803.c --- ic/mtd803.c 4 Mar 2007 06:01:59 -0000 1.13 +++ ic/mtd803.c 17 Mar 2007 01:33:53 -0000 @@ -130,7 +130,7 @@ int mtd_init(struct ifnet *); void mtd_reset(struct mtd_softc *); -void mtd_shutdown(void *); +void mtd_shutdown(int, void *); int mtd_init_desc(struct mtd_softc *); int mtd_put(struct mtd_softc *, int, struct mbuf *); struct mbuf *mtd_get(struct mtd_softc *, int, int); @@ -981,7 +981,8 @@ void -mtd_shutdown (arg) +mtd_shutdown (why, arg) + int why; void *arg; { struct mtd_softc *sc = arg; Index: ic/rtl8169.c =================================================================== RCS file: /cvsroot/src/sys/dev/ic/rtl8169.c,v retrieving revision 1.83 diff -u -r1.83 rtl8169.c --- ic/rtl8169.c 4 Mar 2007 06:02:00 -0000 1.83 +++ ic/rtl8169.c 17 Mar 2007 01:33:53 -0000 @@ -162,7 +162,7 @@ static void re_stop(struct ifnet *, int); static void re_watchdog(struct ifnet *); -static void re_shutdown(void *); +static void re_shutdown(int, void *); static int re_enable(struct rtk_softc *); static void re_disable(struct rtk_softc *); static void re_power(int, void *); @@ -1365,7 +1365,7 @@ * get confused by errant DMAs when rebooting. */ static void -re_shutdown(void *vsc) +re_shutdown(int why, void *vsc) { struct rtk_softc *sc = vsc; Index: ic/rtl81x9.c =================================================================== RCS file: /cvsroot/src/sys/dev/ic/rtl81x9.c,v retrieving revision 1.71 diff -u -r1.71 rtl81x9.c --- ic/rtl81x9.c 4 Mar 2007 06:02:00 -0000 1.71 +++ ic/rtl81x9.c 17 Mar 2007 01:33:54 -0000 @@ -140,7 +140,7 @@ STATIC void rtk_stop(struct ifnet *, int); STATIC void rtk_watchdog(struct ifnet *); -STATIC void rtk_shutdown(void *); +STATIC void rtk_shutdown(int, void *); STATIC int rtk_ifmedia_upd(struct ifnet *); STATIC void rtk_ifmedia_sts(struct ifnet *, struct ifmediareq *); @@ -1623,7 +1623,7 @@ * get confused by errant DMAs when rebooting. */ STATIC void -rtk_shutdown(void *arg) +rtk_shutdown(int why, void *arg) { struct rtk_softc *sc = (struct rtk_softc *)arg; Index: ic/rtw.c =================================================================== RCS file: /cvsroot/src/sys/dev/ic/rtw.c,v retrieving revision 1.85 diff -u -r1.85 rtw.c --- ic/rtw.c 4 Mar 2007 06:02:00 -0000 1.85 +++ ic/rtw.c 17 Mar 2007 01:33:55 -0000 @@ -3738,7 +3738,7 @@ /* rtw_shutdown: make sure the interface is stopped at reboot time. */ void -rtw_shutdown(void *arg) +rtw_shutdown(int why, void *arg) { struct rtw_softc *sc = arg; Index: ic/rtwvar.h =================================================================== RCS file: /cvsroot/src/sys/dev/ic/rtwvar.h,v retrieving revision 1.31 diff -u -r1.31 rtwvar.h --- ic/rtwvar.h 4 Mar 2007 06:02:01 -0000 1.31 +++ ic/rtwvar.h 17 Mar 2007 01:33:55 -0000 @@ -505,7 +505,7 @@ int rtw_activate(struct device *, enum devact); void rtw_power(int, void *); -void rtw_shutdown(void *); +void rtw_shutdown(int, void *); const char *rtw_pwrstate_string(enum rtw_pwrstate); Index: ic/smc83c170.c =================================================================== RCS file: /cvsroot/src/sys/dev/ic/smc83c170.c,v retrieving revision 1.64 diff -u -r1.64 smc83c170.c --- ic/smc83c170.c 4 Mar 2007 06:02:01 -0000 1.64 +++ ic/smc83c170.c 17 Mar 2007 01:33:55 -0000 @@ -84,7 +84,7 @@ int epic_init(struct ifnet *); void epic_stop(struct ifnet *, int); -void epic_shutdown(void *); +void epic_shutdown(int, void *); void epic_reset(struct epic_softc *); void epic_rxdrain(struct epic_softc *); @@ -347,7 +347,8 @@ * Shutdown hook. Make sure the interface is stopped at reboot. */ void -epic_shutdown(arg) +epic_shutdown(why, arg) + int why; void *arg; { struct epic_softc *sc = arg; Index: ic/tropic.c =================================================================== RCS file: /cvsroot/src/sys/dev/ic/tropic.c,v retrieving revision 1.30 diff -u -r1.30 tropic.c --- ic/tropic.c 4 Mar 2007 06:02:02 -0000 1.30 +++ ic/tropic.c 17 Mar 2007 01:33:56 -0000 @@ -80,7 +80,7 @@ #include #include -static void tr_shutdown(void *); +static void tr_shutdown(int, void *); static void tr_reopen(void *); void tr_rint(struct tr_softc *); @@ -578,7 +578,8 @@ } static void -tr_shutdown(arg) +tr_shutdown(why, arg) + int why; void *arg; { struct tr_softc *sc = arg; Index: ic/tulip.c =================================================================== RCS file: /cvsroot/src/sys/dev/ic/tulip.c,v retrieving revision 1.149 diff -u -r1.149 tulip.c --- ic/tulip.c 4 Mar 2007 06:02:02 -0000 1.149 +++ ic/tulip.c 17 Mar 2007 01:33:57 -0000 @@ -101,7 +101,7 @@ static int tlp_init(struct ifnet *); static void tlp_stop(struct ifnet *, int); -static void tlp_shutdown(void *); +static void tlp_shutdown(int, void *); static void tlp_rxdrain(struct tulip_softc *); static int tlp_add_rxbuf(struct tulip_softc *, int); @@ -691,7 +691,7 @@ * Make sure the interface is stopped at reboot time. */ static void -tlp_shutdown(void *arg) +tlp_shutdown(int why, void *arg) { struct tulip_softc *sc = arg; Index: ieee1394/fw_port.h =================================================================== RCS file: /cvsroot/src/sys/dev/ieee1394/fw_port.h,v retrieving revision 1.21 diff -u -r1.21 fw_port.h --- ieee1394/fw_port.h 4 Mar 2007 06:02:05 -0000 1.21 +++ ieee1394/fw_port.h 17 Mar 2007 01:33:57 -0000 @@ -771,7 +771,7 @@ shutdownhook_disestablish(sc->sc_shutdownhook) #define FWOHCI_STOP() \ void \ - fwohci_stop(void *arg) + fwohci_stop(int why, void *arg) #define FWOHCI_STOP_START struct fwohci_softc *sc = arg #define FWOHCI_STOP_RETURN(r) return Index: ieee1394/fwohci.c =================================================================== RCS file: /cvsroot/src/sys/dev/ieee1394/fwohci.c,v retrieving revision 1.106 diff -u -r1.106 fwohci.c --- ieee1394/fwohci.c 4 Mar 2007 06:02:05 -0000 1.106 +++ ieee1394/fwohci.c 17 Mar 2007 01:33:58 -0000 @@ -1837,7 +1837,7 @@ switch (why) { case PWR_SUSPEND: case PWR_STANDBY: - fwohci_stop(arg); + fwohci_stop(why, arg); break; case PWR_RESUME: fwohci_resume(sc, sc->fc.dev); Index: isa/fd.c =================================================================== RCS file: /cvsroot/src/sys/dev/isa/fd.c,v retrieving revision 1.73 diff -u -r1.73 fd.c --- isa/fd.c 8 Mar 2007 23:23:45 -0000 1.73 +++ isa/fd.c 17 Mar 2007 01:33:58 -0000 @@ -245,6 +245,7 @@ const struct fd_type *fd_nvtotype(char *, int, int); #endif /* i386 */ void fd_set_motor(struct fdc_softc *fdc, int reset); +void fd_motor_shutdown(int howto, void *arg); void fd_motor_off(void *arg); void fd_motor_on(void *arg); int fdcresult(struct fdc_softc *fdc); @@ -510,7 +511,7 @@ mountroothook_establish(fd_mountroot_hook, &fd->sc_dev); /* Needed to power off if the motor is on when we halt. */ - fd->sc_sdhook = shutdownhook_establish(fd_motor_off, fd); + fd->sc_sdhook = shutdownhook_establish(fd_motor_shutdown, fd); #if NRND > 0 rnd_attach_source(&fd->rnd_source, fd->sc_dev.dv_xname, @@ -737,6 +738,15 @@ } void +fd_motor_shutdown(why, arg) + int why; + void *arg; +{ + fd_motor_off(arg); +} + + +void fd_motor_off(arg) void *arg; { Index: isa/if_ntwoc_isa.c =================================================================== RCS file: /cvsroot/src/sys/dev/isa/if_ntwoc_isa.c,v retrieving revision 1.15 diff -u -r1.15 if_ntwoc_isa.c --- isa/if_ntwoc_isa.c 16 Nov 2006 01:33:00 -0000 1.15 +++ isa/if_ntwoc_isa.c 17 Mar 2007 01:33:59 -0000 @@ -93,7 +93,7 @@ static void ntwoc_isa_get_clock(struct sca_port *, u_int8_t, u_int8_t, u_int8_t, u_int8_t); static void ntwoc_isa_setup_memory(struct sca_softc *sc); -static void ntwoc_isa_shutdown(void *sc); +static void ntwoc_isa_shutdown(int why, void *sc); CFATTACH_DECL(ntwoc_isa, sizeof(struct ntwoc_isa_softc), ntwoc_isa_probe, ntwoc_isa_attach, NULL, NULL); @@ -690,7 +690,7 @@ * boot. Also, lower DTR on each port and disable card interrupts. */ static void -ntwoc_isa_shutdown(void *aux) +ntwoc_isa_shutdown(int why, void *aux) { struct ntwoc_isa_softc *sc = aux; u_int16_t mcr; Index: marvell/gtmpsc.c =================================================================== RCS file: /cvsroot/src/sys/dev/marvell/gtmpsc.c,v retrieving revision 1.23 diff -u -r1.23 gtmpsc.c --- marvell/gtmpsc.c 4 Mar 2007 06:02:14 -0000 1.23 +++ marvell/gtmpsc.c 17 Mar 2007 01:33:59 -0000 @@ -159,7 +159,7 @@ STATIC void gtmpsc_txflush(gtmpsc_softc_t *); STATIC void gtmpsc_iflush(gtmpsc_softc_t *); -STATIC void gtmpsc_shutdownhook(void *); +STATIC void gtmpsc_shutdownhook(int, void *); dev_type_open(gtmpscopen); dev_type_close(gtmpscclose); @@ -1830,7 +1830,7 @@ } void -gtmpsc_shutdownhook(void *arg) +gtmpsc_shutdownhook(int why, void *arg) { gtmpsc_softc_t *sc = (gtmpsc_softc_t *)arg; Index: mvme/clock_pcctwo.c =================================================================== RCS file: /cvsroot/src/sys/dev/mvme/clock_pcctwo.c,v retrieving revision 1.10 diff -u -r1.10 clock_pcctwo.c --- mvme/clock_pcctwo.c 29 Mar 2006 07:07:41 -0000 1.10 +++ mvme/clock_pcctwo.c 17 Mar 2007 01:33:59 -0000 @@ -76,7 +76,7 @@ static int clock_pcctwo_statintr(void *); static void clock_pcctwo_initclocks(void *, int, int); static long clock_pcctwo_microtime(void *); -static void clock_pcctwo_shutdown(void *); +static void clock_pcctwo_shutdown(int, void *); static struct clock_pcctwo_softc *clock_pcctwo_sc; @@ -245,7 +245,8 @@ /* ARGSUSED */ void -clock_pcctwo_shutdown(arg) +clock_pcctwo_shutdown(why, arg) + int why; void *arg; { Index: pci/amr.c =================================================================== RCS file: /cvsroot/src/sys/dev/pci/amr.c,v retrieving revision 1.44 diff -u -r1.44 amr.c --- pci/amr.c 4 Mar 2007 06:02:16 -0000 1.44 +++ pci/amr.c 17 Mar 2007 01:34:00 -0000 @@ -107,7 +107,7 @@ static int amr_intr(void *); static int amr_match(struct device *, struct cfdata *, void *); static int amr_print(void *, const char *); -static void amr_shutdown(void *); +static void amr_shutdown(int, void *); static void amr_teardown(struct amr_softc *); static void amr_thread(void *); static void amr_thread_create(void *); @@ -732,7 +732,7 @@ * shutdown time. */ static void -amr_shutdown(void *cookie) +amr_shutdown(int why, void *cookie) { extern struct cfdriver amr_cd; struct amr_softc *amr; Index: pci/if_ath_pci.c =================================================================== RCS file: /cvsroot/src/sys/dev/pci/if_ath_pci.c,v retrieving revision 1.19 diff -u -r1.19 if_ath_pci.c --- pci/if_ath_pci.c 16 Nov 2006 01:33:08 -0000 1.19 +++ pci/if_ath_pci.c 17 Mar 2007 01:34:00 -0000 @@ -105,7 +105,7 @@ static int ath_pci_match(struct device *, struct cfdata *, void *); static void ath_pci_attach(struct device *, struct device *, void *); -static void ath_pci_shutdown(void *); +static void ath_pci_shutdown(int, void *); static void ath_pci_powerhook(int, void *); static int ath_pci_detach(struct device *, int); @@ -260,11 +260,11 @@ } static void -ath_pci_shutdown(void *self) +ath_pci_shutdown(int why, void *self) { struct ath_pci_softc *psc = (struct ath_pci_softc *)self; - ath_shutdown(&psc->sc_sc); + ath_shutdown(why, &psc->sc_sc); } static void @@ -276,7 +276,7 @@ switch (why) { case PWR_SOFTSUSPEND: - ath_pci_shutdown(sc); + ath_pci_shutdown(why, sc); break; case PWR_SUSPEND: pci_conf_capture(pc, tag, &sc->sc_pciconf); Index: pci/if_de.c =================================================================== RCS file: /cvsroot/src/sys/dev/pci/if_de.c,v retrieving revision 1.123 diff -u -r1.123 if_de.c --- pci/if_de.c 4 Mar 2007 06:02:19 -0000 1.123 +++ pci/if_de.c 17 Mar 2007 01:34:01 -0000 @@ -5554,7 +5554,7 @@ #if defined(__NetBSD__) #define TULIP_PCI_ATTACH_ARGS struct device * const parent, struct device * const self, void *const aux -#define TULIP_SHUTDOWN_ARGS void *arg +#define TULIP_SHUTDOWN_ARGS int why, void *arg static int tulip_pci_probe( struct device *parent, Index: pci/if_dge.c =================================================================== RCS file: /cvsroot/src/sys/dev/pci/if_dge.c,v retrieving revision 1.15 diff -u -r1.15 if_dge.c --- pci/if_dge.c 4 Mar 2007 06:02:20 -0000 1.15 +++ pci/if_dge.c 17 Mar 2007 01:34:02 -0000 @@ -618,7 +618,7 @@ static int dge_init(struct ifnet *); static void dge_stop(struct ifnet *, int); -static void dge_shutdown(void *); +static void dge_shutdown(int, void *); static void dge_reset(struct dge_softc *); static void dge_rxdrain(struct dge_softc *); @@ -1007,7 +1007,7 @@ * Make sure the interface is stopped at reboot time. */ static void -dge_shutdown(void *arg) +dge_shutdown(int why, void *arg) { struct dge_softc *sc = arg; Index: pci/if_fpa.c =================================================================== RCS file: /cvsroot/src/sys/dev/pci/if_fpa.c,v retrieving revision 1.48 diff -u -r1.48 if_fpa.c --- pci/if_fpa.c 4 Mar 2007 06:02:20 -0000 1.48 +++ pci/if_fpa.c 17 Mar 2007 01:34:02 -0000 @@ -120,7 +120,7 @@ #define PDQ_PCI_UNIT_TO_SOFTC(unit) (pdqs_pci[unit]) #if BSD >= 199506 #define pdq_pci_ifwatchdog NULL -static void pdq_pci_shutdown(int howto, void *sc); +static void pdq_pci_shutdown(int why, void *sc); #endif #elif defined(__bsdi__) @@ -246,7 +246,7 @@ #else static void pdq_pci_shutdown( - int howto, + int why, void *sc) { pdq_hwreset(((pdq_softc_t *)sc)->sc_pdq); @@ -389,6 +389,15 @@ }; #elif defined(__NetBSD__) +static void pdq_pci_shutdown(int, void *); /* prototype */ + +static void +pdq_pci_shutdown(int why, + void *arg) +{ + pdq_hwreset(arg); +} + static int pdq_pci_match( @@ -494,7 +503,7 @@ return; } - sc->sc_ats = shutdownhook_establish((void (*)(void *)) pdq_hwreset, sc->sc_pdq); + sc->sc_ats = shutdownhook_establish(pdq_pci_shutdown, sc->sc_pdq); if (sc->sc_ats == NULL) aprint_error("%s: warning: couldn't establish shutdown hook\n", self->dv_xname); if (intrstr != NULL) Index: pci/if_ipw.c =================================================================== RCS file: /cvsroot/src/sys/dev/pci/if_ipw.c,v retrieving revision 1.32 diff -u -r1.32 if_ipw.c --- pci/if_ipw.c 4 Mar 2007 06:02:20 -0000 1.32 +++ pci/if_ipw.c 17 Mar 2007 01:34:03 -0000 @@ -94,7 +94,7 @@ static void ipw_attach(struct device *, struct device *, void *); static int ipw_detach(struct device *, int); -static void ipw_shutdown(void *); +static void ipw_shutdown(int, void *); static int ipw_suspend(struct ipw_softc *); static int ipw_resume(struct ipw_softc *); static void ipw_powerhook(int, void *); @@ -757,7 +757,7 @@ } static void -ipw_shutdown(void *arg) +ipw_shutdown(int why, void *arg) { struct ipw_softc *sc = (struct ipw_softc *)arg; struct ifnet *ifp = sc->sc_ic.ic_ifp; Index: pci/if_iwi.c =================================================================== RCS file: /cvsroot/src/sys/dev/pci/if_iwi.c,v retrieving revision 1.62 diff -u -r1.62 if_iwi.c --- pci/if_iwi.c 4 Mar 2007 19:14:25 -0000 1.62 +++ pci/if_iwi.c 17 Mar 2007 01:34:03 -0000 @@ -94,7 +94,7 @@ static void iwi_attach(struct device *, struct device *, void *); static int iwi_detach(struct device *, int); -static void iwi_shutdown(void *); +static void iwi_shutdown(int, void *); static int iwi_suspend(struct iwi_softc *); static int iwi_resume(struct iwi_softc *); static void iwi_powerhook(int, void *); @@ -799,7 +799,7 @@ } static void -iwi_shutdown(void *arg) +iwi_shutdown(int why, void *arg) { struct iwi_softc *sc = (struct iwi_softc *)arg; struct ifnet *ifp = sc->sc_ic.ic_ifp; Index: pci/if_lmc.c =================================================================== RCS file: /cvsroot/src/sys/dev/pci/if_lmc.c,v retrieving revision 1.34 diff -u -r1.34 if_lmc.c --- pci/if_lmc.c 4 Mar 2007 06:02:20 -0000 1.34 +++ pci/if_lmc.c 17 Mar 2007 01:34:05 -0000 @@ -7158,7 +7158,7 @@ aprint_naive(": %s\n", sc->dev_desc); /* Install a shutdown hook. */ - if ((sc->sdh_cookie = shutdownhook_establish(tulip_detach, sc)) == NULL) + if ((sc->sdh_cookie = shutdownhook_establish(nbsd_tulip_shutdown, sc)) == NULL) { aprint_error("%s: shutdown_hook_establish() failed\n", NAME_UNIT); nbsd_detach(self, 0); @@ -7193,6 +7193,13 @@ return 0; } + +void +nbsd_tulip_shutdown(int why, void *arg) +{ + tulip_detach(arg); +} + CFATTACH_DECL(lmc, sizeof(softc_t), /* lmc_ca */ nbsd_match, nbsd_attach, nbsd_detach, NULL); @@ -7322,7 +7329,7 @@ printf(" %s: %s\n", intrstr, sc->dev_desc); /* Install a shutdown hook. */ - if ((sc->sdh_cookie = shutdownhook_establish(tulip_detach, sc)) == NULL) + if ((sc->sdh_cookie = shutdownhook_establish(nbsd_tulip_shutdown, sc)) == NULL) { printf("%s: shutdown_hook_establish() failed\n", NAME_UNIT); obsd_detach(self, 0); Index: pci/if_lmc.h =================================================================== RCS file: /cvsroot/src/sys/dev/pci/if_lmc.h,v retrieving revision 1.9 diff -u -r1.9 if_lmc.h --- pci/if_lmc.h 4 Mar 2007 06:02:21 -0000 1.9 +++ pci/if_lmc.h 17 Mar 2007 01:34:06 -0000 @@ -1677,6 +1677,7 @@ static int nbsd_match(struct device *, struct cfdata *, void *); static void nbsd_attach(struct device *, struct device *, void *); static int nbsd_detach(struct device *, int); +static void nbsd_tulip_shutdown(int, void *); # if defined(LKM) int if_lmc_lkmentry(struct lkm_table *, int, int); # endif Index: pci/if_msk.c =================================================================== RCS file: /cvsroot/src/sys/dev/pci/if_msk.c,v retrieving revision 1.8 diff -u -r1.8 if_msk.c --- pci/if_msk.c 4 Mar 2007 06:02:21 -0000 1.8 +++ pci/if_msk.c 17 Mar 2007 01:34:07 -0000 @@ -97,7 +97,7 @@ int mskc_probe(struct device *, struct cfdata *, void *); void mskc_attach(struct device *, struct device *self, void *aux); -void mskc_shutdown(void *); +void mskc_shutdown(int, void *); int msk_probe(struct device *, struct cfdata *, void *); void msk_attach(struct device *, struct device *self, void *aux); int mskcprint(void *, const char *); @@ -1654,7 +1654,7 @@ } void -mskc_shutdown(void *v) +mskc_shutdown(int why, void *v) { struct sk_softc *sc = v; Index: pci/if_ntwoc_pci.c =================================================================== RCS file: /cvsroot/src/sys/dev/pci/if_ntwoc_pci.c,v retrieving revision 1.19 diff -u -r1.19 if_ntwoc_pci.c --- pci/if_ntwoc_pci.c 16 Nov 2006 01:33:09 -0000 1.19 +++ pci/if_ntwoc_pci.c 17 Mar 2007 01:34:07 -0000 @@ -123,7 +123,7 @@ u_int8_t, u_int8_t); static int ntwoc_pci_intr(void *); static void ntwoc_pci_setup_dma(struct sca_softc *); -static void ntwoc_pci_shutdown(void *sc); +static void ntwoc_pci_shutdown(int why, void *sc); CFATTACH_DECL(ntwoc_pci, sizeof(struct ntwoc_pci_softc), ntwoc_pci_match, ntwoc_pci_attach, NULL, NULL); @@ -464,7 +464,7 @@ * boot. Also, lower DTR on each port and disable card interrupts. */ static void -ntwoc_pci_shutdown(void *aux) +ntwoc_pci_shutdown(int why, void *aux) { struct ntwoc_pci_softc *sc = aux; u_int16_t fecr; Index: pci/if_pcn.c =================================================================== RCS file: /cvsroot/src/sys/dev/pci/if_pcn.c,v retrieving revision 1.38 diff -u -r1.38 if_pcn.c --- pci/if_pcn.c 4 Mar 2007 06:02:22 -0000 1.38 +++ pci/if_pcn.c 17 Mar 2007 01:34:08 -0000 @@ -398,7 +398,7 @@ static int pcn_init(struct ifnet *); static void pcn_stop(struct ifnet *, int); -static void pcn_shutdown(void *); +static void pcn_shutdown(int, void *); static void pcn_reset(struct pcn_softc *); static void pcn_rxdrain(struct pcn_softc *); @@ -905,7 +905,7 @@ * Make sure the interface is stopped at reboot time. */ static void -pcn_shutdown(void *arg) +pcn_shutdown(int why, void *arg) { struct pcn_softc *sc = arg; Index: pci/if_sip.c =================================================================== RCS file: /cvsroot/src/sys/dev/pci/if_sip.c,v retrieving revision 1.112 diff -u -r1.112 if_sip.c --- pci/if_sip.c 4 Mar 2007 15:05:24 -0000 1.112 +++ pci/if_sip.c 17 Mar 2007 01:34:09 -0000 @@ -428,7 +428,7 @@ static int SIP_DECL(init)(struct ifnet *); static void SIP_DECL(stop)(struct ifnet *, int); -static void SIP_DECL(shutdown)(void *); +static void SIP_DECL(shutdown)(int, void *); static void SIP_DECL(reset)(struct sip_softc *); static void SIP_DECL(rxdrain)(struct sip_softc *); @@ -1140,7 +1140,7 @@ * Make sure the interface is stopped at reboot time. */ static void -SIP_DECL(shutdown)(void *arg) +SIP_DECL(shutdown)(int why, void *arg) { struct sip_softc *sc = arg; Index: pci/if_ste.c =================================================================== RCS file: /cvsroot/src/sys/dev/pci/if_ste.c,v retrieving revision 1.27 diff -u -r1.27 if_ste.c --- pci/if_ste.c 4 Mar 2007 06:02:22 -0000 1.27 +++ pci/if_ste.c 17 Mar 2007 01:34:09 -0000 @@ -210,7 +210,7 @@ static int ste_init(struct ifnet *); static void ste_stop(struct ifnet *, int); -static void ste_shutdown(void *); +static void ste_shutdown(int, void *); static void ste_reset(struct ste_softc *, u_int32_t); static void ste_setthresh(struct ste_softc *); @@ -558,7 +558,7 @@ * Make sure the interface is stopped at reboot time. */ static void -ste_shutdown(void *arg) +ste_shutdown(int why, void *arg) { struct ste_softc *sc = arg; Index: pci/if_stge.c =================================================================== RCS file: /cvsroot/src/sys/dev/pci/if_stge.c,v retrieving revision 1.36 diff -u -r1.36 if_stge.c --- pci/if_stge.c 4 Mar 2007 06:02:23 -0000 1.36 +++ pci/if_stge.c 17 Mar 2007 01:34:09 -0000 @@ -273,7 +273,7 @@ static int stge_init(struct ifnet *); static void stge_stop(struct ifnet *, int); -static void stge_shutdown(void *); +static void stge_shutdown(int, void *); static void stge_reset(struct stge_softc *); static void stge_rxdrain(struct stge_softc *); @@ -742,7 +742,7 @@ * Make sure the interface is stopped at reboot time. */ static void -stge_shutdown(void *arg) +stge_shutdown(int why, void *arg) { struct stge_softc *sc = arg; Index: pci/if_ti.c =================================================================== RCS file: /cvsroot/src/sys/dev/pci/if_ti.c,v retrieving revision 1.74 diff -u -r1.74 if_ti.c --- pci/if_ti.c 4 Mar 2007 06:02:23 -0000 1.74 +++ pci/if_ti.c 17 Mar 2007 01:34:10 -0000 @@ -151,7 +151,7 @@ static const struct ti_type *ti_type_match(struct pci_attach_args *); static int ti_probe(struct device *, struct cfdata *, void *); static void ti_attach(struct device *, struct device *, void *); -static void ti_shutdown(void *); +static void ti_shutdown(int, void *); static void ti_txeof_tigon1(struct ti_softc *); static void ti_txeof_tigon2(struct ti_softc *); static void ti_rxeof(struct ti_softc *); @@ -2924,7 +2924,8 @@ * Stop all chip I/O so that the kernel's probe routines don't * get confused by errant DMAs when rebooting. */ -static void ti_shutdown(v) +static void ti_shutdown(why, v) + int why; void *v; { struct ti_softc *sc = v; Index: pci/if_tl.c =================================================================== RCS file: /cvsroot/src/sys/dev/pci/if_tl.c,v retrieving revision 1.82 diff -u -r1.82 if_tl.c --- pci/if_tl.c 4 Mar 2007 06:02:23 -0000 1.82 +++ pci/if_tl.c 17 Mar 2007 01:34:10 -0000 @@ -126,7 +126,7 @@ static int tl_mediachange(struct ifnet *); static void tl_mediastatus(struct ifnet *, struct ifmediareq *); static void tl_ifwatchdog(struct ifnet *); -static void tl_shutdown(void*); +static void tl_shutdown(int, void*); static void tl_ifstart(struct ifnet *); static void tl_reset(tl_softc_t*); @@ -527,7 +527,8 @@ sc->tl_mii.mii_media_status &= ~IFM_ACTIVE; } -static void tl_shutdown(v) +static void tl_shutdown(why, v) + int why; void *v; { tl_stop(v, 1); Index: pci/if_txp.c =================================================================== RCS file: /cvsroot/src/sys/dev/pci/if_txp.c,v retrieving revision 1.19 diff -u -r1.19 if_txp.c --- pci/if_txp.c 4 Mar 2007 06:02:23 -0000 1.19 +++ pci/if_txp.c 17 Mar 2007 01:34:11 -0000 @@ -91,7 +91,7 @@ void txp_attach(struct device *, struct device *, void *); int txp_intr(void *); void txp_tick(void *); -void txp_shutdown(void *); +void txp_shutdown(int, void *); int txp_ioctl(struct ifnet *, u_long, void *); void txp_start(struct ifnet *); void txp_stop(struct txp_softc *); @@ -925,7 +925,8 @@ } void -txp_shutdown(vsc) +txp_shutdown(why, vsc) + int why; void *vsc; { struct txp_softc *sc = (struct txp_softc *)vsc; Index: pci/if_vge.c =================================================================== RCS file: /cvsroot/src/sys/dev/pci/if_vge.c,v retrieving revision 1.34 diff -u -r1.34 if_vge.c --- pci/if_vge.c 4 Mar 2007 06:02:23 -0000 1.34 +++ pci/if_vge.c 17 Mar 2007 01:34:11 -0000 @@ -318,7 +318,7 @@ static int vge_suspend(struct device *); static int vge_resume(struct device *); #endif -static void vge_shutdown(void *); +static void vge_shutdown(int, void *); static int vge_ifmedia_upd(struct ifnet *); static void vge_ifmedia_sts(struct ifnet *, struct ifmediareq *); @@ -2263,7 +2263,7 @@ * get confused by errant DMAs when rebooting. */ static void -vge_shutdown(void *arg) +vge_shutdown(int why, void *arg) { struct vge_softc *sc; Index: pci/if_vr.c =================================================================== RCS file: /cvsroot/src/sys/dev/pci/if_vr.c,v retrieving revision 1.85 diff -u -r1.85 if_vr.c --- pci/if_vr.c 4 Mar 2007 06:02:23 -0000 1.85 +++ pci/if_vr.c 17 Mar 2007 01:34:12 -0000 @@ -1440,7 +1440,7 @@ static int vr_probe(struct device *, struct cfdata *, void *); static void vr_attach(struct device *, struct device *, void *); -static void vr_shutdown(void *); +static void vr_shutdown(int, void *); CFATTACH_DECL(vr, sizeof (struct vr_softc), vr_probe, vr_attach, NULL, NULL); @@ -1475,7 +1475,7 @@ * get confused by errant DMAs when rebooting. */ static void -vr_shutdown(void *arg) +vr_shutdown(int why, void *arg) { struct vr_softc *sc = (struct vr_softc *)arg; Index: pci/if_wm.c =================================================================== RCS file: /cvsroot/src/sys/dev/pci/if_wm.c,v retrieving revision 1.135 diff -u -r1.135 if_wm.c --- pci/if_wm.c 4 Mar 2007 06:02:23 -0000 1.135 +++ pci/if_wm.c 17 Mar 2007 01:34:13 -0000 @@ -474,7 +474,7 @@ static int wm_init(struct ifnet *); static void wm_stop(struct ifnet *, int); -static void wm_shutdown(void *); +static void wm_shutdown(int, void *); static void wm_powerhook(int, void *); static void wm_reset(struct wm_softc *); @@ -1547,7 +1547,7 @@ * Make sure the interface is stopped at reboot time. */ static void -wm_shutdown(void *arg) +wm_shutdown(int why, void *arg) { struct wm_softc *sc = arg; @@ -1564,7 +1564,7 @@ switch (why) { case PWR_SOFTSUSPEND: - wm_shutdown(sc); + wm_shutdown(why, sc); break; case PWR_SOFTRESUME: ifp->if_flags &= ~IFF_RUNNING; Index: pci/mly.c =================================================================== RCS file: /cvsroot/src/sys/dev/pci/mly.c,v retrieving revision 1.34 diff -u -r1.34 mly.c --- pci/mly.c 4 Mar 2007 06:02:24 -0000 1.34 +++ pci/mly.c 17 Mar 2007 01:34:13 -0000 @@ -116,7 +116,7 @@ static int mly_fwhandshake(struct mly_softc *); static int mly_flush(struct mly_softc *); static int mly_intr(void *); -static void mly_shutdown(void *); +static void mly_shutdown(int, void *); static int mly_alloc_ccbs(struct mly_softc *); static void mly_check_event(struct mly_softc *); @@ -590,7 +590,7 @@ * Shut down all configured `mly' devices. */ static void -mly_shutdown(void *cookie) +mly_shutdown(int why, void *cookie) { struct mly_softc *mly; int i; Index: pci/pccbb.c =================================================================== RCS file: /cvsroot/src/sys/dev/pci/pccbb.c,v retrieving revision 1.144 diff -u -r1.144 pccbb.c --- pci/pccbb.c 4 Feb 2007 21:04:37 -0000 1.144 +++ pci/pccbb.c 17 Mar 2007 01:34:14 -0000 @@ -382,7 +382,7 @@ } static void -pccbb_shutdown(void *arg) +pccbb_shutdown(int why, void *arg) { struct pccbb_softc *sc = arg; pcireg_t command; Index: pci/twa.c =================================================================== RCS file: /cvsroot/src/sys/dev/pci/twa.c,v retrieving revision 1.17 diff -u -r1.17 twa.c --- pci/twa.c 4 Mar 2007 06:02:26 -0000 1.17 +++ pci/twa.c 17 Mar 2007 01:34:15 -0000 @@ -124,7 +124,7 @@ struct twa_command_header *); static void twa_attach(struct device *, struct device *, void *); -static void twa_shutdown(void *); +static void twa_shutdown(int, void *); static int twa_init_connection(struct twa_softc *, uint16_t, uint32_t, uint16_t, uint16_t, uint16_t, uint16_t, uint16_t *, uint16_t *, uint16_t *, uint16_t *, uint32_t *); @@ -1636,7 +1636,7 @@ } static void -twa_shutdown(void *arg) +twa_shutdown(int why, void *arg) { extern struct cfdriver twa_cd; struct twa_softc *sc; Index: pcmcia/if_ray.c =================================================================== RCS file: /cvsroot/src/sys/dev/pcmcia/if_ray.c,v retrieving revision 1.64 diff -u -r1.64 if_ray.c --- pcmcia/if_ray.c 4 Mar 2007 06:02:27 -0000 1.64 +++ pcmcia/if_ray.c 17 Mar 2007 01:34:16 -0000 @@ -320,7 +320,7 @@ static void ray_reset_resetloop(void *); static int ray_send_auth(struct ray_softc *, u_int8_t *, u_int8_t); static void ray_set_pending(struct ray_softc *, u_int); -static void ray_shutdown(void *); +static void ray_shutdown(int, void *); static int ray_simple_cmd(struct ray_softc *, u_int, u_int); static void ray_start_assoc(struct ray_softc *); static void ray_start_join_net(struct ray_softc *); @@ -905,7 +905,8 @@ } static void -ray_shutdown(arg) +ray_shutdown(why, arg) + int why; void *arg; { struct ray_softc *sc; Index: pcmcia/if_wi_pcmcia.c =================================================================== RCS file: /cvsroot/src/sys/dev/pcmcia/if_wi_pcmcia.c,v retrieving revision 1.75 diff -u -r1.75 if_wi_pcmcia.c --- pcmcia/if_wi_pcmcia.c 10 Dec 2006 03:44:28 -0000 1.75 +++ pcmcia/if_wi_pcmcia.c 17 Mar 2007 01:34:16 -0000 @@ -88,7 +88,7 @@ static int wi_pcmcia_enable(struct wi_softc *); static void wi_pcmcia_disable(struct wi_softc *); static void wi_pcmcia_powerhook(int, void *); -static void wi_pcmcia_shutdown(void *); +static void wi_pcmcia_shutdown(int, void *); #if WI_PCMCIA_SPECTRUM24T_FW /* support to download firmware for symbol CF card */ @@ -441,7 +441,8 @@ } static void -wi_pcmcia_shutdown(arg) +wi_pcmcia_shutdown(why, arg) + int why; void *arg; { struct wi_pcmcia_softc *psc = arg; Index: podulebus/sec.c =================================================================== RCS file: /cvsroot/src/sys/dev/podulebus/sec.c,v retrieving revision 1.8 diff -u -r1.8 sec.c --- podulebus/sec.c 7 Mar 2007 23:17:01 -0000 1.8 +++ podulebus/sec.c 17 Mar 2007 01:34:16 -0000 @@ -95,7 +95,7 @@ static void sec_attach(struct device *, struct device *, void *); /* shutdown hook */ -static void sec_shutdown(void *); +static void sec_shutdown(int, void *); /* callbacks from MI WD33C93 driver */ static int sec_dmasetup(struct wd33c93_softc *, void **, size_t *, int, @@ -219,7 +219,7 @@ * the podule ROM. */ static void -sec_shutdown(void *cookie) +sec_shutdown(int why, void *cookie) { struct sec_softc *sc = cookie; Index: qbus/if_de.c =================================================================== RCS file: /cvsroot/src/sys/dev/qbus/if_de.c,v retrieving revision 1.21 diff -u -r1.21 if_de.c --- qbus/if_de.c 4 Mar 2007 06:02:29 -0000 1.21 +++ qbus/if_de.c 17 Mar 2007 01:34:16 -0000 @@ -184,7 +184,7 @@ static void destart(struct ifnet *); static void derecv(struct de_softc *); static void deintr(void *); -static void deshutdown(void *); +static void deshutdown(int, void *); CFATTACH_DECL(de, sizeof(struct de_softc), dematch, deattach, NULL, NULL); @@ -660,7 +660,7 @@ } void -deshutdown(void *arg) +deshutdown(int why, void *arg) { struct de_softc *sc = arg; Index: sbus/p9100.c =================================================================== RCS file: /cvsroot/src/sys/dev/sbus/p9100.c,v retrieving revision 1.35 diff -u -r1.35 p9100.c --- sbus/p9100.c 4 Mar 2007 06:02:41 -0000 1.35 +++ sbus/p9100.c 17 Mar 2007 01:34:17 -0000 @@ -160,7 +160,7 @@ static void p9100_sbus_attach(struct device *, struct device *, void *); static void p9100unblank(struct device *); -static void p9100_shutdown(void *); +static void p9100_shutdown(int, void *); CFATTACH_DECL(pnozz, sizeof(struct p9100_softc), p9100_sbus_match, p9100_sbus_attach, NULL, NULL); @@ -482,7 +482,8 @@ } static void -p9100_shutdown(arg) +p9100_shutdown(why, arg) + int why; void *arg; { struct p9100_softc *sc = arg; Index: scsipi/sd.c =================================================================== RCS file: /cvsroot/src/sys/dev/scsipi/sd.c,v retrieving revision 1.261 diff -u -r1.261 sd.c --- scsipi/sd.c 4 Mar 2007 06:02:43 -0000 1.261 +++ scsipi/sd.c 17 Mar 2007 01:34:17 -0000 @@ -107,7 +107,7 @@ static void sdstart(struct scsipi_periph *); static void sdrestart(void *); static void sddone(struct scsipi_xfer *, int); -static void sd_shutdown(void *); +static void sd_shutdown(int, void *); static int sd_interpret_sense(struct scsipi_xfer *); static int sd_mode_sense(struct sd_softc *, u_int8_t, void *, size_t, int, @@ -1336,7 +1336,7 @@ } static void -sd_shutdown(void *arg) +sd_shutdown(int why, void *arg) { struct sd_softc *sd = arg; Index: sysmon/sysmon_wdog.c =================================================================== RCS file: /cvsroot/src/sys/dev/sysmon/sysmon_wdog.c,v retrieving revision 1.18 diff -u -r1.18 sysmon_wdog.c --- sysmon/sysmon_wdog.c 4 Mar 2007 06:02:45 -0000 1.18 +++ sysmon/sysmon_wdog.c 17 Mar 2007 01:34:17 -0000 @@ -81,7 +81,7 @@ void sysmon_wdog_release(struct sysmon_wdog *); int sysmon_wdog_setmode(struct sysmon_wdog *, int, u_int); void sysmon_wdog_ktickle(void *); -void sysmon_wdog_shutdown(void *); +void sysmon_wdog_shutdown(int, void *); /* * sysmonopen_wdog: @@ -456,7 +456,7 @@ * Perform shutdown-time operations. */ void -sysmon_wdog_shutdown(void *arg) +sysmon_wdog_shutdown(int why, void *arg) { struct sysmon_wdog *smw; Index: tc/if_fta.c =================================================================== RCS file: /cvsroot/src/sys/dev/tc/if_fta.c,v retrieving revision 1.24 diff -u -r1.24 if_fta.c --- tc/if_fta.c 4 Mar 2007 06:02:46 -0000 1.24 +++ tc/if_fta.c 17 Mar 2007 01:34:17 -0000 @@ -63,6 +63,19 @@ #include #include + + +static void +pdq_tc_shutdown(int, void *); + +static void +pdq_tc_shutdown(int why, + void *arg) +{ + pdq_hwreset(arg); +} + + static int pdq_tc_match( struct device *parent, @@ -115,7 +128,7 @@ tc_intr_establish(parent, ta->ta_cookie, TC_IPL_NET, (int (*)(void *)) pdq_interrupt, sc->sc_pdq); - sc->sc_ats = shutdownhook_establish((void (*)(void *)) pdq_hwreset, sc->sc_pdq); + sc->sc_ats = shutdownhook_establish(pdq_tc_shutdown, sc->sc_pdq); if (sc->sc_ats == NULL) printf("%s: warning: couldn't establish shutdown hook\n", self->dv_xname); } Index: usb/ehci.c =================================================================== RCS file: /cvsroot/src/sys/dev/usb/ehci.c,v retrieving revision 1.123 diff -u -r1.123 ehci.c --- usb/ehci.c 26 Feb 2007 13:26:45 -0000 1.123 +++ usb/ehci.c 17 Mar 2007 01:34:18 -0000 @@ -127,7 +127,7 @@ } u; }; -Static void ehci_shutdown(void *); +Static void ehci_shutdown(int, void *); Static void ehci_power(int, void *); Static usbd_status ehci_open(usbd_pipe_handle); @@ -1064,7 +1064,7 @@ * Shut down the controller when the system is going down. */ void -ehci_shutdown(void *v) +ehci_shutdown(int why, void *v) { ehci_softc_t *sc = v; Index: usb/ohci.c =================================================================== RCS file: /cvsroot/src/sys/dev/usb/ohci.c,v retrieving revision 1.182 diff -u -r1.182 ohci.c --- usb/ohci.c 26 Feb 2007 13:26:46 -0000 1.182 +++ usb/ohci.c 17 Mar 2007 01:34:19 -0000 @@ -136,7 +136,7 @@ ohci_softc_t *, int, int, usbd_xfer_handle, ohci_soft_td_t *, ohci_soft_td_t **); -Static void ohci_shutdown(void *v); +Static void ohci_shutdown(int howto, void *v); Static void ohci_power(int, void *); Static usbd_status ohci_open(usbd_pipe_handle); Static void ohci_poll(struct usbd_bus *); @@ -1009,7 +1009,7 @@ * Shut down the controller when the system is going down. */ void -ohci_shutdown(void *v) +ohci_shutdown(int why, void *v) { ohci_softc_t *sc = v; Index: usb/uhci.c =================================================================== RCS file: /cvsroot/src/sys/dev/usb/uhci.c,v retrieving revision 1.208 diff -u -r1.208 uhci.c --- usb/uhci.c 26 Feb 2007 13:26:46 -0000 1.208 +++ usb/uhci.c 17 Mar 2007 01:34:20 -0000 @@ -165,7 +165,7 @@ Static void uhci_globalreset(uhci_softc_t *); Static usbd_status uhci_portreset(uhci_softc_t*, int); Static void uhci_reset(uhci_softc_t *); -Static void uhci_shutdown(void *v); +Static void uhci_shutdown(int howto, void *v); Static void uhci_power(int, void *); Static usbd_status uhci_run(uhci_softc_t *, int run); Static uhci_soft_td_t *uhci_alloc_std(uhci_softc_t *); @@ -714,7 +714,7 @@ * Shut down the controller when the system is going down. */ void -uhci_shutdown(void *v) +uhci_shutdown(int why, void *v) { uhci_softc_t *sc = v; int s; Index: wscons/wsdisplay.c =================================================================== RCS file: /cvsroot/src/sys/dev/wscons/wsdisplay.c,v retrieving revision 1.108 diff -u -r1.108 wsdisplay.c --- wscons/wsdisplay.c 5 Mar 2007 16:06:52 -0000 1.108 +++ wscons/wsdisplay.c 17 Mar 2007 01:34:20 -0000 @@ -104,7 +104,7 @@ int, int, long); void wsscreen_detach(struct wsscreen *); int wsdisplay_addscreen(struct wsdisplay_softc *, int, const char *, const char *); -static void wsdisplay_shutdownhook(void *); +static void wsdisplay_shutdownhook(int, void *); static void wsdisplay_addscreen_print(struct wsdisplay_softc *, int, int); static void wsdisplay_closescreen(struct wsdisplay_softc *, struct wsscreen *); int wsdisplay_delscreen(struct wsdisplay_softc *, int, int); @@ -2041,7 +2041,7 @@ * Switch the console at shutdown. */ static void -wsdisplay_shutdownhook(void *arg) +wsdisplay_shutdownhook(int why, void *arg) { wsdisplay_switchtoconsole();