Date: Thu, 06 Apr 2000 12:37:08 -0600 From: Warner Losh <imp@village.org> To: Mitsuru IWASAKI <iwasaki@jp.FreeBSD.org> Cc: nate@yogotech.com, freebsd-mobile@FreeBSD.ORG Subject: Re: Call for review: restart pccardd by SIGHUP Message-ID: <200004061837.MAA92697@harmony.village.org> In-Reply-To: Your message of "Fri, 07 Apr 2000 00:49:19 %2B0900." <200004061549.AAA14952@tasogare.imasy.or.jp> References: <200004061549.AAA14952@tasogare.imasy.or.jp> <200004061518.JAA91480@harmony.village.org>
next in thread | previous in thread | raw e-mail | index | archive | help
In message <200004061549.AAA14952@tasogare.imasy.or.jp> Mitsuru IWASAKI writes: : > go sysctl. I can give you either a list of all resources in use of a : > given type in a given range, or I can act as an oracle and say "yes : > this range you want to use is already in use" or "no, that's a good : > range." I suspect that the latter would be easier than the former and : > just as useful. : : I think the former would be easier because, user specify available : range roughly, and pccardd will correct it eliminating all of : resources in use from resource pool, "Please tell me all of used : addres range from 0x240 to 0x3ff. My master said that this range is : all available but I don't think so... Oh, 0x300-0x31f is already in : use, OK, I'll desable this range for pccard, Thanks!". OK. This won't take into account device drivers that are loaded after pccardd gets into information, but will likely be enough to do the right thing. Hmmm, thinking in API terms... struct resource_usage { long base; // Base of resource to query long length; // Length of resource int type; // Type of resource u_int8_t *map; // Map of resources in use. } You'd pass the base (0x240 in your example), the length (0x1bf) and the type SYS_RES_IOPORT if that's visible to userland. map would point to an area that is at least 0x1bf bits long (or 56 bytes). Bits in this range would be set when that resource is in use. You could also get IRQs this way, which is bar far the most useful thing to do. Hmmm, come to think of it, you could use this just before allocating resources to the card too if you wanted to. It would be the most flexible way to deal :-). BTW, on the topic of IRQs, I have two questions. How would you feel about making the default behavior of the pcic device to be polling rather than using an interrupt. This is a simple change to the config file. It should help on installations. Second, I'd like make the default for the pcic to *NOT* share interrupts. You'd have to set a flag in the device to enable it. This will also help people get things setup correctly. I know that the default polling is dangarous because it increases the window of system hangs, but for system installs, this won't matter because one generally doesn't pull the plug and expect things to work :-) Warner To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-mobile" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200004061837.MAA92697>