From: johan v. <joh...@pa...> - 2001-04-05 20:01:24
|
'lo greg, jeff, Greg Lonnon wrote: > >> Further, I also tried to use the fd/interrupt thingie, but that did > >> not work. The fd gets the (POLLOUT | POLLWRNORM) events set. It seems > >> the interrupt simulation does not respond to that. > > Are you doing writes to a file. Looking at the events, it looks like > you are trying to write. Are you checking the return codes and the > errno to insure the write was complete (look at the > eth_user.c:nb_write() for an example). I have written to a file before you know ;) Seriously, I was not writing to a file, I was doing ioctl's. The problem is partly that I was not calling activate_fd(). I looked at it's code and I don't think I can use it. I have no idea whether fcntl will work. I will try. I prefer another solution though. I have an alternative way to get a signal delivered when I want my irq, but the fd will have (POLLOUT | POLLWRNORM) set and nothing else, so I guess that will not trigger the select(). I will also have to implement a link_fd() or something that is basically active_fd() without the fcntl's. Also, if you would consider to add the 'writable'-event to the irq code, wouldn't it be more usefull to use poll() iso select() and have the user supply the flags to um_request_irq() or to activate_fd()? It would add a lot of flexibility and little overhead (although it will use more memory for the poll structs). If you want, I'll write the code. Sorry to be a bit mysterious, but I would like to keep whatever I am working on under wraps until it is at least partially functional. thanks, J. |