[haiku-development] Re: Driver loading
- From: Colin Günther <coling@xxxxxx>
- To: haiku-development@xxxxxxxxxxxxx
- Date: Fri, 26 Jun 2009 19:39:16 +0200
Axel Dörfler schrieb:
Colin Günther <coling@xxxxxx> wrote:
Axel Dörfler schrieb:
Exactly. If that doesn't work, please file a bug report.
The kernel should automatically detect if your driver binary
changed,
and will load it again once it can do so (ie. the driver is not
used
anymore).
Does this have to work, when the open, control, close, free, read,
write
functions are pretty unimplemented yet, too?
For example my open function looks like this:
status_t atheros_open(...) {
return B_OK;
}
BTW, following our coding style, this should read:
status_t
atheros_open(...)
{
return B_OK;
}
Don't ignore our coding style!
noted.
the other returning those values:
close -> B_OK
free -> B_OK
control -> B_ERROR
read -> B_ERROR
write -> B_ERROR
Tracing shows that after loading, the driver gets opened, controled,
closed and finally freed. But, driver reloading (after changing some
code and recompilation) doesn't work with this "implementation". Is
this
worth to file a bug?
The implementation itself is irrelevant. The driver will only be
reloaded if you try to open it; it won't be reloaded just when it's
recompiled (as it's not loaded when unused anyway).
If the driver is not reloaded even when opened, and you are sure no one
is using your driver anymore, then please indeed file a bug report.
Bye,
Axel.
While I've been messing with the HDA driver, I've found that reloading
worked for me (even when I just had a link to the driver binary in the
kernel add-ons folder). I don't think anything has changed in the kernel
meanwhile in this respect. So once you recompiled your driver, you probably
have to either restart the network stack, or write your own little program
which opens your driver for you so it get's loaded again.
Best regards,
-Stephan
Thx to your hints, reloading works for me now, too :-) I've added my
driver to /boot/home/config/add-ons/kernel/drivers/bin/. This prevented
the reloading. After using the system driver path
/boot/system/add-ons/kernel/drivers/bin it works.
Now, is this behaviour intended, I mean reloading not working when using
the user add-on dir?
-colin
By the way this is tested on revision 30860.
Other related posts: