Subject: Re: pmax interrupt problem solved
To: Terry R. Friedrichsen <terry@venus.sunquest.com>
From: Simon Burge <simonb@netbsd.org>
List: port-pmax
Date: 03/09/2000 00:59:41
"Terry R. Friedrichsen" wrote:

> [ 3max interrupt problem analysis ]

Looks good Terry!  Hopefully Michael or Jason can test it.

> While I was at it, I removed the unnecessary do from inside the CALLINTR
> macro - I useta know why folks did that, but I've forgotten and its not
> necessary here in any case.

This is so that the semicolon after the macro actually applies to the
macro.  Without it, we effectively have something like:

	if (csr & KN02_xxxx) {
		intrcnt[vvv] += 1;
		(*intrtab[vvv].ih_func)(intrtab[vvv].ih_arg);
	}
	;

Note that the semicolon doesn't do anything.  Now, this is safe in this
instance, but imagine adding else clauses and the intent doesn't work
at all!  Using the "do ... while(0)" business ensures that the trailing
semicolon is actually used and not left floating.

Simon.