Date: Mon, 6 Aug 2001 13:12:11 -0700 (PDT) From: Julian Elischer <julian@elischer.org> To: Mike Smith <msmith@freebsd.org> Cc: Assem Salama <assem@twcny.rr.com>, freebsd-hackers@freebsd.org Subject: Re: detach Message-ID: <Pine.BSF.4.21.0108061311410.66028-100000@InterJet.elischer.org> In-Reply-To: <200108061755.f76Ht5i01556@mass.dis.org>
next in thread | previous in thread | raw e-mail | index | archive | help
if you can write a little sample code I'll put it in the sample driver. On Mon, 6 Aug 2001, Mike Smith wrote: > > Hello, > > I have a question. I'm trying to make a module for a PCI card. My > > problem is my 'detach' function never get's called when I unload the > > module. Al my other functions get called correctly. Here is my source: > > Detach != unload. > > The detach method is called by your parent to kick you out. If you want > to be notified when your module is unloaded, you need a module event > handler which finds all your instances and detaches them itself. > > Use devclass_find_devices() to locate your instances, and then run across > all the detach routines. If any of them return nonzero, you should > refuse to unload. > > This is because there isn't a 1:1 correspondence between a loaded module > and a driver instance. > > > > > #define DRIVERNAME "ide_mod" > > > > #ifdef DEBUG > > #define PRINTD(STR) uprintf("%s: %s",DRIVERNAME, > > STR); > > #else > > #define PRINTD(STR) > > #endif > > > > static int ide_mod_detach(device_t dev) > > { > > PRINTD("Inside detach ... \n"); > > return 0; > > } > > > > > > static device_method_t ide_mod_methods[] = > > { > > /* device methods */ > > DEVMETHOD(device_probe, ide_mod_probe), > > DEVMETHOD(device_attach, ide_mod_attach), > > DEVMETHOD(device_detach, ide_mod_detach), > > {0, 0} > > }; > > > > static driver_t ide_mod_driver = { > > "ide_mod", > > ide_mod_methods, > > sizeof(ide_mod_softc), > > }; > > > > static devclass_t ide_mod_devclas; > > > > /* all our macros */ > > DRIVER_MODULE(ide_mod, atapci, ide_mod_driver, ide_mod_devclas, 0, 0); > > > > > > Thanks, > > Assem Salama > > > > > > To Unsubscribe: send mail to majordomo@FreeBSD.org > > with "unsubscribe freebsd-hackers" in the body of the message > > -- > ... every activity meets with opposition, everyone who acts has his > rivals and unfortunately opponents also. But not because people want > to be opponents, rather because the tasks and relationships force > people to take different points of view. [Dr. Fritz Todt] > V I C T O R Y N O T V E N G E A N C E > > > > To Unsubscribe: send mail to majordomo@FreeBSD.org > with "unsubscribe freebsd-hackers" in the body of the message > To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-hackers" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0108061311410.66028-100000>