[openbeos] Re: ISA questions

  • From: "Alexander G. M. Smith" <agmsmith@xxxxxxxxxx>
  • To: openbeos@xxxxxxxxxxxxx
  • Date: Mon, 09 Jun 2003 13:35:03 -0400 EDT

Bruno van Dooren wrote on Mon, 09 Jun 2003 19:24:04 +0200:
> >Actually, you have to use get_module()/put_module() in either way. It's
> >not so hard using them anyway.
> 
> can i do that in an interrupt handler, or should i use a timer or a kernel 
> thread to do that, notify that from within the interrupt handler?

No, you need to set up the modules in a regular thread.  An interrupt routine 
can't do IO (get_module will need to read the module library off the disk) or 
much of anything else.  As mentioned earlier, put the get_module in your 
init_driver function and the put_module in the uninit_driver.  Save the 
pointers to the bus manager module functions (not other kinds of module 
functions) you want to use as global variables, so that the interrupt can call 
them.  Set the globals back to NULL in uninit_driver, so you don't accidentally 
try calling a module function when the module isn't loaded.

- Alex

Other related posts: