Skip site navigation (1)Skip section navigation (2)
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>